Interval timing
Time blindness test that measures how long an interval actually feels
Seventeen intervals in about four and a half minutes: twelve you copy after watching, three you produce to a length you were told, and two you estimate in seconds. The result is your signed error and your spread, both as a share of the interval that was really on screen, with the filled intervals reported separately from the empty ones. Free, no account, and no diagnosis at any point — time blindness is a phrase people use, not something anybody has an instrument for.
- 100% free
- No signup
- 17 intervals
- Signed error and spread
- Filled against empty
17 trials, about four and a half minutes, in three blocks that ask the same question three different ways. First you copy intervals you have just watched, then you make intervals of a stated length, then you watch two more and say in seconds how long they were. The three do not have to agree, and when they disagree that is a result rather than an error.
The one rule that matters
Do not count. Not out loud, not under your breath, not one-Mississippi in your head. Counting replaces the thing being measured with mental arithmetic, and it works — a counted interval comes out far more consistent than a felt one. This page cannot see whether you counted, so it does the next best thing and tells you what counting looks like in the numbers afterwards.
Reproduction — 12
A marker appears, stays for a while, and goes. Hold the space bar or the button for the same length of time. Half the intervals are empty and half are filled with irregular flashes.
Production — 3
You are told a duration, the marker appears, and you press once when you think that long has gone by. Nothing on screen changes while you wait.
Estimation — 2
An interval passes and you type how many seconds it was. This is the only block where the answer is a number rather than an action.
Everything is measured from the frame that painted the marker to the frame that removed it, so your score is against the interval you actually saw rather than the one the code asked for. Leaving the tab voids the trial in flight and it is asked again straight away, up to 4 times.
How to run the three timing blocks
Copy an interval, make an interval, then put a number on one.
Copy twelve intervals by holding a key
A marker appears for somewhere between 1.5 and 6 seconds and then goes. Hold the space bar, or the big button, for what feels like the same length and let go. Six of the twelve are empty — a still dot — and six are filled with a square jumping between nine positions at irregular gaps, which is the manipulation that makes the same duration feel different.
Make three intervals to a stated length
You are told 4, 9 or 18 seconds, the marker appears, nothing changes, and you press once when you judge that long has gone by. This is the block where counting is most tempting and most damaging: it is the only one where you know the number in advance, so a mental count converts the task into arithmetic and the result stops being about time perception at all.
Put a number on two more, then read the errors
The last two intervals just pass, and afterwards you type how many seconds you think each was. The results table shows every trial against the interval that was actually painted rather than the one the code asked for — measured between two paint timestamps — so a frame of scheduling slop does not end up in your error.
Technical specifications
| Trials | 17 in total: 12 reproductions at 1.5 s, 3 s and 6 s crossed with filled and empty, twice each; 3 productions at 4 s, 9 s and 18 s; 2 estimations at 10 s and 20 s. Order is drawn from the run seed inside each block, and the blocks stay in order because switching methods every trial costs a task switch that shows up as timing error |
|---|---|
| The reference each error is against | The interval that was painted, measured from the frame that put the marker up to the frame that took it down. On a 60 Hz panel that is up to one frame away from the nominal duration, and the honest denominator is the one you saw. Production trials have nothing to present, so those are scored against the duration you were asked for |
| How a filled interval is filled | A square moves between nine grid positions at gaps drawn uniformly between 180 and 520 ms, so there is no beat to ride and no comfortable number of events to count. A regular tick would turn the whole method into counting, which is the strategy every one of these blocks is built to keep out |
| What is reported | Signed error as a percentage of the interval, averaged over the reproductions with a 95% interval on that average, plus the standard deviation of your ratios — the spread, which is the part that tracks how noisy your timing is rather than whether it runs fast or slow |
| Reference figure | 5-10% — Grondin (2010), Timing and time perception: a review of recent behavioral and neuroscience findings. That is a discrimination threshold, not a reproduction score: copying an interval is noisier than comparing two, so it sits beside your spread as context and is never converted into a rank |
| What voids a trial | Any interval during which this tab stopped being the one in front. A hidden tab stops receiving frames, so an interval that spans the gap is neither the length the page thinks nor the length you experienced. Up to 4 voided trials are asked again straight away; beyond that the run finishes short and says so |
| Response channel | Space bar or an on-screen button, and the run reports how many intervals were held with a finger. A held interval is bounded by two of your own actions, so the cost of aiming a pointer applies at both ends and largely cancels — which is not true of a reaction time and is the reason this page treats a tapped answer differently from the timed tasks elsewhere on the site |
| What leaves the page | Nothing. Every timestamp lives in a JavaScript array in this tab, and the copy button writes the block averages and the seed to your own clipboard — not the per-trial durations |
Frequently asked questions
Is time blindness a real diagnosis?
No. It is a descriptive phrase, widely used in the community around ADHD, for a cluster of experiences: losing hours, mis-planning how long a task will take, being late without intending to be. There is no instrument for it, no cut score and no norm, and the research that touches the same ground measures interval timing, which is much narrower than what the phrase usually covers. That is why this page measures interval timing and calls it that. Nothing here can indicate ADHD or any other condition, and a result from it should not be shown to a clinician as though it were data.
Why does the same interval feel different depending on what is in it?
Because an interval broken up by events is generally judged longer than an empty one of the same length. That is the filled-duration illusion, it has been reproduced across a range of durations and both modalities, and this page runs six intervals of each kind so you can see whether it happens to you. The usual account is that events give the timing process more to accumulate: an interval with twelve things in it leaves more of a trace than an interval with nothing in it, and the judgment reads the trace. It is also the practical half of the whole subject — a wait with nothing in it and a wait with something in it are not interchangeable, whatever the clock says.
Why does the page keep telling me not to count?
Because counting works, and that is the problem. Chronometric counting replaces duration judgment with a rehearsed motor rhythm plus arithmetic, and it makes a person's intervals dramatically more consistent — which looks like excellent time perception and is a measurement of their counting. The page cannot detect it directly, so it does the honest alternative: it reports your spread beside a published figure for how finely people discriminate intervals, and says that a spread well below that figure is the signature of a count rather than a feel. The production block is where the temptation peaks, because you are told the number before you start.
Why are there three different methods instead of one good one?
Because they dissociate, and a page reporting one of them as your time perception would be hiding that. Estimation asks for a number and drags in whatever your relationship with the word 'seconds' is. Production asks you to generate a stated duration and inverts the usual error direction — someone who feels time running slow produces short intervals and estimates long ones. Reproduction avoids the units problem entirely, since both ends are your own. Running all three and printing them separately shows you where your errors are consistent and where they flip, which one number never could.
My errors are enormous on the 18-second trial and small on the short ones. Is that normal?
Yes, and the shape is the interesting part. Timing error grows roughly in proportion to the interval rather than staying a fixed number of milliseconds, which is why every figure on this page is a percentage rather than a duration — the same person who lands within 200 ms on a 1.5-second interval is typically two full seconds out on an 18-second one, and both are the same performance expressed as a ratio. Long intervals also give attention more chances to wander, and anything that pulls attention away from timing shortens the felt duration.
Does a large error mean I have a poor sense of time?
It means these seventeen intervals came out that way this afternoon, which is a smaller claim than it sounds. Interval timing moves with arousal, body temperature, caffeine, how interesting the wait is and how much attention is left over for it, and a run this short cannot separate any of that from a stable trait. The two figures worth taking seriously are your own repeats: run it twice a week apart and see whether the direction of your signed error holds. A single browser run has no reference population behind it and this page never invents one.
What happens if a notification steals the window mid-interval?
The trial is voided, you are told, and it goes to the back of the queue — up to four times. A background tab stops receiving animation frames, so the marker either freezes or is not being looked at, and the interval the page thinks it presented is not the interval you experienced. Padding that trial back in is the only way the block still delivers the count it promised. Beyond four the run simply finishes shorter, because a session interrupted five times is not a session about time perception any more.
What interval timing measures, and what the phrase is doing to it
The three methods on this page are not three versions of one test. Verbal estimation hands you a scale you did not choose — everybody's private notion of “ten seconds” carries the residue of every countdown and microwave they have ever used — and produces errors that lean systematically depending on how the question is phrased. Production inverts the direction of the error, which is the tidy diagnostic: a person whose internal pacemaker is running fast will judge a presented interval as long and will produce a short one, because the same clock reading means different things depending on which side of the comparison you are on. Reproduction sidesteps the units problem altogether by asking you to match one of your own intervals to one of ours. Getting all three and finding they disagree is not a fault in the run; it is the reason the literature keeps them apart.
What makes any of this measurable in a browser is that the honest quantity is a ratio. Timing error scales with the interval rather than sitting at a fixed number of milliseconds, so a percentage is the only figure that is comparable across a 1.5-second interval and an 18-second one — and it is also the figure that survives an unknown display and an unknown machine. That is why the result leads with signed error as a share of the interval, and why the second number is the spread of those ratios rather than a raw standard deviation in milliseconds. Against that, the published reference is 5-10% for telling two intervals apart, which is a stricter task than copying one, so the number to expect from a reproduction run sits above it rather than at it. The filled and empty cells exist because the same physical duration is judged differently depending on whether something happened during it — a finding robust enough that six trials a side will often show it in one person.
The reason the page is careful about the phrase in its title is that the substitution runs one way. Somebody arrives having recognized themselves in a description — the hours that vanish, the twenty minutes that were an hour — and finds a word that fits. Recognizing yourself is real information. What does not follow is that there is a quantity called time blindness with a threshold you can be over, and every test that implies otherwise is selling a verdict it cannot produce. The same trade is on offer when a genuine difficulty naming what you feel becomes a score on alexithymia, when a preference becomes a learning style you should be taught through, or when a real asymmetry becomes a dominant hemisphere. If the thing you are actually chasing is how quickly you get through work, the processing speed test measures that and it is a different quantity from how long a wait feels; if it is where your attention goes while you are waiting, the Posner cueing task measures that instead.
Why there is no score for time blindness itself
Time blindness is a popular term rather than a measured construct: there is no instrument and no norm. The adjacent research measures time reproduction and estimation, which is a different and narrower thing than what people mean by the phrase.
Interval discrimination threshold: 5-10%
Grondin (2010), Timing and time perception: a review of recent behavioral and neuroscience findings
A proportion rather than a fixed number of milliseconds, so the same listener resolves about 25 ms in a half-second gap and about 50 ms in a one-second gap. Auditory intervals are discriminated more finely than visual ones, which is why a rhythm test should be heard rather than watched, and the browser's own audio scheduling jitter has to be smaller than the difference being tested or the test is measuring the platform.
The three methods and why they dissociate: Zakay & Block (1997), Temporal cognition, Current Directions in Psychological Science. The filled and empty comparison: Wearden, Norton, Martin & Montford-Bebb (2007), Internal clock processes and the filled-duration illusion, Journal of Experimental Psychology: Human Perception and Performance.
A reaction time here is the interval between the frame that painted the stimulus and the timestamp the browser attached to your key, both read from the same monotonic clock. What neither can see is the display pipeline behind it, so on a 60 Hz screen roughly 16 ms of every figure below is the machine rather than you. That is the timing floor: two numbers closer together than that are the same number, and this page reports no precision it cannot support.
On this page that floor is unusually kind. One frame against a six-second interval is about a quarter of one percent, and every error reported here runs into the tens of percent, so the machine is a rounding detail rather than a rival explanation. It still gets stated, and it is still why the reference for each trial is the interval measured between two paint timestamps rather than the duration the code asked for.
This is a measurement exercise, not a clinical assessment. It reports what you did on this page against a stated reference and nothing more — it cannot establish ADHD, an attention disorder or any developmental condition. Only a qualified professional, working with more than a browser, can make that judgment.
Where your seventeen intervals are worked out
Every number on this page is worked out by JavaScript running in the tab you are reading it in. Your answers, your reaction times and your score are never uploaded, logged or kept — which is also why the test carries on working after you disconnect from the network, and why nothing here can be held back behind an email address.
Every timestamp — each marker's paint, each press, each release — lives in one JavaScript array in this tab and is used to form ratios and nothing else. It is not written to storage and not sent anywhere, so reloading the page loses a finished run and the copy button is how a result leaves at all. What it copies is the block averages, the spread and the seed, not the per-trial durations.