Tools & Calculators

Free tools that do one job well, need no signup, and tell you the truth about their limits. Most affiliate sites skip this kind of page; we think it is the most useful thing here. Every tool states what it is based on and what it is not.

.hr-tool{max-width:520px;border:1px solid #d9d4cb;border-radius:8px;padding:24px 26px;background:#fff;margin:8px 0 24px;} .hr-tool h3{margin:0 0 10px;font-size:1.2rem;} .hr-tool label{display:block;font-size:.9rem;margin:14px 0 6px;color:#444;} .hr-tool input[type=time]{padding:8px 10px;font-size:1rem;border:1px solid #c9c3b8;border-radius:6px;} .hr-tool-btn{display:block;margin-top:16px;padding:10px 18px;background:#1e4d40;color:#fff;border:0;border-radius:6px;font-size:.95rem;cursor:pointer;} .hr-tool-out{margin-top:14px;} .hr-tool-row{display:flex;justify-content:space-between;gap:12px;padding:9px 4px;border-top:1px solid #eee7db;font-size:.95rem;} .hr-tool-row:first-child{border-top:0;} .hr-tool-note{font-size:.82rem;color:#777;margin-top:12px;}

Bedtime Calculator

Sleep cycles average about 90 minutes. Waking at the end of a cycle rather than in the middle of one is often the difference between getting up rested and groggy. Enter your wake time to see bedtimes that land on a cycle boundary, allowing roughly 15 minutes to fall asleep.

This is arithmetic, not medicine — individual sleep need varies. If you are sleepy despite enough hours in bed, see our guides or a clinician.

(function () { var btn = document.getElementById(‘hr-wake-btn’); if (!btn) return; btn.addEventListener(‘click’, function () { var v = document.getElementById(‘hr-wake’).value || ’07:00′; var p = v.split(‘:’); var wake = (+p[0]) * 60 + (+p[1]); var out = ”; [9, 7.5, 6].forEach(function (h) { var t = (wake – h * 60 – 15 + 1440) % 1440; var hh = String(Math.floor(t / 60)).padStart(2, ‘0’); var mm = String(t % 60).padStart(2, ‘0’); var label = h === 9 ? ‘9 h — full recovery’ : (h === 7.5 ? ‘7.5 h — most adults’ : ‘6 h — short night’); out += ‘
‘ + hh + ‘:’ + mm + ‘‘ + label + ‘
‘; }); document.getElementById(‘hr-wake-out’).innerHTML = out; }); })();
#hr-caffeine{max-width:520px;border:1px solid #d9d4cb;border-radius:8px;padding:24px 26px;background:#fff;margin:8px 0 24px;} #hr-caffeine h3{margin:0 0 10px;font-size:1.2rem;} #hr-caffeine label{display:block;font-size:.9rem;margin:14px 0 6px;color:#444;} #hr-caffeine select,#hr-caffeine input{padding:8px 10px;font-size:1rem;border:1px solid #c9c3b8;border-radius:6px;} #hr-caffeine .hr-tool-btn{display:block;margin-top:16px;padding:10px 18px;background:#1e4d40;color:#fff;border:0;border-radius:6px;font-size:.95rem;cursor:pointer;} #hr-caffeine .hr-tool-out{margin-top:14px;} #hr-caffeine .hr-tool-row{display:flex;justify-content:space-between;gap:12px;padding:9px 4px;border-top:1px solid #eee7db;font-size:.95rem;} #hr-caffeine .hr-tool-row:first-child{border-top:0;} #hr-caffeine .hr-tool-note{font-size:.82rem;color:#777;margin-top:12px;}

Caffeine Cut-Off Calculator

Caffeine clears by roughly half every five hours. This works out the last time you can finish a drink and still have less than 25 mg circulating at bedtime.

Filter coffee, 12 oz — about 180 mg Double espresso — about 125 mg Cold brew, 12 oz — about 250 mg Black tea, 8 oz — about 47 mg Green tea, 8 oz — about 28 mg Energy drink, 16 oz — about 160 mg Cola, 12 oz — about 34 mg

Five hours is a population average; the real range is roughly three to seven. Slow metabolisers should move the cut-off two hours earlier. Not medical advice.

(function () { var btn = document.getElementById(‘hr-caf-btn’); if (!btn) return; btn.addEventListener(‘click’, function () { var dose = Number(document.getElementById(‘hr-caf-drink’).value); var v = document.getElementById(‘hr-caf-bed’).value || ’23:00′; var parts = v.split(‘:’); var bed = (+parts[0]) * 60 + (+parts[1]); var hours = 5 * (Math.log(dose / 25) / Math.log(2)); var t = (bed – Math.round(hours * 60) + 1440) % 1440; var hh = String(Math.floor(t / 60)).padStart(2, ‘0’); var mm = String(t % 60).padStart(2, ‘0’); var fast = (bed – Math.round(hours * 0.6 * 60) + 1440) % 1440; var fh = String(Math.floor(fast / 60)).padStart(2, ‘0’); var fm = String(fast % 60).padStart(2, ‘0’); document.getElementById(‘hr-caf-out’).innerHTML = ‘
Finish by ‘ + hh + ‘:’ + mm + ‘about ‘ + hours.toFixed(1) + ‘ h before bed
‘ + ‘
‘ + fh + ‘:’ + fm + ‘if you are a fast metaboliser
‘; }); })();

More tools in progress

  • Sleep duration calculator — how many hours you actually got
  • Sleep debt calculator — compare your week against your need
  • Due date and baby sleep schedule calculators