Progressive output eases the feel of waiting
Aliases: occupied wait · progressive disclosure of tokens · waiting experience
What it is
The same reply arrives in one block after eight seconds: people stare at a blank spinner and it feels long. The same eight seconds, with words coming out from the first second: people read along and it does not feel as heavy. The clock did not change; idle waiting became waiting-while-following. Progressive output eases waiting means swapping empty wait for visible progress. What changes is how hard the wait feels, not when the task ends.
Whether early content is enough to judge, and whether wall-clock duration actually shrank, are not this sentence’s job. It treats only the texture of two waits: empty, and something-is-coming-out.
Why it happens
In idle waiting, attention has no object, duration estimates stretch, and people go looking for another window. When there is content to follow, attention is occupied by reading, the interval is filled, the same seconds are estimated shorter, and the motive to leave mid-way drops. Progressive appearance supplies occupation, not a certificate of completion.
A spinner or a bar also occupies attention, but with monitoring, not reading. Monitoring still asks “are we done”; reading asks “what is the next sentence.” The latter rewrites waiting from surveillance into participation, and that rewrite is where most of the ease comes from.
Studying it
Same generation, wall-clock locked; compare blank spinner, indeterminate bar, token-by-token appearance. Dependent variables: estimated wait, annoyance ratings, times switching away. Independent variables: when the first token appears, whether rate is even, whether a spinner still sits beside the text.
Wall-clock must be locked. Otherwise “felt faster” mixes with “was faster.” Switching away is a behavioural measure, harder than recalled seconds.
Where it stops holding
When generation is tens of milliseconds, progressive appearance never becomes reading and there is no waiting problem; forcing a stream only flashes. When the user has backgrounded the window, occupation has no object and progressive appearance cannot help; what they need on return is “finished,” not a replay. Users with reading difficulty or a screen reader may not keep up with jumping tokens, and waiting can feel worse. This entry does not treat whether incomplete text may be used as the final result, nor a stop control.
Applying it
- On generations that would otherwise be idle waits, let content start appearing early; avoid long stretches of spinner-only.
- Do not let a spinner stand in for progressive text. A spinner is still surveillance, not participation.
- If the rate is too fast to read, hold it at a followable speed; slightly slower than decode beats flashing into a block.
- Check: lock total duration on the same task; spinner versus progressive. Ask “how long did you wait” and count switches away. If estimated duration and switches do not drop, progressive output is not easing waiting.