| Field | Value | Copy |
|---|---|---|
| Status | {{ statusLabel }} | |
| Reward | {{ reward_label || '—' }} | |
| Preset | {{ presetLabel }} | |
| If urge appears | {{ focus_trigger || '—' }} | |
| Then I will | {{ replacement_action || '—' }} | |
| Future-self cue | {{ future_reward || '—' }} | |
| Configured delay (s) | {{ totalDelaySec }} | |
| Baseline urge (1-10) | {{ urge_level }} | |
| Started at | {{ started_at_local || '—' }} | |
| Unlock target | {{ finish_time_local || '—' }} | |
| Elapsed (s) | {{ Math.floor(elapsedSec) }} | |
| Remaining (s) | {{ Math.max(0, Math.ceil(remainingSec)) }} | |
| Completed | {{ unlocked ? 'Yes' : 'No' }} | |
| Gave in | {{ surrendered ? 'Yes' : 'No' }} | |
| Pause count | {{ pauseCount }} | |
| Paused total (s) | {{ Math.floor(pauseTotalSec) }} | |
| Pause penalty per pause (s) | {{ pause_penalty_s }} | |
| Penalty added this run (s) | {{ Math.floor(penaltyAddedSec) }} | |
| 7d success rate | {{ successRate7dLabel }} | |
| Success streak (days) | {{ successStreakDays }} |
| Coach move | Why it matters |
|---|---|
| {{ item.action }} | {{ item.rationale }} |
| Start a timer to generate tailored coaching. | |
Delayed gratification is the skill of tolerating a smaller discomfort now to protect a later reward or goal. That tradeoff matters when a snack, scroll, impulse purchase, or break feels good immediately but makes the next hour worse. Gratification Delay Timer turns that abstract choice into a visible waiting session with a clear unlock point.
Instead of only counting down, the tool asks you to define the temptation cue and the replacement response before you start. That mirrors an if-then plan: name the trigger, name the action, and let the timer hold the boundary while you ride out the urge. A short reward label and future-self cue keep the later payoff concrete rather than vague.
A five-minute reset before checking messages, a 10-minute pause before ordering takeout, or a 25-minute work block before a leisure break all fit the tool well. The presets make those common windows quick to launch, but you can still change the minutes and seconds if the default is either too easy or unrealistic for the decision you are trying to protect.
During a run, the interface stays focused on waiting rather than analysis. You see remaining time, an estimated unlock moment, and session metrics such as pauses, penalty time, recent seven-day success rate, and current success streak. If you enable sound or haptics, halfway and finish cues can add friction without forcing you to watch the screen constantly.
The main limit is interpretive. A successful run means you completed this waiting period under these settings; it does not prove trait self-control, readiness for abstinence, or improvement in a mental health condition. The charts are operational rather than clinical too: the Resolve Gauge is timer progress, and the Urge Burnoff Chart is a countdown view of remaining seconds, not a direct measurement of craving.
A strong first pass is the 5-minute rule preset with a plain reward label and one short sentence in both If urge appears and Then I will. That gives the session enough structure to be useful without turning it into a long ritual you will skip when temptation is already high.
Pause penalty (s). The tool can intentionally add seconds every time you stop, which is useful when you want to discourage repeated pause-resume loops.7d success rate stays low across several attempts, lower the delay before trying to build a streak. Repeating a hard duration after multiple give-ins usually teaches avoidance, not consistency.Use the Impulse Coach tab after each outcome, especially after Give in. It turns missing prompts, high baseline urge, low recent completion, or a clean unlock into a concrete adjustment for the next session instead of treating the last result as a verdict on your character.
The timer models one waiting session at a time. Your configured delay becomes the starting target, a pre-start countdown can delay the official start, and any pause penalties are added directly to the target while the run is in progress. In other words, the tool does not estimate temptation mathematically; it tracks whether you remained in the waiting window you defined.
Once the session starts, elapsed time is calculated from the browser clock, minus any time spent paused. Remaining time is the adjusted target minus that active elapsed time, clamped at zero so completion is unambiguous. The large time readout, unlock timestamp, and Resolve Gauge all come from that same runtime state, so they stay aligned as long as the browser tab keeps running.
The built-in history is local to this browser. Each completed, surrendered, or manually stopped run is normalized and stored in browser storage with outcome, end time, delay, elapsed time, pause behavior, urge level, preset, and reward label. The seven-day success rate is the share of recent stored sessions whose outcome is unlocked, while the success streak counts consecutive calendar days that contain at least one unlocked run.
A short bridge is useful here because the tool exposes progress and streak metrics that look more psychological than they are. Under the hood, they are bookkeeping values derived from timer state and local history.
| Symbol | Meaning | Unit | Package source |
|---|---|---|---|
D |
Configured delay from minutes and seconds | seconds | Delay length |
pi |
Penalty added on each pause event | seconds | Pause penalty (s) |
P |
Total time spent paused | seconds | Runtime |
T |
Adjusted target after pause penalties | seconds | Runtime |
E |
Active elapsed time | seconds | Runtime |
R |
Remaining time until unlock | seconds | Runtime |
G |
Resolve Gauge completion percentage | percent | Derived output |
| Status | How it is reached | What it means |
|---|---|---|
Idle |
No active session has started | Configured values are ready, but no waiting outcome exists yet. |
Running |
The timer is active and counting down | The session is still in progress; no success or failure is recorded yet. |
Paused |
The timer was paused after starting | Elapsed time stops accumulating until resume, and a configured pause penalty may extend the target. |
Gave in |
Give in is pressed during a run |
The session ends early and is stored as a surrender outcome. |
Unlocked |
Remaining (s) reaches 0 |
The timer finished. This confirms completion of the session, not a clinical change in impulse control. |
The chart labels need extra care. Resolve Completion (%) is just G, the share of the adjusted target that has elapsed. The Urge Burnoff Chart plots elapsed time on the x-axis and remaining seconds on the y-axis. It is useful for seeing how far through the waiting window you are, but it is not measuring urge intensity with sensors or survey data.
Use one full session from setup to review so the outputs have context instead of being isolated numbers.
Preset or set Delay length manually. The large summary figure should show the configured duration before you start.Reward label, then fill If urge appears and Then I will. If either planning field is blank, the coach later tells you to complete it.Advanced only for settings you actually want to change, such as Pre-start countdown (s), Pause penalty (s), Halfway beep, or Baseline urge (1-10). If you want sound cues, raise Audio volume (%) above zero before starting.Start. Once the session begins, the summary switches to remaining time and shows an approximate unlock timestamp. If you pause, watch Penalty added this run (s) and Remaining (s) so you know whether the target moved.Delay Ledger, Resolve Gauge, and Urge Burnoff Chart to review the timer state. If the session ends with Gave in or Stopped, read the status first before comparing rates or streaks.Impulse Coach and, if needed, the JSON tab. If a session failed because the delay was too long, shorten the next run immediately instead of retrying the same duration out of frustration.A useful close is simple: keep the next session similar enough that 7d success rate and Success streak (days) remain meaningful comparisons.
The top priority is the session outcome, not the decorative labels around it. Unlocked means the timer reached zero after including any pause penalties. Gave in and Stopped mean the waiting window ended early, even if you spent part of the target duration engaged.
Resolve Completion (%) near 100 shows elapsed time against the adjusted target. It is not a validated resolve score, willpower index, or relapse-risk measure.Pause count and Penalty added this run (s) matter when you compare sessions. A later unlock with heavy pausing is not the same achievement as a clean run with the same original delay.7d success rate and Success streak (days) summarize only the history stored on this browser. Clearing storage or switching devices breaks continuity.Urge Burnoff Chart should be read as a remaining-time trace. If you need actual urge tracking, use repeated self-ratings outside this tool.A strong verification step is to compare Status, Remaining (s), and Penalty added this run (s) together before concluding that a session was easier or harder than the last one.
Set the 5-minute rule preset, enter Reward as "Check messages," add If urge appears as "I reach for my phone," and set Then I will to "put it face down and take six breaths." Leave pause penalty at zero and finish the session cleanly.
The ledger should end with Status = Unlocked, Remaining (s) = 0, and Resolve Completion (%) at 100. That means this one waiting window held. It says nothing more ambitious than that, which is exactly the right level of confidence.
Use a 10-minute delay with Pause penalty (s) set to 30, then pause twice during the run. The timer adds 60 seconds to the target overall, so the adjusted session is effectively 11 minutes even though the original delay was 10.
If you still finish, the completion is valid, but compare it against earlier runs using Penalty added this run (s) and Pause count rather than the original delay alone. That is the difference between "I waited 10 minutes once" and "I finished an 11-minute session after interruptions."
Start a five-minute run with Baseline urge (1-10) at 8 and no replacement action filled in, then press Give in after about 90 seconds. The summary switches away from a live run and the coach changes tone immediately.
Here the most useful outputs are Status = Gave in, the incomplete Resolve Gauge, and the coaching row that suggests a shorter next attempt and a concrete reset action. The corrective path is not to rerun the same setup harder; it is to reduce difficulty and fill the missing prompt fields before trying again.
No. The tool measures timer completion, pauses, and local session history. It can support practice, but it does not diagnose attention problems, addiction, depression, or any other mental health condition.
History is stored in browser storage under a tool-specific key and normalized to at most 120 session rows. The timer runs in the browser and the logic shown here does not send session data to a server.
Because Pause penalty (s) is applied every time you pause. That extra time is added directly to the target, which increases Remaining (s) and changes the gauge denominator too.
Resolve Gauge shows completion percentage of the adjusted target. Urge Burnoff Chart plots elapsed time against remaining seconds. Neither chart estimates mood, craving chemistry, or long-term habit strength.
Not always. Sound needs browser audio support and a volume above zero, vibration depends on device support, and Prevent screen sleep relies on the browser's wake-lock capability. The timer itself still runs even if those optional cues are unavailable.