Auto Counter fixes a wrong-looking result by anchoring every increment on elapsed time, not on the raw number of browser callbacks that happened to fire. A standard browser timer is not a metronome: a busy computer, a hidden tab, or a paused window can delay a tick, and counting each callback as exactly one increment would quietly undercount real time. Auto Counter instead keeps an elapsed-time anchor from the moment Start is pressed, and when a callback finally runs it calculates how many full chosen intervals have actually passed and records those completed increments together. Any partial interval stays as a remainder for the next callback, so Pause does not duplicate a count or throw away an interval that was almost finished. That design is what lets Auto Counter recover a correct-looking total when your session was interrupted or throttled, and it is also what makes the displayed count predictable when nothing went wrong at all.

Why an Auto Counter Result Can Look Unexpected
Most surprising totals are not bugs. They are the visible shape of how a browser actually runs timers, and of how Auto Counter deliberately responds to that shape. The WHATWG HTML Timers specification describes timers as queued tasks that may be coalesced, throttled, or delayed when a page is in a background tab, and explains that the minimum delay the browser is allowed to apply can be much longer than the value you requested (see WHATWG HTML Timers). A naive counter that simply increments on each callback will produce a number that has no honest relationship to elapsed time.
These are the cases that most often make a total look wrong:
- A background or hidden tab throttled your ticks. The next callback fires later than expected, so several whole intervals have actually passed. Auto Counter records them all together on that callback, which can look like a sudden jump rather than a slow count.
- You left the page open overnight. If the tab was inactive for an unusually long time, Auto Counter stops the session instead of replaying a long backlog of old ticks. The displayed number then reflects only what was saved before the stop.
- A delayed callback crossed midnight. Auto Counter assigns completed intervals to the device-local calendar day on which they actually happened, so a session that spans 11:55 pm to 12:10 am splits correctly across two date rows instead of being forced into a single one.
- You wanted to change the interval mid-session. The interval control is locked while running so a change cannot reinterpret time already in progress. If the displayed number looks off because the interval no longer fits your process, the honest fix is to Pause, then start a fresh session with the new value.
Reading each case through this lens usually turns a "wrong" result into a defensible one. The number was always anchored on real elapsed time; it just exposes choices that a naive tap-counter hides.
How to Reconcile the Count With Auto Counter
If a total looks off, the fastest path to a defensible number is to run the session the way the tool is designed to run, then let Pause do the reconciliation step for you. Follow these steps in order.
- Open the page and enter a short label. A short label helps you recognize the daily history row later, but it is not required for the count itself.
- Choose a whole-number interval from 1 through 3,600 seconds. Pick the interval that describes your own process; the tool does not claim that any particular value is better, safer, or more productive. The interval control is locked once a session is running.
- Press Start and keep the page open. The counter adds one count for every completed interval. Auto Counter stores a start anchor under counter:auto-counter and counts only while this page remains open in the browser; closing or reloading the page ends the session.
- Let any delayed callbacks land naturally. If the tab was throttled, the next callback will reconcile the full intervals that have actually elapsed since the anchor, with any unfinished remainder preserved for the next tick.
- Press Pause to reconcile and stop. Pause reconciles every whole interval already completed before it halts the session, so the final displayed number is the result of the elapsed-time calculation rather than a leftover raw callback count.
- Review the local daily history. Every nonzero date appears in reverse order with its automatic increment total. Cross-check the total against the time you actually kept the page open.
- Export only when you need a file outside the browser. PNG produces a 1080 by 1350 share image of a total and recent day rows with no web address and no custom counter label. CSV produces a simple Date and Automatic increments file that opens cleanly in a spreadsheet.
For a deeper verification habit, the related guide How to Check the Result After Using Auto Counter walks through the same review pattern with a slightly different angle.
Reading the Daily History the Right Way
Daily history is the durable record, and it is grouped by the device-local calendar day using Intl.DateTimeFormat rather than by a single UTC date. That detail matters when a result looks wrong. If you started a session at 11:50 pm and ended at 12:20 am, you should see two date rows in history, not one merged row. The completed intervals in each row were assigned to the local day on which they actually happened, so a missing number on one date can often be explained by a row sitting on the adjacent date instead.
| What you did | What daily history will show | Why the total still reconciles |
|---|---|---|
| Kept the page open across midnight | Two date rows, intervals split by local day | Each completed interval is mapped to its applicable local day |
| Left the tab throttled for several minutes | A single larger jump on one row | Callback reconciled floor(elapsed / interval) on that tick |
| Tab was inactive for an unusually long time | Session stops; the row stops growing | Auto-stop prevents an unbounded replay of old ticks |
| Closed or reloaded the page | The running session ends; prior rows remain | Counter never pretends a server process continued elsewhere |
If a date row is missing entirely, that means no completed interval was saved for that day, not that the count failed. If storage is disabled or full, the page still shows the current interaction but explicitly states that it cannot retain history; it does not claim a backup that does not exist.
When to Trust the Number and When to Restart
Trust the displayed number when you pressed Pause promptly, when you kept the page open without long inactivity gaps, and when the total matches the time you actually spent. The reconciliation logic runs on Pause, so a clean Pause is the cleanest signal that the count is final. If the total still does not match the time you spent, walk back through the four cases above and check whether one of them fits.
Restart when the session was clearly wrong for a process reason: you forgot to pause and the page stayed open far longer than you intended; you realized the interval no longer matches what you were actually timing; or you cleared site data and the prior local history was lost. Starting a fresh session makes the new session boundary visible and prevents an old anchor from silently mixing into a new count.
A single worked example shows why the number you see is the number you can defend. Suppose you set a 60-second interval and keep the page open for 1,300 seconds. The math is:
- Floor(1,300 / 60) = floor(21.666...) = 21 completed intervals
- Remainder = 1,300 − (21 × 60) = 1,300 − 1,260 = 40 seconds
Auto Counter records 21 increments on Pause and carries the 40-second remainder into the next callback, where it combines with any additional elapsed time. If the tab had been throttled and the 21st callback arrived at the 1,300-second mark instead of the 21st individual tick, the displayed number is still 21, because the anchor stayed put while the callbacks were delayed.
Limits That Keep the Count Honest
Several boundaries are not optional extras; they are the reason the result is reliable in the first place.
- Page must remain open. Auto Counter is intentionally not a background service, an alarm, a payroll clock, or a monitoring system. Closing or reloading the page ends the running session, and the tool never pretends a server process continued elsewhere.
- Interval is locked while running. The control freezes on Start so a mid-session change cannot reinterpret time already in progress and silently double- or lose-count.
- Auto-stop on long inactivity. If a tab has been inactive for an unusually long time the tool stops rather than attempting an unbounded replay of old ticks. The number you see is the number of saved increments; nothing is made up.
- Storage stays local. The label, interval preference, and saved daily counts are stored only under the counter:auto-counter key in this browser, per the WHATWG HTML Web Storage specification. They are not sent to Lizely, synchronized to another device, or joined to a user profile. Clearing site data removes the record, and a different browser starts empty.
- Export files are generated in the browser. Both PNG and CSV are produced with native Blob and canvas APIs. There is no upload queue, image processor, account, or outside API in the export path.
The practical takeaway is that a wrong-looking Auto Counter result is almost always a sign of one of three things: a long inactive tab that triggered the auto-stop, a midnight crossing that splits the count across two date rows, or a session that was left running past the moment you intended. Pause first, then read the daily history with that map in mind. If the history still does not match what your process should have produced, start a fresh session with the interval that actually describes your rhythm and Pause promptly when it ends.
For a deeper look, see How to Correct a Chess Clock When the Display Looks Off.