All current methods at a glance
Each record publishes the live input, rule, output, assumptions, limits, privacy behavior, worked checks, source basis, version, and a route back to the real tool. Reference pages appear here too because filtering and selecting fixed content is still a method, even when no calculation is performed.
Sleep timing calculator: fixed-cycle clock arithmetic
What it estimates
The calculator produces six bedtime or wake-time rows using a fixed 90-minute constant and a user-selected sleep-latency estimate. It performs clock arithmetic only. It does not detect sleep onset, measure sleep stages, predict a real cycle transition, assess sleep quality, or choose enough sleep for an individual.
Inputs and constants
- Target-time mode: a user-selected hour, five-minute increment, and AM or PM.
- From-now mode: the browser's current local time when the rows are rendered.
- Latency: user-selected 0 to 60 minutes in one-minute increments; default 15 minutes.
- Cycle count: one through six. Cycle constant: exactly 90 minutes.
Target-time mode: bedtime = target wake time - (cycle count × 90 minutes) - latency
From-now mode: wake time = current local time + latency + (cycle count × 90 minutes)
If a target wake time has already passed on the current local day, the calculator uses that time on the next day. Ordinary browser date arithmetic handles midnight rollover.
Worked fixtures
| Fixture | Selected row | Output |
|---|---|---|
| Wake at 7:00 AM, latency 15 min | 6 cycles | 9:45 PM bedtime |
| Wake at 7:00 AM, latency 15 min | 5 cycles | 11:15 PM bedtime |
| Start at 10:00 PM, latency 15 min | 1 cycle | 11:45 PM wake time |
| Start at 10:00 PM, latency 15 min | 6 cycles | 7:15 AM wake time |
What the age marker does
The age control changes only the highlighted row label. It does not change the 90-minute constant, add rows, or calculate personal sleep need. These are the exact values stored in the current interface:
| Interface marker | Stored cycle range | Visible effect among rows 1-6 |
|---|---|---|
| Infant (under 1 year) | 8-10 | No row is highlighted |
| Toddler (1-2 years) | 7-9 | No row is highlighted |
| Teen (13-18 years) | 6-7 | Row 6 is highlighted |
| Adult (18-64 years) | 5-6 | Rows 5 and 6 are highlighted |
| Senior (65+ years) | 5 | Row 5 is highlighted |
The map is disclosed because it affects presentation, but it should not be treated as individualized medical guidance. Sleep cycles commonly vary rather than lasting exactly 90 minutes, and sleep stages require actual physiological measurement. See the NHLBI explanation of sleep stages and cycle variation and our plain-language sleep-cycle guide.
Nap Station: browser countdown behavior
The countdown begins on button press, not on detected sleep onset. JavaScript subtracts one second on each interval tick. Pause stops subtraction without ending the interval; resume continues it; cancel returns to the options. At zero, the page shows a visible completion control and attempts a three-tone Web Audio chime. Nothing is saved after the page is closed or refreshed.
| Interface option | Exact timer | Interpretation boundary |
|---|---|---|
| 20-minute rest timer | 1,200 seconds | Common short-rest window; actual sleep may be shorter. |
| 60-minute rest timer | 3,600 seconds | Longer window; deeper sleep and post-waking grogginess may occur. |
| 90-minute rest window | 5,400 seconds | Uses the site's constant; does not verify one complete cycle. |
| Coffee-nap pattern | 1,200 seconds | Same timer; caffeine response, suitability, and timing vary. |
Browser and safety limits
Background-tab throttling, device sleep, muted audio, permissions, or closing the page can delay or prevent the chime. Use a device alarm when wake time matters. A completed timer cannot establish alertness or fitness to drive. Research on short naps reports outcomes that vary with prior sleep, nap timing, and waking conditions; see the review of short daytime naps and sleep inertia.
Sleep opportunity gap: self-entered difference model
The estimator compares a user's nightly sleep estimate with a user-chosen target across a selected number of days. It does not verify time asleep, choose the target, or account for sleep quality, naps, illness, shift work, or individual recovery.
- Estimated sleep input: 4 to 10 hours in 0.5-hour steps; default 6.5.
- Chosen target input: 6 to 10 hours in 0.5-hour steps; default 8.
- Comparison period: 1 to 7 days; default 5.
Raw gap = (chosen target - estimated sleep) × days
Displayed gap = maximum of raw gap and 0
The circular graphic reaches full at 20 hours, while the numeric result can continue above 20. Its color thresholds are presentational: zero, above zero through 5, above 5 through 12, and above 12 hours.
Retained pacing example
The current interface also preserves this pre-existing Sleep Manager rule:
Example nights = maximum of 1 and round(displayed gap ÷ 0.75)
Example minutes per night = round((displayed gap ÷ example nights) × 60)
The 0.75-hour divisor is an unvalidated site-created planning rule. It is not a clinical recovery formula, prescription, or promise that the estimated gap can be repaid on that schedule.
| Inputs | Displayed result | Pacing example |
|---|---|---|
| 6.5 slept, 8 target, 5 days | 7.5 hours | 10 nights at about 45 minutes |
| 8.5 slept, 8 target, 5 days | 0 hours after clamp | No pacing example |
| 5 slept, 10 target, 7 days | 35 hours | Ring stays visually full above 20 hours |
Sleep loss and recovery are more complex than arithmetic. See the NHLBI overview of sleep deficiency and our guide to reasons someone may feel tired despite enough time in bed.
Ambient audio: local looping player
The dock loads one of five local MP3 files, loops the selected file, starts only after user action, and exposes a 0-100 volume control with a default of 55. Switching tracks while playback is active starts the new track. Stop-timer choices are off, 15, 30, 45, or 60 minutes. A selected duration is armed while audio plays or when playback begins. Track, volume, playback position, and timer are not persisted.
| Visible label | Local file |
|---|---|
| Gentle piano | deep-sleeping-piano_music.mp3 |
| Soft lullaby | baby-sleeping-music.mp3 |
| Rain and flute | flute-music-with-rain.mp3 |
| Quiet instrumental | music-for-just-relax.mp3 |
| Forest and birds | morning-forest-with-birds-music.mp3 |
Evidence, hearing, and timer limits
The player is optional background audio, not a treatment. A systematic review found mixed evidence and no strong overall evidence that auditory stimulation improves sleep outcomes. Keep volume low and the device away from the ears; loudness, duration, and distance all affect noise exposure. Do not place a device in an infant sleep space. The browser stop timer is not an alarm and may not execute if the page closes or the device suspends. Sources: systematic review of auditory stimulation and sleep and NIDCD hearing-safety guidance.
Chronotype Quiz: timing-reflection score
What the quiz does
The quiz adds published integer weights from ten single-choice answers to four memorable planning labels: Lion, Bear, Wolf, and Dolphin. It reports either a single-profile lean or a mixed pattern. It does not measure circadian phase, diagnose a disorder, or establish a fixed biological type.
Inputs and complete weight table
The ten dimensions are free-day wake preference, best focus period, daily energy pattern, preferred sleep time, required-day/free-day gap, sleep-environment sensitivity, waking experience, caffeine use, napping, and current sleep experience. The last five can reflect present circumstances as much as timing preference, which is why the public result keeps them visible as context.
Scroll sideways to inspect every profile weight.
| Question | Option | Answer label | Lion | Bear | Wolf | Dolphin |
|---|---|---|---|---|---|---|
| 1. Free-day wake | A | Before 6 AM - still up before sunrise | 4 | 1 | 0 | 2 |
| 1. Free-day wake | B | 6-7:30 AM - early, but not very early | 3 | 3 | 0 | 1 |
| 1. Free-day wake | C | 7:30-9 AM - a comfortable mid-morning rise | 0 | 4 | 1 | 3 |
| 1. Free-day wake | D | After 9 AM or later | 0 | 1 | 4 | 1 |
| 2. Best focus | A | Early morning, before 10 AM | 4 | 1 | 0 | 1 |
| 2. Best focus | B | Mid-morning, roughly 10 AM to noon | 2 | 4 | 0 | 3 |
| 2. Best focus | C | Afternoon, around 2-5 PM | 0 | 2 | 2 | 2 |
| 2. Best focus | D | Evening or late night, after 7 PM | 0 | 0 | 4 | 1 |
| 3. Energy pattern | A | High early, then drops sharply by afternoon | 4 | 1 | 0 | 1 |
| 3. Energy pattern | B | Builds to late morning, then slowly declines with an afternoon dip | 1 | 4 | 0 | 2 |
| 3. Energy pattern | C | Sluggish through much of the day, then energized after sunset | 0 | 1 | 4 | 0 |
| 3. Energy pattern | D | Unpredictable bursts with no clear pattern | 0 | 0 | 1 | 4 |
| 4. Preferred sleep | A | Before 10 PM | 4 | 1 | 0 | 2 |
| 4. Preferred sleep | B | Around 10:30-11:30 PM | 1 | 4 | 1 | 3 |
| 4. Preferred sleep | C | Midnight or later | 0 | 1 | 4 | 1 |
| 4. Preferred sleep | D | No predictable time | 0 | 0 | 1 | 4 |
| 5. Schedule gap | A | Almost no difference | 4 | 3 | 0 | 1 |
| 5. Schedule gap | B | About 30-60 minutes later on free days | 2 | 4 | 1 | 2 |
| 5. Schedule gap | C | 1-2 hours later on free days | 0 | 2 | 3 | 2 |
| 5. Schedule gap | D | 2 or more hours later on free days | 0 | 0 | 4 | 2 |
| 6. Environment | A | Not very sensitive | 2 | 4 | 2 | 0 |
| 6. Environment | B | Somewhat sensitive | 3 | 3 | 2 | 1 |
| 6. Environment | C | Quite sensitive | 1 | 1 | 2 | 3 |
| 6. Environment | D | Extremely sensitive | 0 | 0 | 0 | 4 |
| 7. After waking | A | Alert and ready | 4 | 1 | 0 | 1 |
| 7. After waking | B | Groggy briefly, then functional | 2 | 4 | 1 | 2 |
| 7. After waking | C | Foggy for 30-60 minutes | 0 | 1 | 4 | 1 |
| 7. After waking | D | Anxious and wired | 1 | 0 | 0 | 4 |
| 8. Caffeine | A | Barely need it | 3 | 2 | 1 | 1 |
| 8. Caffeine | B | One morning cup is enough | 2 | 4 | 1 | 1 |
| 8. Caffeine | C | Rely on 2-3 cups through the day | 1 | 1 | 3 | 2 |
| 8. Caffeine | D | Use it strategically or later in the day | 0 | 0 | 4 | 2 |
| 9. Napping | A | Rarely nap or need to | 4 | 1 | 1 | 0 |
| 9. Napping | B | Sometimes nap and feel better | 1 | 4 | 1 | 1 |
| 9. Napping | C | Sometimes nap and wake groggier | 1 | 1 | 2 | 3 |
| 9. Napping | D | Find napping nearly impossible | 0 | 0 | 1 | 4 |
| 10. Current sleep | A | Fall asleep, stay asleep, and wake refreshed | 3 | 4 | 1 | 0 |
| 10. Current sleep | B | Generally good with an occasional rough night | 3 | 3 | 2 | 1 |
| 10. Current sleep | C | Often stay up too late and feel under-rested | 0 | 1 | 4 | 2 |
| 10. Current sleep | D | Sleep is often light, broken, or anxious | 0 | 0 | 1 | 4 |
Score and ambiguity rules
- For each profile
p, computetotal(p) = sum of the ten selected weights for p. - Use the stable display order Lion, Bear, Wolf, Dolphin only to render rows and labels. It never breaks a tie.
- Let
maximum = max(total(Lion), total(Bear), total(Wolf), total(Dolphin)). - Every profile with
maximum - total(p) <= 2is co-leading. Two or more co-leaders produce a mixed result without ranking. - One profile is shown as a lean only when every other total is at least three points lower.
The two-point mixed boundary is a disclosed Sleep Manager caution rule. It is not a validated psychometric threshold. One answer can move differences by more than two points, so a smaller lead was judged too fragile for a single label.
Worked regression fixtures
| Selected option indexes | Lion | Bear | Wolf | Dolphin | Expected output |
|---|---|---|---|---|---|
| All A | 36 | 19 | 5 | 9 | Clear Lion lean |
| All B | 20 | 37 | 9 | 17 | Clear Bear lean |
| All C | 3 | 15 | 29 | 19 | Clear Wolf lean |
| All D | 1 | 1 | 20 | 30 | Clear Dolphin/variable lean |
0,0,0,0,0,2,2,3,3,3 | 21 | 9 | 12 | 21 | Mixed Lion + Dolphin tie |
0,0,0,0,0,2,1,3,3,3 | 23 | 12 | 9 | 22 | Mixed, one-point lead |
0,0,0,0,0,0,3,3,3,3 | 23 | 11 | 8 | 21 | Mixed, two-point lead |
Result-language and data contract
- The result says
answers lean towardormixed pattern, neveryou are. - No exact bedtime, wake time, caffeine cutoff, exercise window, risk level, light treatment, or medicine timing is generated.
- Questions 6-10 can create visible context notes. They never create a diagnosis.
- The flexible, fixed, and irregular schedule choices change only the seven-day observation text, not the score.
- Answers and results are held only in page memory and clear on refresh. No local or session storage is used.
- After Analytics permission, completion and retake events send only the tool identifier
chronotype-quiz. They do not send answers, totals, profile labels, ambiguity, or schedule choice.
Evidence and clinical boundary
Chronotype and morningness-eveningness are established concepts, but this animal-label quiz is not the validated 19-item Morningness-Eveningness Questionnaire and is not the Munich ChronoType Questionnaire. Clinical assessment can consider history, sleep diaries or actigraphy, environment, and sometimes circadian phase testing. Sources: original MEQ publication, DLMO, MEQ, and MCTQ comparison, AASM circadian-rhythm review, and NHLBI diagnostic overview. Persistent sleep difficulty, unsafe sleepiness, breathing pauses, or major daytime impairment requires appropriate professional assessment.
Sleep Compatibility Quiz: exact-answer alignment
What the comparison does
Two people answer the same eight single-choice questions. The method counts how many option values are exactly the same, displays the agreements and differences, and lets the users choose one difference for a reversible discussion trial. It does not measure relationship quality, sleep quality, disturbance severity, willingness to compromise, or whether two people should share a bed.
Required inputs and published option values
Every person must provide one answer for every topic. A person may estimate the other sleeper's answers, but the public page labels that result as an estimate to check together. No result is generated while any answer is missing.
| Topic | Published values | What the choice describes |
|---|---|---|
| Temperature | cool, warm, neutral | Preferred room and bedding warmth |
| Noise | low, medium, high | Reported sensitivity to sound during sleep |
| Light | pitch, dim, any | Preferred darkness level |
| Sleep timing | lion, bear, wolf, dolphin | Earlier, middle, later, or variable timing preference; value names are retained internal identifiers, not biological types |
| Bedtime | early, moderate, late | Preferred free-night bedtime range |
| Movement | still, moderate, active | Reported movement during sleep |
| Blankets | cocoon, share, light | Preferred blanket use |
| Morning | early, gradual, snooze | Usual experience in the first minutes after waking |
Exact comparison rule
- For topic
i, letA_iandB_ibe the two saved option values. - Set
match_i = 1only whenA_i === B_i; otherwise setmatch_i = 0. - Compute
matches = sum(match_i)for all eight topics. - Display
matches of 8 same answersas the primary result. - Compute the secondary arithmetic view as
round(matches / 8 x 100)and label itexact-answer alignment.
The only possible rounded percentages are 0, 13, 25, 38, 50, 63, 75, 88, 100. There is no
pass mark, relationship label, importance weighting, partial credit, or validated cutoff. One difference can
matter more in daily life than several agreements.
Worked example and regression fixtures
If five value pairs are identical, matches = 5 and round(5 / 8 x 100) = 63. The
public result is 5 of 8 same answers, with 63% exact-answer alignment shown only as a secondary explanation.
| Fixture | Expected count | Secondary percentage | Required public behavior |
|---|---|---|---|
| All eight option values identical | 8 of 8 | 100% | Show all agreements; no superlative or relationship grade |
| Seven identical, one different | 7 of 8 | 88% | Show the full different answers and discussion command |
| Four identical, four different | 4 of 8 | 50% | Show both lists without pass/fail language |
| One identical, seven different | 1 of 8 | 13% | Do not label the relationship or predict conflict |
| No identical option values | 0 of 8 | 0% | Explain that this is not a failed result |
| Any missing answer | No result | Not calculated | Switch to and focus the first missing question |
Result, trial, and data contract
- Public copy says
same answersanddifferent answers, not compatible, incompatible, soulmate, strong match, or time to talk. - Every agreement and difference displays the full human answer label; internal values are never printed to users.
- The selected discussion topic does not alter the count. It only selects a plain conversation prompt and a reversible seven-night observation.
- The neutral share action sends the page invitation, not answers, a count, a percentage, or a relationship claim.
- Answers and the selected topic exist only in page memory and clear on refresh. No local or session storage is used.
- After Analytics permission, completion and retake events send only the tool identifier
sleep-compatibility-quiz. Sharing sends no custom Analytics event. Answers, values, counts, percentages, and selected topics are excluded.
Evidence and safety boundary
Sleep and close relationships can affect one another, but published findings are complex, heterogeneous, and often associative. They do not validate this page's exact-match count as a relationship or health score. Sources: review of relationship quality and sleep, systematic review and meta-analysis, and systematic review of co-sleeping and sleep outcomes. Frequent loud snoring with breathing pauses, gasping, choking, or substantial daytime sleepiness requires appropriate assessment; see the NHLBI symptom guide. Sleep behavior that could cause injury, fear, coercion, or serious conflict is outside this tool.
Caffeine Cutoff Calculator: bedtime-backoff model
What the model estimates
The output is an approximate last-caffeine experiment calculated backward from a planned bedtime. It is not a clearance time, active-milligram estimate, safe dose, genotype result, or measurement of personal metabolism.
Inputs and accepted values
Scroll sideways to inspect the full table.
| Input | Accepted values | Meaning |
|---|---|---|
| Planned bedtime | 12-hour clock; 5-minute input steps | The target clock time used for subtraction; it is not a measured sleep-onset time. |
| Shorter assumption | 4.0-hour half-life | A model option, not a `fast metabolizer` classification. |
| Middle assumption | 5.5-hour half-life | The default model option, not an assertion of average personal metabolism. |
| Longer assumption | 7.0-hour half-life | A model option, not a `slow metabolizer` classification. |
Equations and threshold
hours before bedtime = selected half-life x 2.32
cutoff clock time = planned bedtime - hours before bedtime
modeled fraction remaining after h hours = 0.5 ** (h / selected half-life)
The exact mathematical multiplier that leaves 20% is
log(0.20) / log(0.50) = 2.321928.... The live code uses 2.32, so the modeled
remainder is about 20.03%. Public copy therefore says about 20%, not `less than 20%`.
The about-20-percent target is selected by Sleep Manager as a conservative experiment boundary. It is not a clinically validated sleep threshold and does not mean the remaining amount is harmless, safe, or inactive.
Worked example: planned bedtime 10:30 PM
Scroll sideways to compare all assumptions.
| Assumption | Backoff | Raw subtraction | Displayed result |
|---|---|---|---|
| 4 hours | 9.28 hours | 22.50 - 9.28 = 13.22 | 1:13 PM |
| 5.5 hours | 12.76 hours | 22.50 - 12.76 = 9.74 | 9:44 AM |
| 7 hours | 16.24 hours | 22.50 - 16.24 = 6.26 | 6:16 AM |
Clock rollover and display rule
The code converts the selected bedtime to decimal 24-hour time. If subtraction produces a value below zero, it adds 24 before formatting the result. This means a cutoff that looks later on the clock than the bedtime is on the previous calendar day. The page currently displays clock time, not a date label.
The formatter rounds the arithmetic result to the nearest minute. That minute is computational output, not biological precision. A user should choose a practical final-caffeine boundary at or before the displayed time.
Missing inputs and known variability
- No caffeine dose, beverage size, ingredient label, actual consumption time, or repeated serving is entered.
- The curve is a percentage of one unspecified hypothetical dose; it cannot produce active milligrams.
- Pregnancy, medicines, smoking, oral contraceptives, liver health, age, and other factors can alter caffeine pharmacokinetics.
- The model does not predict sleep onset, awakenings, sleep stages, next-day alertness, or a safe intake.
Code fixtures
| Bedtime | Assumption | Expected cutoff | Boundary checked |
|---|---|---|---|
| 10:30 PM | 4 hours | 1:13 PM | Shorter assumption |
| 10:30 PM | 5.5 hours | 9:44 AM | Default/middle assumption |
| 10:30 PM | 7 hours | 6:16 AM | Longer assumption |
| 12:00 AM | 5.5 hours | 11:14 AM, previous day | Cross-midnight wrap |
Public result wording contract
- Say `approximate planning cutoff`, `selected half-life assumption`, and `about 20%`.
- State that the fraction belongs to one hypothetical dose and is not active milligrams.
- Do not say `fast/slow metabolizer`, `clearance time`, `safe`, `lower risk`, or `personalized metabolism`.
- Keep the dose, drink-time, repeated-serving, medicine, pregnancy, and liver-context limitations visible.
Data, sharing, and analytics contract
- Bedtime, selected half-life, and the calculated result remain in page memory only and clear when the page is refreshed. The calculator uses no local or session storage.
- Sharing uses the page URL; it does not add the selected bedtime, assumption, cutoff, or modeled fractions to the URL.
- After Analytics permission, result display sends
tool_completewith only{ tool_id: "caffeine-cutoff-calculator" }. Bedtime, selected half-life, calculated cutoff, and modeled fractions are excluded.
Sleep Problem Finder: fixed editorial route lookup
What the method does
The finder maps one self-selected concern identifier to one fixed primary Sleep Manager destination. It is editorial navigation, not a symptom checker, diagnosis, triage method, risk score, or treatment selector.
Input and exact rule
- Input: one of nine named concern IDs or the
not-surecatch-all. - Rule: exact identifier lookup; no weighting, score, threshold, inference, or machine-learning model.
- Not evaluated: age, duration, frequency, severity, overlap, medicines, health history, emergency signs, or previous answers.
- Unknown or missing ID: show a recovery state and do not guess a destination.
Versioned primary route table
Scroll sideways to inspect the full table.
| Concern ID | Public concern | Primary destination | Meaning |
|---|---|---|---|
cant-fall-asleep | Trouble falling asleep | / - Sleep Calculator | Review planned sleep opportunity; not treatment for insomnia or racing thoughts. |
wake-up-night | Waking during the night | /tools/caffeine-cutoff-calculator.html | Explore caffeine timing as one possible contributor. |
wake-up-tired | Waking tired after enough time in bed | / - Sleep Calculator | Review planned sleep opportunity; not an explanation of tiredness. |
bedroom-environment | Bedroom environment | /tools/bedroom-audit-checklist.html | Review reported room conditions. |
inconsistent-schedule | Irregular schedule | /tools/chronotype-quiz.html | Reflect on timing preference without biological classification. |
partner-sleep-issues | Partner sleep differences | /tools/sleep-compatibility-quiz.html | Compare reported preferences, not relationship quality. |
jet-lag-travel | Jet lag, travel, or shift work | /tools/jet-lag-calculator.html | Open the existing simplified travel-timing planner. |
daytime-sleepiness | Daytime sleepiness or low energy | / - Sleep Debt and Nap Station | Review sleep-opportunity arithmetic and nap planning, not cause. |
sleep-phenomena-myths | Sleep paralysis, unusual events, or claims | /tools/sleep-myths-vs-facts.html | Open educational claim checking; it cannot assess an event. |
not-sure | No category selected | Current complete tool and article inventories | Browse without assigning a concern route. |
Result presentation contract
- Use suggested place to start, selected concern, primary destination, and alternative explanation.
- Never call the route a solution, diagnosis, best match, personalized result, or treatment.
- Explain why the primary destination appears and what it cannot determine.
- Show no more than two alternatives in the immediate result. Existing additional mapped destinations remain in a collapsed deep layer.
- Repeat a compact safety boundary; the route never suppresses the pre-route safety content.
Safety and non-triage boundary
The page presents static guidance before selection for immediate danger/acute distress, drowsy driving or safety-critical sleepiness, breathing pauses/gasping, persistent severe sleepiness, and injury-risk sleep behavior. These conditions do not alter the route because the finder is not a triage instrument. Users are directed to appropriate local emergency/crisis support or qualified healthcare assessment instead.
Data, storage, and analytics
- No account, medical-history field, answer persistence, local storage, or session storage is used.
- The selected ID builds the result in the browser.
- After Analytics permission, result display sends
tool_completewith only{ tool_id: "sleep-problem-finder" }. Restarting can sendtool_retakewith the same tool identifier. - The selected concern identifier, destination, alternatives, safety context, and generated wording are excluded from Analytics.
Regression fixtures
| Input | Expected primary output | Boundary checked |
|---|---|---|
cant-fall-asleep | / | Named route |
wake-up-night | /tools/caffeine-cutoff-calculator.html | Named route |
sleep-phenomena-myths | /tools/sleep-myths-vs-facts.html | Named route with safety reminder |
not-sure | Complete current inventories | Catch-all without route meaning |
unknown-id or missing | No guessed destination; recovery control | Invalid/empty state |
Jet Lag Calculator: date-aware clock-change planner
What the method estimates
The tool compares the selected cities' UTC offsets on the departure date, uses the traveler's chosen eastward or westward route to measure a clock-change arc, and converts that arc into a rough population-average adjustment estimate. It also creates up to three optional home-time sleep-shift examples before departure.
It does not calculate a personal circadian phase, recovery deadline, flight sleep window, bright-light prescription, melatonin timing or dose, or exact post-arrival bedtime schedule.
Inputs and accepted values
| Input | Accepted values | How it is used |
|---|---|---|
| Origin city | One of 57 retained city records | Supplies an IANA time-zone identifier. |
| Destination city | One of the same 57 records | Supplies the destination IANA zone. |
| Departure date | Today or a future calendar date | Evaluates both zone offsets on that date, including supported daylight-saving rules. |
| Travel direction | Eastward or westward | Selects the matching positive 24-hour clock arc. It is not inferred from UTC offsets. |
| Home bedtime | Valid local clock time | Starting time for optional pre-travel examples. |
| Home wake time | Valid local clock time | Shifted by the same amount as bedtime. |
Date-aware time-zone rule
Every retained city now owns an IANA time-zone identifier such as Asia/Kolkata,
Europe/London, or America/New_York. The browser's
Intl.DateTimeFormat data is evaluated around local noon on the selected date. Local noon avoids
treating an overnight daylight-saving transition as an undefined all-day offset.
eastward hours = positiveModulo(destination offset - origin offset, 24)
westward hours = positiveModulo(origin offset - destination offset, 24)
selected clock change = eastward hours or westward hours according to the traveler
Direction is required because two clock offsets do not reveal the aircraft's physical route, particularly around the international date line. If both arcs are zero, the result explicitly reports no local clock change and does not create a directional adjustment plan.
Rough adjustment estimate
eastward estimate days = ceil(selected clock-change hours / 1.0)
westward estimate days = ceil(selected clock-change hours / 1.5)
The 1 hour/day eastward and 1.5 hours/day westward values are population-average planning rates described in CDC travel guidance. Rounding up creates an easy-to-read estimate, not biological precision. The public result must say rough adjustment estimate and population average, not a deadline. It must not say full recovery, personalized result, easier, or harder.
Optional pre-travel examples
example count = min(3, whole days until departure, ceil(clock-change hours))
cumulative shift at step n = min(clock-change hours, n x 1 hour)
Eastward examples subtract the cumulative shift from both home sleep times; westward examples add it. Every
clock value is normalized to 00:00-23:59 before 12-hour formatting. The earliest displayed day
has the smallest change and the day before departure has the largest cumulative change. The examples are
capped at one hour of change per day and three days total.
If departure is today, the result recommends protecting usual sleep instead of forcing a last-minute shift. The tool no longer generates exact travel-day or post-arrival bedtimes because it does not collect flight, arrival, stopover, trip-length, or circadian-phase information.
Worked India-origin examples
| Trip and date | Offsets | Selected route | Result |
|---|---|---|---|
| Kolkata to London, 30 Aug 2026 | UTC+05:30 to UTC+01:00 | Westward | 4 hr 30 min; about 3 days |
| Kolkata to London, 15 Jan 2027 | UTC+05:30 to UTC+00:00 | Westward | 5 hr 30 min; about 4 days |
| Kolkata to Tokyo, any current fixed-offset date | UTC+05:30 to UTC+09:00 | Eastward | 3 hr 30 min; about 4 days |
| Kolkata to Colombo | UTC+05:30 to UTC+05:30 | Not required | No local clock change |
Date-line and daylight-saving fixtures
| Fixture | Expected primary behavior | Boundary checked |
|---|---|---|
| London summer versus winter dates | UTC+01:00 in summer; UTC+00:00 in winter | Selected date changes the result |
| Los Angeles to Tokyo, westward | Use the westward positive 24-hour arc | Date-line direction is explicit |
| Tokyo to Los Angeles, eastward | Use the eastward positive 24-hour arc | Reverse date-line route |
| Same city or same date offset | No directional plan; travel-fatigue note remains | Zero-difference recovery |
| Times around midnight | Valid 12-hour clock output only | No negative, over-24, or 13:15 PM values |
| Past or missing date | Inline error and focus recovery | Invalid input |
Public guidance and safety contract
- Use ordinary destination daylight and local time cues; do not generate exact bright-light exposure or avoidance windows.
- If caffeine is used, keep it to destination daytime and stop at least six hours before planned sleep; do not call caffeine a safety solution.
- Short 20-30 minute naps may support alertness; longer daytime naps can interfere with local-night sleep.
- Advise comfortable hydration and avoiding excess alcohol; do not use the retired
1 litre per 4 hoursrule. - Give no generated melatonin dose or timing. Medicines, pregnancy, health conditions, child travel, and product differences require clinician/pharmacist discussion.
- If the traveler is too sleepy to drive or perform safety-critical work, the result tells them to stop and use a safer alternative.
Known limits and data handling
- The method does not collect flight or arrival time, duration, stopovers, trip length, longitude, daylight exposure, body-clock phase, medicines, health conditions, pregnancy, age, shift work, child needs, or safety duties.
- A trip under about two days may not justify full destination adaptation; the method cannot decide this without trip length and obligations.
- IANA rules come from the visitor's browser/operating-system time-zone database and can differ if that data is outdated.
- City, date, direction, bedtime, and wake time are processed in the browser and are not stored by the calculator.
- After Analytics permission, result display sends
tool_completewith only{ tool_id: "jet-lag-calculator" }. It does not send the selected cities, date, direction, clock change, or sleep times.
Bedroom Audit Checklist: equal-count condition inventory
What the checklist does
The checklist records a visitor's answers to 27 everyday room-condition statements across five areas. It counts applicable conditions reported as already in place, keeps uncertainty separate, and chooses one reported opportunity for a low-cost observation. It does not measure bedroom quality, sleep quality, sleep stages, environmental exposure, product need, health, or clinical risk.
Inputs, categories, and accepted values
All 27 statements require one explicit answer before a result is produced. The live values are
yes, no, unsure, and na. Public labels are Yes, Not yet,
Not sure, and Doesn't apply.
| Fixed order | Category | Items | What it records |
|---|---|---|---|
| 1 | Temperature & bedding | 6 | Reported thermal comfort, adjustable layers, moisture signs, and shared warmth |
| 2 | Light & winding down | 6 | Reported light comfort, controllable sources, device alerts, and day-sleep context |
| 3 | Noise & interruptions | 5 | Reported external, household, shared, and continuous-sound conditions |
| 4 | Bed & pillow comfort | 5 | Reported comfort, visible condition, cleanliness, and before-replacement checks |
| 5 | Air, damp & room safety | 5 | Reported odour, damp, airflow, irritant, and obvious hazard signs |
Published item identifiers and order
| Category | Item ID in fixed order |
|---|---|
| Temperature & bedding | comfortable-at-bedtime, few-temperature-wakes, adjustable-layers, weather-comfort, no-moisture-discomfort, shared-warmth |
| Light & winding down | dark-enough, outside-light, small-leds, phone-alerts, dim-wind-down, day-sleep-light |
| Noise & interruptions | outside-noise, household-noise, shared-noise, safe-steady-sound, free-noise-test |
| Bed & pillow comfort | surface-comfort, no-damage, pillow-comfort, clean-dry-bedding, before-replacement |
| Air, damp & room safety | no-strong-odour, no-visible-damp, safe-airflow, dust-pet-pattern, clear-hazards |
Count and completion rules
- If any of the 27 items has no selected value, do not produce a result. Open the first incomplete category and focus its first unanswered radio group.
- Let
Ybe the total number ofyesanswers andNthe total number ofnoanswers. - The main result is
Y of (Y + N) checked conditions are in place. unsureandnaare reported as separate counts and excluded from the denominator. They are never failures.- No percentage, 100-point normalization, evaluative band, hidden weight, pass mark, or product recommendation is produced.
First-opportunity rule
opportunityShare(category) = no answers / (yes answers + no answers)
- Exclude categories with no
noanswer. A category containing only unsure/not-applicable answers cannot become the priority. - Rank remaining categories by descending
opportunityShare. - Break an exact category tie by the fixed published order in the category table.
- Within the selected category, use the first
noitem in published item order. - Display that item's published free-first action. The action does not change the count.
The tie rule and item order are editorial choices created by Sleep Manager. They are transparent and stable, but they are not a clinical or scientific ranking of importance.
Worked fixtures
| Fixture | Main result | Expected first-step behavior |
|---|---|---|
| One unanswered item | No result | Open and focus the first incomplete item |
| All 27 Yes | 27 of 27 in place | No first room change; offer another sleep starting point |
| All 27 Not yet | 0 of 27 in place | Temperature category, comfortable-at-bedtime, by fixed tie order |
| All 27 Not sure | No counted conditions | No category is ranked; show uncertainty explicitly |
| All 27 Doesn't apply | No counted conditions | No category is ranked; show excluded context explicitly |
| Light: 4 No/2 Yes; temperature: 3 No/3 Yes; all other items Yes | 20 of 27 in place | Light ranks first because 4/6 exceeds 3/6 |
Result, privacy, and telemetry contract
- The main result says conditions reported in place, not healthy, ideal, optimal, good, poor, or sleep-friendly.
- The first step is a reversible observation, not a diagnosis, treatment, safety clearance, or instruction to purchase.
- The neutral share controls send only the page URL and invitation; they do not include answers, counts, categories, or the selected item.
- Answers and results exist only in page memory and clear on refresh. No local or session storage is used.
- After Analytics permission, completion sends
tool_completewith only{ tool_id: "bedroom-audit-checklist" }; it excludes answers, counts, unknowns, categories, and the selected first step.
Sleep Glossary: fixed-entry search and disclosure
What the glossary does
The glossary searches and filters a fixed set of 57 reviewed sleep terms. It can reveal a plain definition, aliases, deeper context, a boundary, one relevant source group, related terms, and an optional next route. It does not score, screen, classify, diagnose, or infer anything about the visitor.
Inputs and accepted values
| Input | Accepted values | What it changes |
|---|---|---|
| Search text | Any visitor-entered text | Case-insensitive substring match across the published searchable fields |
| Term type | All, Everyday idea, Measurement term, Health term | Requires an exact type match when a type is selected |
| Topic | All or one of six published topics | Requires an exact topic match when a topic is selected |
| Letter | All or one of 18 represented first letters | Requires an exact stored first-letter match; choosing a letter clears search text |
| Random term | Command only | Selects one of the 57 entries with Math.floor(Math.random() × 57), resets filters, opens it, and moves focus |
| Term or related-term disclosure | One published term name or valid term hash | Opens that existing entry; it does not create a new result |
Published inventory
- 57 terms across 18 represented first letters.
- Three reader labels: Everyday idea, Measurement term, and Health term.
- Six topics: Body clock, Sleep stages, Measurement, Sleep concerns, Daily habits, and Naps and waking.
- Every record contains a short definition, deeper context, a “what this does not prove” boundary, one source group, and a visible review date.
Exact matching and display rules
searchable text = term + aliases + definition + context + boundary + type + topic
visible = substringMatch AND typeMatch AND topicMatch AND letterMatch
- Convert the visitor's trimmed search and the stored searchable text to lowercase.
- If search is not empty, require the complete entered text to appear as one substring. The glossary does not split a multi-word query into independent words.
- Apply selected type, topic, and letter as additional AND conditions.
- Hide empty letter groups. Report the exact visible count out of 57.
- If no entry matches, hide the result list and show a reset route. No guessed term or remote result is added.
- A direct valid term hash opens that fixed entry. An invalid hash changes no content.
Worked fixtures
| Fixture | Expected result | Boundary checked |
|---|---|---|
Search Willis-Ekbom | Restless Legs Syndrome (RLS) | Alias is searchable |
| Type = Health term | 16 terms | Exact type count |
| Topic = Sleep stages | 7 terms | Exact topic count |
| Letter = A | Actigraphy, Adenosine, Advanced Sleep Phase Disorder | Represented-letter filter and grouping |
| Search text plus a conflicting topic | No matching terms and visible reset | Filters combine with AND, not OR |
| Valid term hash | Reset filters, reveal the term, scroll, then focus its disclosure | Direct-arrival behavior |
Evidence, privacy, and telemetry contract
- Each term links to one directly relevant primary or authoritative source group. “Entry reviewed” records when Sleep Manager checked the wording; it is not the source publication date or a clinical review of the visitor.
- The labels describe vocabulary use. They do not rank certainty, seriousness, or relevance to one person.
- Search, filters, opened term, random choice, and related-term choice remain in page memory only. No local storage, session storage, account, query mutation, or remote lookup is used.
- Page sharing uses the canonical glossary URL and excludes current search, filters, and opened-term state.
- Random-term selection sends no custom Analytics event. After Analytics permission, the shared controller may send one
tool_startwith only{ tool_id: "sleep-glossary" }; the term, search, filters, and visitor choices are excluded. - A definition cannot diagnose a condition or establish the cause of a symptom. Breathing pauses, sudden sleep attacks, or unsafe sleepiness need an appropriate professional or safety route.
Sleep Myths vs Facts: fixed-claim search and evidence disclosure
What the claim checker does
The page searches, filters, and opens ten fixed claim reviews. Each review separates a familiar claim from the partly true, missing, uncertain, or misleading pieces and publishes a practical correction, confidence, sources, evidence limit, and safety note where relevant. It does not accept a new claim, judge the visitor, produce a knowledge score, or answer a personal medical question.
Inputs and fixed content
| Input or inventory | Published values | Behavior |
|---|---|---|
| Search text | Any visitor-entered words | Normalizes case and punctuation, then requires every entered word to appear somewhere in the claim's stored keywords or visible content |
| Topic | All claims, Food & drink, Timing & waking, Sleep need, Body & brain | Exact topic match when a topic is selected |
| Disclosure commands | Open visible, close all, reset, one card, or a valid claim hash | Changes only which fixed reviews are visible or open |
| Ten fixed claims | Nightcap, weekend catch-up, eight hours, snoring, cheese/nightmares, snooze, brain “off,” early-bird productivity, five-hour training, and nap/laziness | No visitor claim is generated, submitted, scored, or stored |
| Evidence records | 17 claim-specific source links | Each claim shows confidence, review date, and what its evidence does not establish |
Exact search, topic, and disclosure rules
words = normalize(search).split(" ")
visible = topicMatch AND every(word is contained in normalized keywords + visible claim text)
- Convert text to lowercase, replace non-alphanumeric characters with spaces, collapse repeated spaces, and trim.
- If words remain, require every word to appear somewhere in the normalized claim record. Word order does not matter.
- Apply the selected topic as an additional AND condition and report the exact visible count out of ten.
- Open all affects only currently visible cards. Close all closes every card. Reset clears search and returns to All claims.
- A valid
#claim-...hash resets search/topic, opens the matching fixed claim, and scrolls to it. An invalid hash adds nothing. - No progress percentage, completion reward, answer score, or correct/incorrect label is calculated.
Verdict and topic inventory
| Group | Count or values | Meaning |
|---|---|---|
| Topic counts | Food & drink 2; Timing & waking 4; Sleep need 2; Body & brain 2 | Scanning groups only; not evidence strength |
| Conditional verdicts | Misleading, Depends, Too absolute, Limited evidence, Mixed evidence, Too broad, Not a science finding | Text is primary; color never carries the verdict alone |
| Confidence | Claim-specific public label | Confidence in the broad correction, not certainty about a visitor |
Worked fixtures
| Fixture | Expected result | Boundary checked |
|---|---|---|
Search 8 hours | One claim: “Eight hours is the magic number for everyone” | Number and word normalization |
Search sleep weekend | Weekend catch-up claim even though word order differs | All-word, any-order matching |
| Topic = Timing & waking | Four visible claims | Exact topic count |
| Open all with no filter | All ten native disclosures open | Visible-set command |
| Search with no matching words | Zero shown, claim list hidden, and a reset route visible | No generated answer |
| Valid claim hash | Reset filters, open the claim, then scroll to it | Canonical direct arrival |
Evidence, privacy, and telemetry contract
- Each review names one or two directly relevant primary studies, systematic reviews, consensus statements, or public-health sources. Source coverage supports the correction stated, not every possible version of the claim.
- “Reviewed” is the date Sleep Manager checked wording and links. It does not mean a clinician reviewed the visitor's sleep.
- Search, topic, and opened-card state remain in page memory only. No account, local storage, session storage, remote claim lookup, or custom claim analytics is used.
- Page sharing uses the canonical URL. A copied claim link adds only its published claim hash and never search/topic state.
- The claim page sends no custom interaction event containing claim text, search words, topic, opened-card state, or completion progress.
- The ten explanations are educational. Repeated breathing pauses, sudden sleep attacks, severe ongoing difficulty, or unsafe sleepiness need an appropriate professional or safety response.
How versions and code parity are kept honest
Code-to-page parity check
- Identify the live inputs, accepted values, defaults, constants, branches, ordering, and displayed output.
- Run the published normal, boundary, tie, zero, empty, and invalid-input fixtures that apply.
- Compare visible wording with the actual result so a limitation is not hidden behind technical detail.
- Check storage, sharing, URL state, and analytics payloads against the published privacy contract.
- Update the method ID when a result rule changes; update the review date for evidence or wording checks.
Correction route
Report a formula, timer, time-zone, answer-weight, route, count, source, privacy, accessibility, or code-parity issue through the Contact page. Include the tool, input used, result shown, browser, and expected result when possible.
A visible method record is not proof that the method is clinically validated. Status labels above distinguish evidence-informed content from Sleep Manager-created interface rules.
Methodology change log
| Date | Version or scope | Change |
|---|---|---|
| 10 Sep 2026 | Analytics contract across M05-M12 | Replaced result-bearing and duplicate event descriptions with the consent-controlled Phase 11 allowlist. Tool inputs, answers, exact times, scores, searches, concerns, partner responses, and result values are excluded. |
| 8 Sep 2026 | SM-GAP-1.0 and SM-CAF-1.0 | Corrected the Sleep-hour Gap index summary to match the live subtraction direction and documented the caffeine storage and sharing behavior then in place. |
| 24 Aug 2026 | Complete M01-M12 register | Added the task-led method index, full Glossary and Claim Checker methods, reference-page two-way links, parity process, and responsive full-width reading layout. |
| 24 Aug 2026 | SM-COMPAT-2.0 and SM-BEDROOM-2.0 | Published exact-answer partner comparison and equal-count bedroom checklist rules after retiring percentage and grade framing. |
| 23 Aug 2026 | SM-CHRONO-2.0 and SM-JET-2.0 | Published the mixed-result boundary, retained weights, date-aware offsets, direction rules, and worked fixtures. |
| 22-23 Aug 2026 | M01-M04, SM-CAF-1.0, SM-ROUTE-1.0 | Published homepage utility behavior, caffeine assumptions, and the fixed problem-route lookup with current limits and telemetry disclosure. |