Decode a recorded long-wave radio time-signal sample into the exact date and time, with parity checks and missed pulses
Exact prompt
# Decode a recorded long-wave radio time-signal sample into the exact date and time, with parity checks and missed pulses Input: `recording.txt`, a synthetic capture of a long-wave time-signal receiver's carrier level, one sample every 10 ms (lines starting with `#` are comments; the other lines are one long run of samples, wrapped at 80 characters, `1` = full carrier, `0` = reduced carrier). Sample i is at time i × 10 ms from the start of the recording. The transmitter, the receiver and the recording are synthetic. These rules are the format's; where `receiver-notes.txt` disagrees, the rules win. Rules: - Noise: first, every run of identical samples shorter than 5 samples (under 50 ms) is noise; give it the level of the samples on both sides of it. Then each run of `0` is a reduction; its start is the time of its first sample and its length the run's length × 10 ms. - Pulses: a reduction shorter than 150 ms is a 0 bit and one of 150 ms or more is a 1 bit. - Minutes: each second normally starts with a reduction; second 59, the last second of every minute, has none. A gap of 1.9 s to 2.1 s between two consecutive reduction starts means one second had no reduction: it is a minute marker when another such gap starts 60 s (±0.1 s) before or after it, and otherwise a pulse was missed. Second 0 of a minute is the reduction that ends a minute-marker gap. Bit n of that minute (n = 0 … 58) is the reduction that starts n s (±0.1 s) after second 0's start; if none does, bit n is missing. A minute is complete when its second 0 and the next minute marker are both in the recording; decode complete minutes only, in recording order. - Layout: bit 0 is always 0 and bit 20 always 1; bits 1–16 and 19 carry other information and are ignored; bit 17 = 1 means summer time (UTC+02:00) and bit 18 = 1 means winter time (UTC+01:00). Binary-coded decimal, least significant bit first: minutes in bits 21–27 (weights 1, 2, 4, 8, 10, 20, 40), hours in 29–34 (1, 2, 4, 8, 10, 20), day of month in 36–41 (1, 2, 4, 8, 10, 20), day of week in 42–44 (1, 2, 4; 1 = Monday), month in 45–49 (1, 2, 4, 8, 10) and year within the century in 50–57 (1, 2, 4, 8, 10, 20, 40, 80; the century is 2000). The time sent during a minute is the local time of the minute that starts at the next second 0. - Parity: even parity over bits 21–28, over 29–35 and over 36–58 (each group, its parity bit included, holds an even number of 1 bits). - Status: a minute is "missed_pulse" if any bit is missing, otherwise "parity_error" if any parity group fails, otherwise "ok"; only an "ok" minute gets a time. - Write `out/decoded.json`: `{"second0_ms": [<start of each complete minute's second-0 reduction, in ms from the start of the recording>], "bits": [<one 59-character string of 0, 1 and ? (missing) per complete minute>], "status": [<"ok", "parity_error" or "missed_pulse" per complete minute>], "times": [<"YYYY-MM-DDTHH:MM+01:00" or "+02:00" for an ok minute, null otherwise>], "status_counts": {"ok": <n>, "parity_error": <n>, "missed_pulse": <n>}}`, the four lists in recording order. - Roll-ups: Statuses with no complete minutes are included at 0. ## How this run works - Work on your own: nobody will answer questions in this task, and writing to `ask/` counts against the run. - Write only under `out/`. Create `out/` if it is missing. Inputs are synthetic; don't fetch anything from the network. - Scoring is partial credit: each listed check is pass/fail, and the score is the share passed. Numbers are compared to within 0.005 unless the task says otherwise.
Decode a synthetic capture of a long-wave time-signal receiver: carrier levels every 10 ms with seeded glitches. Clean the noise by a stated run-length rule, read 100 ms and 200 ms pulses as bits, find the minute markers (and tell them apart from missed pulses), check the three even-parity groups and decode each complete minute's binary-coded local date and time, which refers to the following minute. Every case seeds one corrupted minute and usually a minute with missed pulses. Receiver notes get the noise, marker and parity rules wrong. Original benchmark task written for usecaserank.com (not based on a specific public post). Headless, offline run on a reproducible fixture. Each run's notes say how its cost was measured (estimates are marked).
Success criteria: pulse_bits minute_framing parity_checks decoded_times status_counts
Best model for this task so far: Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) (success, $0.0089, 2m).
All runs (3)
100% pass rate across 3 eligible runs: 3 pass, 0 partial, 0 fail. Partial and failed runs are listed below with everything else.ⓘ
| Model | Cost | Time | Step-insⓘ | Autonomy | Outcome | Trustⓘ | Date | Compare |
|---|---|---|---|---|---|---|---|---|
| AClaude Opus 5.5default · thinking on | $0.13 | 25s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 | |
| AClaude Haiku 5.5default · thinking on | $0.0089 | 2m | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 | |
| AClaude Sonnet 5.5default · thinking on | $0.06 | 21s | 0 | Fully autonomous | pass | Trust 80% | 2026-10-25 |
Embed this result
A live badge for this use case. It links back here and updates as new runs are published.
Get new runs and ranking changes weekly
Which models got better or cheaper on real tasks like this one.