AnkiWeb
- Rating
- 0 (π 0 Β· π 0)
- Updated
- 2026-09-04
- Anki versions
- 2.1.1~
- Description language
- en
AnkiWeb addon 1873683060
Estimates how long today's Anki reviews will take by measuring actual per-deck, per-card-type answer and wall-clock speeds, showing a realistic range and finish time.
Open on AnkiWeb GitHub Ask about alternatives
active
| Min Anki | Max Anki | Updated |
|---|---|---|
| 2.1.1 | + | 2026-09-04 |
Loadingβ¦
Calculates exam-focused daily new-card targets, includes due reviews, estimates study time using recent Anki speed, tracks pace, and displays customizable deck stats.
Automatically tracks Anki review sessions and estimates study efficiency, showing daily statistics, trends, session coverage, timers, and optional cross-device sync, requiring Review Heatmap.
Breaks study sessions into timed batches, tracks rolling average pace, compares current cards, shows a flame when ahead, and estimates review completion time.
Adds a customizable visual pacing HUD that tracks front/back card timing and adapts through EMA and session rhythm without changing scheduling.
Estimates daily Anki review time, adjusts for fatigue and retention, splits sessions into spaced blocks, simulates faster speeds, and lets users include or exclude decks.
Turns studying into a cozy pixel restaurant with a pomodoro timer, review-earned guests, shop pets, decorations, stats, and theming that matches your setup.
An Anki add-on that measures how fast you actually answer cards and turns that into an honest estimate of how long today's workload will take.

