Caffeine Tracker icon
Garmin Connect IQ • Widget

Caffeine Tracker

How it works: the widget estimates your current caffeine level (mg/L), applies half-life decay over time, and predicts when you’ll drop below your sleep-safe threshold.

Note: the watch cannot measure blood caffeine. This is a model-based estimate using what you log, your body weight, and metabolism settings.

What does “mg/L” mean?

mg/L means milligrams of caffeine per liter. The app uses mg/L as a practical “concentration-like” score: it’s easier to interpret than total mg alone, because body weight influences how strong caffeine feels.

Widget showing current caffeine level in mg/L
The widget shows your current estimated caffeine level in mg/L.
Graph showing caffeine decay and thresholds
The graph shows how caffeine decays over time and when you drop below your sleep-safe threshold.
Important: This is an estimate. Garmin watches can’t measure caffeine in blood. The model is designed to be practical and useful, not medical-grade.

What the levels mean (thresholds)

Everyone reacts differently, but these thresholds work well as practical guideposts:

0.6 mg/L
Sleep
Sleep-safe target
A practical “aim to be below” level before sleep. Most people can fall asleep without issues at this level, while keeping sleep disruption minimal — even if you’re sensitive to caffeine.
1.0 mg/L
Stm
Stimulation starts
Around this level, many people begin to feel noticeable stimulation, such as increased alertness or reduced sleepiness.
5.0 mg/L
High
High level
A high caffeine level where side effects become more likely, including jitters, nervousness, or an elevated heart rate.
10.0 mg/L
Max
Very high level
Very high caffeine level associated with strong stimulation and a high risk of adverse health effects, including anxiety, tremor, and heart palpitations. Additional caffeine is likely to worsen symptoms.
Tip: If you’re primarily optimizing sleep, treat 0.3 mg/L as your main target and use the “when will I drop below it?” time as your guardrail.

Premium personalization

Premium unlocks advanced personalization so the model matches your habits and metabolism better:

Supported half-life settings (Premium):
4 hours • 5.5 hours • 7.5 hours • 10 hours
Add drink screen
Premium: add custom drinks so your logged caffeine matches what you actually drink.
Settings screen
Premium: choose a half-life preset to better match how fast you metabolize caffeine.

Computation algorithm (simplified)

Internally, the app keeps a running estimate of your current caffeine level and updates it whenever time passes or you log a drink. The model is based on exponential decay (half-life).

Step 1: Start with the last known level

The app stores your last computed caffeine level and its timestamp.

Step 2: Let it decay over time (half-life)

When the widget updates, the level is reduced based on how much time has passed since the last update:

Decay formula:
levelNow = levelPrev × 0.5^(Δt / halfLife)
Where Δt is time elapsed (in the same units as halfLife).

Step 3: Add newly logged drinks

When you log a drink, its caffeine amount (mg) is converted into a level increase using your body weight, and added on top of the current decayed level:

Update rule:
levelNow = levelNow + drinkDelta
drinkDelta is derived from the drink’s caffeine (mg) and your configured weight-based normalization.

Step 4: Predict “sleep-safe time”

To estimate when you’ll fall below a chosen threshold, the app solves the decay equation for time:

Sleep-safe prediction:
timeToThreshold = halfLife × log2(levelNow / threshold)
If levelNow ≤ threshold, timeToThreshold is 0 (already below).
Background updates:
The app refreshes your estimate automatically (e.g., every 5 minutes), so your current level stays accurate without manual refresh.