Home / Anticipatory pacing
The pace eases before the hard word, not on it.
Ordinary RSVP speed reading shows you one word at a time at a fixed interval. That fixed interval is the problem: it removes the single thing your eyes do automatically when a difficult word is coming, which is to slow down slightly before they reach it. ReadKinetic puts it back.
Open ReadKinetic, import a book, and hold to read. It is on by default and there is nothing to configure.
What your eyes were doing before RSVP stopped them
While you are fixated on one word, you are already partially processing the next word or two at the edge of vision. This is called parafoveal preview, and one of its consequences is that an upcoming difficult word lengthens your current fixation — you slow down before you arrive, without deciding to.
RSVP takes that away. The words come to you instead of your eyes going to them, so the timing is no longer yours, and a fixed pace means every word gets exactly as long as every other word. The rare technical term and the word "the" are given identical time. That is the real cost of the format, and it is rarely the one people argue about.
Anticipatory pacing is a deliberate reconstruction of the mechanism the format removed. The ramp peaks one word before the difficult one and is already easing off by the time it arrives, so what you feel is not an adjustment — it is the pace.
Why not simply slow down on the hard word?
Because that was the first version, and it was abandoned. Changing the duration of individual words as they arrive makes the rhythm unpredictable, and an unpredictable rhythm is felt as a stumble on every adjustment. It also jolts on the difficult word, which is at once the least useful moment to interrupt and the most noticeable.
The data was never the problem. The application was.
Difficulty comes from your book, not from a word list
The obvious implementation ships a frequency table of English. It costs every visitor the download whether they read English or not, and it is wrong twice over: it cannot rank a word that is not English, and it insists a word is rare on page 400 of a book that has used it on every page since page 12.
Counting within the book solves all of it at once, and for free. Zipf's law guarantees that a few function words dominate any corpus in any language, so "the", "of" and "and" sink to the bottom of the ranking on their own — and so do bin, ve and bir in a Turkish novel, or their equivalents in German, Japanese or Arabic. No language-specific code exists in this feature, and none is needed.
It also means a character's name or a piece of jargon stops being treated as hard once the book has taught it to you, which is exactly what happens to a real reader and exactly what a shipped list cannot represent.
A name is not a rare word
These are different problems and giving them the same shape was always slightly wrong. A rare common word wants time before it, because what you are doing is recognising it, and that work starts while you are still on the word before.
A name you have never met wants time on it. There is nothing to recognise. What you are doing is binding it to a referent — building the slot the name will live in for the rest of the book — and that cannot start early, because until the word is in front of you there is nothing to bind. So a first-time capitalised word that is not merely starting a sentence gets its own envelope, weighted on the word and a little past it.
And it learns which words trip you
Everything above is a property of the book: two people reading the same novel get the same ramp. That is right as a starting point and wrong as a destination, because the words that cost you a re-read are not the words that cost somebody else one.
The signals already existed and were being thrown away. Pressing Undo, taking "back to your place", letting go of a hold in the middle of a sentence — each is you saying, at a word the app already knows, that something did not land. That is precisely the regression the format removed. The regression cannot be given back, but where it happens can be learned, and the next one can be anticipated.
The third of those is the one worth having. The first two are you asking for something; but nobody ends a reading session in the middle of a sentence — you stop at a full stop — so a hold released mid-sentence is the thread being lost, and it costs you nothing to give.
What is stored, and what deliberately is not
Three integers, in your own browser: how many times you have lost the thread, how many of those the model had not already flagged, and how many were on long words. That is the entire record.
Keeping the stumbles themselves — word, book, timestamp — is the obvious implementation and the one worth refusing. A list of the exact places a named book defeated you is genuinely intimate, considerably more revealing than the reading speed it would sit beside, and it would be kept only in order to average it away on every read. Keeping the average instead means there is nothing to leak, nothing to export by accident, and nothing a later feature can be tempted to do something clever with.
It also happens to be the correct engineering: twelve bytes that do not grow over years of reading. And it fades, so a reader who has since improved is not permanently described by the month they started.
Three rules that keep it from becoming a gimmick
It moves in weeks, not sentences. Confidence builds over roughly four hundred observations. The failure that killed the original per-word version was fast modulation; nothing here is capable of moving fast.
It cannot invent a shape the text could not. What a reader moves is how far apart ramps are allowed to be, and whether length or unfamiliarity counts for more. Not how deep any ramp goes. Every individual ramp is the same shape and the same ceiling it always was.
A reader it has never met gets the text's own pace. The cold start is not a degraded mode — it is byte-for-byte the pace the book describes, with the personal correction layered on afterwards and only once there is enough of it to mean anything.
What it costs you
Across a whole book, about one per cent of added time. The pace you set remains the pace you get; what changes is where the time inside it goes. It is not a feature for reading faster. It is a feature for reading at speed and still arriving with the sentence.
The clearest demonstration of that is Arabic and Hebrew, which arrived later and needed no pacing work at all: the counting had already been done in whatever book you opened.
Try it, or turn it off under Settings → Anticipatory Pacing and feel the difference by its absence, which is honestly the easier way to notice it.
Common questions
What is anticipatory pacing?
The reading pace eases down over the two words BEFORE a difficult one, rather than on it. By the time the hard word arrives you are already reading slightly slower and nothing appears to have happened. It is switched on by default and can be turned off under Settings → Anticipatory Pacing.
Why slow down before the word rather than on it?
Because that is what your eyes already do, and because the alternative was tried and abandoned. Changing the duration of individual words as they arrive makes the rhythm unpredictable — you feel every adjustment as a stumble — and it jolts on the hard word, which is both the least useful moment and the most noticeable one. Easing in beforehand is felt as pace rather than as a change of pace.
What is parafoveal preview, and what does it have to do with it?
While your eyes are fixated on one word they are already partially processing the next word or two, out at the edge of vision. An upcoming difficult word therefore lengthens your CURRENT fixation, before you ever reach it. Normal RSVP destroys that mechanism by fixing the pace, because the words come to you rather than your eyes going to them. Anticipatory pacing is a deliberate reconstruction of it.
Does it download a dictionary or a word-frequency list?
No. Difficulty is worked out from the book you are reading, by counting the words in it. Nothing is downloaded, which means nothing is downloaded by readers who will never need it either.
Does it work in languages other than English?
Yes, and without a single line of language-specific code. Zipf's law holds in every natural language: a handful of function words carry most of any text. So 'the', 'of' and 'and' sink to the bottom of the difficulty ranking on their own — and so do 'bin', 've' and 'bir' in a Turkish book, or the equivalents in German, Japanese or Arabic. A shipped English frequency table could not have done this.
What happens with a character's name, or a technical term?
It is treated as hard the first time and stops being treated as hard once the book has taught it to you, because the count is taken from the book rather than from the language. That is what happens to a real reader, and a shipped word list cannot represent it: it would insist a word is rare on page 400 of a book that has used it on every page since page 12.
Are names handled differently from rare words?
Yes, since v3. A rare common word wants time before it, because recognising it starts while you are still on the word before. A name you have not met wants time ON it: there is nothing to recognise, and what you are doing is binding it to a referent, which cannot begin until the word is actually in front of you. First-time capitalised words that are not simply starting a sentence get their own shape, weighted on the word and a little past it.
How does it learn from me?
Three things you already do tell it something: pressing Undo, taking 'back to your place', and letting go of a hold in the middle of a sentence. Each is you saying, at a word the app already knows, that the reading got away from you. From that it learns two things only — roughly how far apart your ramps should be, and whether length or unfamiliarity trips you more often.
What is stored about my reading, and where?
Three integers, in your own browser: how many times you have lost the thread, how many of those the model had not flagged, and how many were on long words. Not the words, not the books, not the places. A list of the exact points at which a named book defeated you would be far more revealing than anything else the app holds, and it would be kept only to average it away — so it is not kept. Nothing is sent anywhere, because there is nowhere to send it.
Will it make my reading erratic as it learns?
No, by construction. Confidence builds over roughly four hundred observations, so it moves over weeks of reading rather than sentences. Both of the things it can change are tightly bounded, and neither can alter how deep a single ramp goes — a reader can never produce a shape the text alone could not. A reader the app has never met gets exactly the pace the book describes.
Can I turn it off, or start it again from scratch?
Yes to both. Settings → Anticipatory Pacing switches the whole thing off and the pace becomes flat; turning it off also stops anything being recorded. Beneath that toggle, once there is enough for it to say something honest, it tells you in plain words what it has learned about your reading — and offers to forget it, which deletes the three numbers and returns you to the pace the book alone describes.
Does this make me read faster?
It is not meant to. The pace you set is the pace you get: across a whole book the added time is around one per cent. What it changes is how much of what you read at that pace stays with you, by spending a little time where it is worth spending and none where it is not.
Open a file and see.
Free, no account, nothing uploaded. Works offline once loaded.
Open ReadKinetic →Related: Arabic and Hebrew speed reader · Regression: the re-read RSVP takes away · What are eye saccades? · Does speed reading hurt comprehension? · The subvocalization myth · EPUB speed reader