02 / Room sensors / Public-data replay

A signal is not a diagnosis.

A sharp CO₂ increase looks consequential. The separately recorded occupancy labels tell a different story—and show why an evidence packet must preserve uncertainty.

Reific · · 2 min read

The question

Where is the largest CO2 rise across 30 consecutive sampling intervals, and do those sensor readings alone confirm room occupancy?

Source observations · CO2 / ppm
Observed series with the selected event marked. Values and the full series can be downloaded below.20221219416Selected interval2015-02-042015-02-10

Overview is downsampled for display; every selected-event reading is retained. Calculations use all 8,143 source readings.

Find the change before looking at the answer.

This replay uses all 8,143 rows from the public dataset's datatraining.txt file. We remove the Occupancy target before building either input payload and before choosing a window. Every sequence of thirty sampling intervals is compared by its endpoint CO₂ change. The timestamps vary between 59 and 61 seconds per interval.

This is a retrospective scan of observed data. No model was trained or tested, and this is not an early-warning result. The source's split name does not turn the replay into a training experiment.

The largest rise is real. Its explanation is unresolved.

The maximum endpoint rise is 715 ppm, from 650 to 1,365 ppm between 9 February 2015, 21:40:59 and 22:11:00: 1,801 elapsed seconds. The complete 31-reading sequence is preserved in the evidence packet. Its penultimate value is 619 ppm, so the result is dominated by the final jump rather than a steady climb.

A CO₂ rise alone does not establish occupancy, a headcount, or a ventilation fault. The appropriate conclusion from this payload is to flag the change and request corroborating evidence before making that attribution.

The withheld labels expose the inference trap.

After the window was selected, we inspected the dataset's separate occupancy labels. All 31 are zero: the room is labeled unoccupied throughout this selected window. Those labels were supplied by the dataset authors, whose occupancy record was derived from timestamped images; we did not independently inspect those images.

This is one descriptive counterexample to treating a rise as proof of occupancy. It does not establish a sensor fault or a cause, measure a classifier's accuracy, or prove that any agent would have made the wrong inference. The separate label audit is downloadable and never included in the counted agent-input payloads.

Keep the evidence that can change the answer.

The compact packet retains every CO₂ reading in the selected window, source rows, elapsed time, and the unresolved conclusion. The full sensor CSV and a simpler two-column projection remain available for comparison. Removing context indiscriminately would undermine the point: the shape of this event is essential to interpreting it.

A code-enabled agent can calculate the same window directly. The question for a future evaluation is whether a proposed evidence layer improves the complete investigation against that capable baseline, including abstentions, errors, review time, and all tool costs.

Token counts and source files

Counted UTF-8 payloadTokensInspect
Full selected CSV · 6 fields294,203CSV
Simple projection · timestamp + target signal133,963CSV
Complete evidence packet · includes provenance + limits915JSON

(133,963 − 915) ÷ 133,963 × 100 = 99.3170% less input payload than the two-column projection.

tiktoken==0.11.0 · o200k_base · 8,143 readings. No model calls were made. This measures serialized text size; it does not measure total token burn, resolution, latency, or an advantage over equivalent SQL or Python tools.

Inspect the exact evidence packet
{
  "schema": "reific.reference-evidence.v1",
  "status": "deterministic_public_data_replay",
  "question": "Where is the largest CO2 rise across 30 consecutive sampling intervals, and do those sensor readings alone confirm room occupancy?",
  "source": {
    "dataset": "UCI Occupancy Detection",
    "doi": "10.24432/C5X01N",
    "file": "datatraining.txt",
    "sha256": "b2c4d0ce2b9e4e453c476f7125ef31aeec2d1f5c7f5572d0e80de3df6521ab56",
    "row_numbering": "1-based physical CSV lines; header is line 1",
    "timezone": "not supplied; retain source-local timestamps"
  },
  "coverage": {
    "start": "2015-02-04 17:51:00",
    "end": "2015-02-10 09:33:00",
    "samples": 8143,
    "cadence_seconds_min": 59,
    "cadence_seconds_max": 61,
    "missing_CO2_values": 0,
    "candidate_windows": 8113,
    "withheld_columns": [
      "Occupancy"
    ]
  },
  "finding": {
    "type": "maximum_30_interval_CO2_rise",
    "start": "2015-02-09 21:40:59",
    "end": "2015-02-09 22:11:00",
    "elapsed_seconds": 1801,
    "start_CO2_ppm": 650,
    "end_CO2_ppm": 1365,
    "rise_ppm": 715,
    "penultimate_CO2_ppm": 619,
    "following_CO2_ppm": 894,
    "source_rows": [
      7432,
      7433,
      7434,
      7435,
      7436,
      7437,
      7438,
      7439,
      7440,
      7441,
      7442,
      7443,
      7444,
      7445,
      7446,
      7447,
      7448,
      7449,
      7450,
      7451,
      7452,
      7453,
      7454,
      7455,
      7456,
      7457,
      7458,
      7459,
      7460,
      7461,
      7462
    ],
    "observed_CO2_ppm": [
      650,
      652,
      653.5,
      652,
      647.5,
      646,
      645,
      712.5,
      759,
      655.666666666667,
      660.5,
      657.5,
      640,
      641,
      639,
      634,
      632,
      637.5,
      662,
      646.5,
      629,
      622,
      621.666666666667,
      627,
      630,
      625.5,
      617,
      614.5,
      613,
      619,
      1365
    ],
    "ties_at_maximum": 1,
    "occupancy_conclusion": "not established from these readings alone"
  },
  "limits": [
    "A rise in CO2 does not by itself prove occupancy, the number of people, or a ventilation fault.",
    "Labels were withheld before window selection and payload construction.",
    "Selection uses the observed series retrospectively; this is not an early-warning experiment.",
    "No classifier or language model was evaluated; predictive accuracy is unmeasured."
  ],
  "next_evidence": "Review separately recorded occupancy observations and ventilation state before choosing an action."
}

Separate retrospective label check

0/31 readings labeled occupied. Labels were withheld from the counted input and evidence payloads.

Inspect the label audit

Verified by the replay

  • Source bytes match recorded SHA-256
  • Every adjacent timestamp differs by 59–61 seconds
  • All 8,113 candidate windows were compared
  • Occupancy labels are absent from all counted payloads

These checks verify the deterministic artifact. They are not task-resolution or model-accuracy scores.

Sources and attribution

  1. Candanedo (2016), Occupancy Detection — UCI dataset and attribution
  2. Dataset DOI: 10.24432/C5X01N
  3. Creative Commons Attribution 4.0 International

The source data are attributed to their authors under CC BY 4.0. Reific selected, serialized, and analyzed the data for this reference replay. No affiliation or endorsement is implied.