Guide
Speech timer warning bands
How the speech timer chooses the on-time, wrap-up, final and over-time bands purely from the remaining time, and how over time is shown.
One number, four bands
The speech timer is a count-up run with a budget. When you press start it records one instant — the epoch anchor — and on every frame it takes the time elapsed since that anchor and subtracts it from the total length of the talk. The result is the remaining time, and the remaining time decides everything else on the stage. The band is chosen purely from the remaining milliseconds: On time while there is room, Wrap up once the wrap-up threshold is reached, Final minute once the final threshold is reached, and Over time from zero onwards. Nothing else feeds the choice — not the progress bar, not the count-up setting, not how many ticks have run.
Every band carries a text label as well as a colour, so the signal survives colour blindness and a washed-out projector. The engine also pairs each band with a one-line hint: On time — Plenty of room — keep to the plan. Wrap up — Start moving toward your closing point. Final minute — Land the last idea and close. Over time — Past the allotted time; the clock is counting up.
The defaults are a 20:00 talk (20 minutes) with wrap-up at 05:00 remaining (5 minutes) and the final band at 01:00 (1 minute); count-up is off. All four can be changed on the speech timer page. The thresholds are measured in time remaining — which is how speakers think — not in time since the start, so a longer talk does not move them.
Where the thresholds fall
Thresholds are inclusive. With the default settings, exactly 05:00 remaining is already Wrap up, exactly 01:00 remaining is already Final minute, and exactly zero is Over time. The table runs 11 fixed remaining values through the band selector and the display formatter.
| Remaining (ms) | Readout | Band | Note |
|---|---|---|---|
| 1,200,000 | 20:00 | On time | the full talk |
| 300,001 | 05:01 | On time | one millisecond above the wrap-up threshold |
| 300,000 | 05:00 | Wrap up | exactly the wrap-up threshold |
| 299,500 | 05:00 | Wrap up | half a second inside it |
| 60,001 | 01:01 | Wrap up | one millisecond above the final threshold |
| 60,000 | 01:00 | Final minute | exactly the final threshold |
| 1 | 00:01 | Final minute | the last millisecond |
| 0 | 00:00 | Over time | zero |
| -1 | +00:01 | Over time | one millisecond past zero |
| -90,000 | +01:30 | Over time | |
| -240,000 | +04:00 | Over time |
Two things in the table matter. The display rounds seconds up, so 300,001 ms remaining reads 05:01 while 300,000 ms reads 05:00 — and because the threshold is inclusive, the band changes on the very millisecond the readout first shows 05:00. The readout and the band never disagree: if you can see 05:00, you are in Wrap up. The same holds at 01:00, and at zero, where the readout shows 00:00 and the band is already Over time.
A talk run through the engine
Here is the default talk — 20 minutes on the clock — started at a fixed instant that is a constant in this guide, not the time you opened the page. The timer stores the anchor; every row is one subtraction against it. Wall clock is time since the start; elapsed is time the talk has used.
| Wall clock | Elapsed | Readout | Band | Progress | Note |
|---|---|---|---|---|---|
| 00:00 | 00:00 | 20:00 | On time | 0% | start |
| 08:00 | 08:00 | 12:00 | On time | 40% | |
| 12:00 | 12:00 | 08:00 | On time | 60% | paused here |
| 15:00 | 12:00 | 08:00 | On time | 60% | still paused |
| 20:00 | 17:00 | 03:00 | Wrap up | 85% | resumed at 15:00 |
| 22:00 | 19:00 | 01:00 | Final minute | 95% | |
| 24:00 | 21:00 | +01:00 | Over time | 100% |
At 12 minutes the speaker is paused. Pausing stores the elapsed total, 12:00, in place of the anchor, so the readout holds at 08:00 and the band holds at On time for as long as the pause lasts; 3 minutes later it still reads 08:00. Resuming moves the anchor forward by exactly the length of the pause — it now sits 3 minutes after the original start — and the display carries on. 20 minutes of wall-clock time after the start the talk has used 17:00, reads 03:00 and is in Wrap up. No row depends on how many ticks ran in between, or on whether any ran at all.
Over time keeps counting
When the remaining time reaches zero the clock does not stop and it does not hide. The remaining value simply continues into negative numbers — the engine returns total minus elapsed with no floor — and the band becomes Over time. The engine reports how far over the speaker is as a figure that is never negative: 1 minute 30 seconds past zero is 1 minute 30 seconds of overtime, and 24 minutes into the default talk it is 4 minutes.
On the stage the readout switches to counting upward with a plus sign, so 1 minute 30 seconds past zero shows as +01:30, and the progress bar stays full rather than overflowing — at 24 minutes it reads 100%. The engine's own formatter, handed the signed value, renders it with a leading minus and rounds away from zero — 1 minute 30 seconds over is -01:30, as the methodology page shows. One millisecond past zero therefore reads +00:01 on the stage, not 00:00.
Count up changes the readout, not the bands
Count-up mode swaps the displayed figure for time used. 16 minutes into the default talk the readout shows 16:00 in count-up mode and 04:00 otherwise; the band in both cases is Wrap up, because it is chosen from the remaining time, which is the same either way. 21 minutes in, the two readouts are 21:00 and +01:00, and the band is Over time in both. The option travels in the share link; it never moves a threshold.
How the settings are normalised
Settings are normalised before they run; the fields on the page and the tokens in a shared link pass through the same function:
- The total length has a floor and a ceiling. A total of zero is raised to 10 seconds; a request for 1000 hours is held at 8 hours, which reads 08:00:00. A total that is not a number keeps the default, 20:00.
- Both thresholds are clamped to the length of the talk. A talk of 2 minutes asking for wrap-up at 30 minutes and the final band at 10 minutes ends up with wrap-up at 02:00 and the final band at 02:00.
- The wrap-up threshold can never sit inside the final band. Wrap-up at 00:30 with the final band at 02:00 is normalised to wrap-up at 02:00.
- When the two thresholds are equal the wrap-up band simply never appears. With both at 01:00, 60,001 ms remaining is On time and 60,000 ms is Final minute.
The lightning-talk configuration the tool page suggests — a 05:00 talk with wrap-up at 01:30 and the final band at 00:30 — survives normalisation unchanged and runs On time at 02:00, Wrap up at 01:30, Wrap up at 00:45, Final minute at 00:30.
Presets and reloads
The settings travel in the URL. The share link for the defaults is ?d=20m&warn=5m&final=1m&mode=down. A link such as ?d=18m&warn=5m&final=1m opens with a 18:00 talk, wrap-up at 05:00 and the final band at 01:00. Parsing is forgiving, so ?d=eighteen&warn=5m&final=1m, whose first token is not a duration, opens at 20:00 with wrap-up at 05:00 and the final band at 01:00: the token it cannot read is ignored and the default kept. The shareable timer links guide covers the token forms.
Running state is saved to this browser's storage as epochs, never as “seconds left”, under the key wrldclock.timer.speech.v1, so a reload picks the talk up where the wall clock says it should be — including a reload from a pocketed phone. A saved talk older than 12 hoursis discarded and the timer opens idle. Checked against this guide's fixed instant, a save from 3 hours earlier is kept; one from 13 hours earlier is discarded.
Where the timer stops
These behaviours are described here, not simulated. The timer runs in the page, so the tab has to stay open. Where the browser supports it, a screen wake lock keeps the display from sleeping while the clock is running and the tab is visible; some browsers do not offer that API, and where that is the case the page says so plainly. An audible cue marks each band change unless cues are muted, and the change is announced to screen readers. What the anchor guarantees is narrower and exact: whenever a tick does run, the readout and the band are correct for that instant, and a reload resumes from the stored epoch.
Common misreadings
- “05:00 on the readout means I still have 5 minutes.” The display rounds up, so 05:00 first appears at 300,000 ms or less — the wrap-up band has already begun.
- “The bands are a share of the talk.” They are fixed amounts of time remaining: lengthening the talk from 20:00 leaves wrap-up at 05:00, and only a talk shorter than a threshold pulls it in.
- “Pausing shifts the bands.” A pause freezes the remaining time, and the band with it; the paused rows in the walk-through read 08:00 throughout.
- “Count-up moves the thresholds.” It changes the figure shown, not the remaining time the band is chosen from.
- “The clock stops at 00:00.” It keeps counting, upward with a plus sign, and the band reads Over time.
Questions
- Why does the band change the moment the readout first shows 05:00?
- Because the display rounds seconds up and the thresholds are inclusive. A remaining time of 300,001 ms still reads 05:01 and is On time; 300,000 ms reads 05:00 and is Wrap up. The readout and the band flip on the same millisecond, so they never disagree.
- Does pausing change the band?
- No. A pause stores the elapsed total instead of an anchor, so the remaining time, and with it the band, is frozen for as long as the pause lasts. Resuming moves the anchor forward by the length of the pause and the talk continues from the same remaining time.
- What happens at zero?
- The remaining time continues into negative numbers and the band becomes Over time. The readout counts upward with a plus sign — 1 minute 30 seconds past zero shows +01:30 — and the progress bar stays full. It never freezes at 00:00.
- Does count-up mode move the thresholds?
- No. It only changes the figure on the readout from time left to time used. 16 minutes into the default talk the two modes show 04:00 and 16:00; both are Wrap up, because the band is chosen from the remaining time either way.
- Can the wrap-up threshold be closer to zero than the final one?
- No. Settings are normalised so the wrap-up threshold never sits inside the final band: asking for wrap-up at 00:30 with the final band at 02:00 gives wrap-up at 02:00. If the two are equal the wrap-up band simply never appears.
- How long can a talk be?
- Between 10 seconds and 8 hours. A total outside that range is held at the nearer limit, and a total that is not a number keeps the default of 20 minutes.
Everything here runs in your browser: the figures above were computed from the engine when the site was built, and the timers themselves run on this device's own clock. The methodology page describes the whole engine, and the guides index lists the other guides.