Most speed add-ons multiply "cards due" by one average seconds-per-card. Four things make that wrong, and Pace Estimator fixes all four:
The choices above were settled by walk-forward backtesting against a real collection: for each day, speeds were built from the preceding days only and used to predict that day's total time, with no access to the day being predicted. Across 60-75 such days:
| Estimator | Bias | Average error |
|---|---|---|
| Mean, per card type, 14-day window | +3.8% | 25.3% |
| Mean, single figure for all cards | +5.4% | 27.4% |
| Trimmed mean | -17.3% | 31.0% |
| Median | -43.3% | 45.4% |
The median underestimates by more than 40%: on that collection the slowest 10% of cards account for 38% of all time spent, and the median throws that tail away. Per-card-type means beat one overall mean by about two points, and a 14-day window beats 30 or 90 days, because it tracks your current pace.
Card-level features changed the error by less than a point, which is noise at this sample size, so they are off by default -- but they are implemented and switchable. A variance decomposition explains why they do not help much: of the variation in how long a card takes, which card type it is explains 0.3%, which day it falls on explains 10%, and the remaining 90% is card-to-card noise that averages out over a session. Your pace swings about Β±39% from day to day, and no property of a card can predict that; it is expressed as the ETA's upper bound instead.
None of the above is hard-coded. Under Speed & accuracy:
Under Home screen, Show speed as picks whether the panel leads with the average, the typical (median) card, or the average with the typical underneath.
This is the largest effect in the whole model, and the one worth understanding. On the collection this was built against, second-level decks ranged from 8.3 seconds a card to 28.7 -- a 3.4x spread. A vocabulary deck and an image-heavy one are simply not the same activity. Which deck a card is in explains 8.7% of the variation in how long it takes; which card type it is explains 0.3%.
So every deck is priced from its own review history. A deck with too little history of its own falls back to its parent deck, and only then to the whole selection, so a brand-new subdeck inside a well-established tree is still priced sensibly. Predicting a single deck's study time improves from 30.8% to 28.5% average error, but the real difference shows up in the numbers a person actually looks at:
100 cards due in "A Frequency Dictionary of Spanish"
priced from that deck 15m
one collection-wide rate 26m
100 cards due in "Ankidrone Foundation V7"
priced from that deck 47m
one collection-wide rate 26m
A single blended rate gives the same answer for both, and is wrong by a factor of three in opposite directions.
When several decks are in scope, each is priced separately and the results are combined -- variances add, so the combined range is tighter than the sum of the individual ranges rather than assuming every deck runs slow at once.
Hourly averages are the most misleading statistic in this whole add-on. On the test collection the slowest hour looked 85% worse than the fastest -- but comparing hours only against other hours of the same day, which removes "that was simply a slow day", collapses that spread to about 10%. The apparent hour effect is mostly a record of which days you happened to study in which hours. Splitting a history into 24 buckets also leaves each one thin, and the pattern is not stable: correlation between the first and second halves of one history was only +0.31.
So the estimate does adjust for the clock, but carefully. An hour must have been studied on at least five separate days before it may move anything, and its measured difference is then scaled back in proportion to how much data supports it. Backtested:
| Hour adjustment | Bias | Average error |
|---|---|---|
| Ignored entirely | +1.7% | 26.7% |
| Applied, no day requirement | +2.0% | 28.3% |
| Applied, five-day requirement | +0.8% | 26.2% |
Without the guard it makes estimates worse than ignoring the clock. With it, it helps a little and roughly halves the bias. Tools βΈ Pace Estimator lists every hour, how many answers and how many separate days it rests on, and whether it qualified.
Cards already part-way through learning are counted by the answers they still
owe (cards.left), not as one card each, and every count comes from Anki's own
scheduler, so per-deck limits are respected.
revlog.time).Wall-clock is the default because it is what actually happens. Gaps longer than the idle cutoff (60s by default) count as breaks and are excluded, so walking away mid-session doesn't wreck your averages. Gaps are measured across the whole review stream, not per deck, so interleaving decks stays accurate.
Every block can be turned off and reordered. Surfaces: the deck list, a deck's study screen, the top toolbar, a heads-up display while reviewing, and a detailed window at Tools βΈ Pace Estimatorβ¦.
Off by default. Switched on, it ships as the least intrusive thing that still helps: no timer on screen at all, the clock running quietly, and a large symbol at the bottom of the screen once a card has run over its time β while the question is still showing, which is the point at which the useful response is to stop struggling and turn the card over. Move it to the answer side if you would rather not be nudged mid-recall.
Set a target seconds-per-card, globally or per deck on the Decks tab. The timer and the out-of-time warning are independent, so you can also have:
The question and the answer are treated as separate phases, so Clock runs picks between one clock for the whole card, a clock that stops when you reveal the answer, one that only starts once you do, or a separate clock with its own allowance for the answer. Warn me on is independent of it: you can time the whole card but only be warned once the answer is showing.
The warning fires at exactly the time you set β there is no early warning stage. Everything is drawn by the add-on, so it works on every note type without editing a single card template. Preview it here on the settings tab runs the whole thing on the current screen with a shortened goal, so you can check a setting without sitting through a real card.
Bugs, ideas and questions are all welcome:
If a figure looks wrong, check first whether it is scoped to the decks you have selected rather than your whole collection; that accounts for most surprises.
In Anki: Tools βΈ Add-ons βΈ Get Add-ons, and paste this code:
1873683060
Then restart Anki. The add-on's page is at https://ankiweb.net/shared/info/1873683060.
From a file β download the .ankiaddon and use Tools βΈ Add-ons βΈ Install
from file. Requires Anki 23.10 or later; developed and tested against 26.8.
See PUBLISHING.md. ./build.sh runs the tests, strips __pycache__ and
meta.json, and writes dist/pace_estimator.ankiaddon with the files at the top
level of the archive, which is what AnkiWeb requires.
python -m pytest tests
The suite includes tests/test_reviewer_js.py, which runs the injected reviewer
script under Node against a stub DOM and a fake clock, so the per-card timer is
checked second by second rather than by eye. Those tests skip if Node is absent.
pace_estimator/src/stats.py holds all the arithmetic and imports nothing from
Anki, so the numbers are testable without launching the app.
Shortcuts are recorded with a purpose-built widget rather than Qt's
QKeySequenceEdit: click it, press the combination, and it is taken the moment
you release every key, with an β to clear it. Escape cancels, Backspace clears.
Turn on Troubleshooting βΈ Write a debug log in the settings to get
pace_estimator_debug.log in your add-ons folder, or read the in-memory tail with
Show recent activityβ¦. Every hook the add-on registers is wrapped so a
failure is logged rather than breaking the screen it is attached to.