One number. 0 is the floor, 10 is bullet-proof. Decimals count.
The speed of wear is the honest gauge — it needs no calibration.
Real life is rarely one mission. Allocate your declared season across the eight spectra (sliders normalize to 100%) and this compares it against the spectrum your last 90 days actually read — and how your material flies the blend. A lens, not a verdict: the fatigue math still reads only what you logged.
Read it like a loads engineer: every life flies a mission profile. This is a playful crossover, not a verdict — the gauges above are the instrument.
Dots are daily W, January through December. In a single year, the line is your chosen trailing moving average; in All years, every entry in the record lands at its day-of-year and the line runs through each month's mean across all years — the seasons, if you have them, will show.
Everything above measures wear. This measures the structure — how fast you come back after a knock, the level you come back to, and how hard the table is being shaken. Three readings, never combined into one. What this is →
Each point reads the 180 days centred on it, so the line lags real change by about three months. Read the shape, not the day.
Think of a marble in a bowl. Something knocks it up the side; the bowl pulls it back down. Your score does the same thing every day.
Ring-down is how steep the bowl is. Short means you come back fast. It is not the same as feeling good — a steep bowl can sit at a low level.
Set point is where the bottom of the bowl sits: the level you return to, whatever today happened to be.
Daily jolt is how hard the table is being shaken. A small jolt is not automatically better — quiet is a small jolt, braced is a big jolt with a short ring-down.
The second analogy is aircraft stability: a fast return to level is a design choice, and it is not free. Fighters are built less stable on purpose, to respond quickly — and they need a control system running to stay flyable. The full explanation, with both analogies: Modal Survey →
It did not see the stroke coming. Run across the founder's record against the worst event in it, the ring-down was improving right up to that morning. This is a condition check, not an early-warning alarm — and it is one person's evidence so far.
D counts what a life costs. A mission names what it buys. Spending is not failure — it is the only way to fly.
Amber bands are declared missions laid under the D(t) curve; the number on each band matches the history below. Every mission flown stays reviewable here — and review is the point: sometimes the hangar was exactly the right call, and the log should say so without apology. Unlabeled stretches are simply time without a declared mission — an observation, not a deficiency.
What it measures. For each mission window: ΔD — the fraction of calibrated life deposited while that mission was flying — its duration, and the average pace. In ASIP terms, defining the mission is a Task I analog (𝑖 SIP i5.1.2) — design information: deciding what the airframe is for before anything is measured against it — and the log itself is individual usage tracking: actual spectrum flown, logged against the declared mission. Stated flatly, because that is all the instrument knows.
What it cannot see. Whether the spending bought anything — that is what the daily mission entry adds, and even then only behaviorally. It cannot separate chosen spending from weather: illness, loss, and circumstance accrue damage on every airframe, and a mission window contains everything that happened inside it. And a contented flatline is indistinguishable from a depressed one in the fatigue math — the engagement axis exists partly for that reason.
The honest math. ΔD = Σ n/N over cycles closing inside the window, exactly the pipeline the Trends tab has always run: 4-point rainflow (ASTM E1049-85), residue as half-cycles, then a mean-stress correction S_eff = Sₐ + α·Sₘ. One honest label note: that linear form is closer to a modified-Goodman-type correction than to canonical multiplicative Walker, though this app has always labeled it "Walker." The math is unchanged; the label deviation is documented here rather than hidden. Miner's rule is sequence-blind — the same days in any order sum to the same D.
Status. Experimental. Default constants are calibrated to a single reference subject pending study data; calibrate to your own anchor to make the scale yours. Missions are annotations you control — created, edited, and backdated freely, because the record spans years before this tab existed.
Leave these alone and the mission simply starts today and flies until you end it. Set a start date to backdate; set an end date only when logging a past mission into the history. You are annotating your own record — the record is older than this tab, and that is fine.
Optional. Mark a stretch when you were flying this mission the way you meant to — the damage rate you actually logged across it becomes this mission's pace target, and the pacer appears on the current mission. Your own record is the only pace source this instrument will ever use.
One mission at a time; gaps between missions are allowed and never counted against you — ground time is preparation for engagement.
You are the bright dot; the faint trail is the mission's days — daily points from the very first chip, thinning to weekly averages as the record grows. Across: whether the days built the mission or ran against it (the −1 / 0 / +1 entries above, averaged over the trailing 28 days). Up: how fast the last 30 days spent life, measured only against your own chronic pace — no one else's. Pick a past mission above and the trail replays that mission instead. No quadrant is red and none is green, because no quadrant is a verdict.
The four positions. Flying the mission hard — expensive and legitimate; the spending has a name. Efficient cruise — the mission moves at below your chronic pace; material well-matched to mission. In the hangar — low spend, low engagement. Rest, or drift? Only the pilot knows which — and sometimes the hangar is exactly right: depot maintenance, preparing the airframe for its next engagement, is a scheduled part of every service life. Paying without flying — damage accruing while the declared mission sits. This is the one pattern the instrument exists to flag, and it gets the gentlest read on the map, not the loudest: an airframe accumulating damage on no mission needs its mission re-examined — and possibly some deliberate ground time. That is maintenance language, not judgment.
What it cannot see. Not all damage is spending. Illness, loss, and weather accrue on every airframe — a hard season in "paying without flying" may simply be weather, never a misspent life. The engagement axis is deliberately behavioral ("did you build it?"), not affective ("did it feel aligned?") — feelings would echo the wellness dial and make the map circular. It still cannot see effort that moved nothing visible, or missions too private to declare.
If the hangar doesn't feel like rest. This instrument cannot see a crisis, and it will never try to diagnose one from dots and trails. If the hangar feels less like ground time and more like a hole, the right instrument is a person: in the US, call or text 988, any time.
Quiet rules. This tab never prompts you while the trailing 14-day mean W is below 4.0 — when the days are heavy, silence is kinder than arithmetic. Check-ins skipped are never re-asked in the same week. The map itself is always here when you come to it.
The honest math. x = the trailing 28-day mean of your daily −1 / 0 / +1 mission entries (one entry is enough for a point — the mean simply firms up as entries stack; midline at 0; clipped at the mission's start so no mission is colored by the one before it). y = 30-day dD/dt divided by your chronic pace (365-day when the record has one; whole-record pace before that), on a log scale clamped to ¼×–4×. Both axes are self-referenced by construction: this map has no norms, no other people, and no absolute scale. Experimental status: this is a personal instrument being tested on a reference record of one.
The Daily measures the damage. The bay keeps the maintenance record: which recovery procedures earn their place in your record — and which well-meant ones read as maintenance-induced damage.
Three capped lists: Certified (works in your record — 3 slots), Grounded (well-meant maintenance that reads negative — 3 slots), In Test (candidates — 5 slots). A full list always asks who gets displaced; displaced items keep their record in the archive below. The Brief above can read the lists (curated) or the whole record (unvetted association — a rescue practice inherits the hard days it was deployed on).
Everything here says associated with, in your record — never causes, never proves, never will.
The filter. Everything here answers one question: can I put it on a calendar? Yes → it is a repair procedure and it belongs in the bay. No → it is an instrument reading, and it stays in the Daily exactly as it is today.
The lists, in plain words. Certified = it earned its slot: dose stated, interval stated, positive read, survived a coupon test. Grounded = you did it to recover and your record reads it negative — maintenance-induced damage. In Test = candidates waiting on evidence. The caps (3 · 3 · 5) are deliberate: a manual with forty procedures is a manual nobody opens. Disposition (i5.3.8) just means your recorded decision on a finding — certify, ground, or drop — and none of it is permanent: any item can go back to In Test or to the archive at any time.
The gate. A procedure must carry a dose and an interval or it cannot be certified. "Water" is not a procedure. "16 oz before noon, daily" is. If you can't state the dose, it stays on Candidates — an automatic rule, so there's no judgment call at the moment of temptation.
The engine (i5.5.3). It scores days by the residual — the part of a day the ring-down model did not already predict from yesterday. "Expected" means: what yesterday alone would predict. Beating it reads GOOD; falling under it reads BAD — higher W than momentum explains is the whole test. Controls are matched from the same era of your record, so a hard year can't put a procedure on trial. Windows checked: same-day, +1 day, +3 days, and the week after; the winner is named in plain words. Verdicts wait for 5 occurrences; the In Test list runs a false-discovery correction; effects print in W units and damage-units per year, never a correlation coefficient.
The interval gate (i5.2.10). Results recompute only when the inspection interval comes due — the same date the Trends panel shows. Watching a gauge continuously couples you to the gauge; that hazard has a task number, and this gate is how the bay respects it. Early reads exist, warn plainly, and are logged.
Coupon tests (i5.2.13). Declared before the run — label, dose, direction, window, and the falsifier in your own words. At close the bay reports the pre-declared comparison and nothing else. Adherence is exception-based: the declared schedule is the record; tap any ON day you didn't actually run, ideally within the week. Missed days are excluded from the comparison — never counted as OFF — and adherence prints beside the verdict. Findings are dispositioned (i5.3.8), procedures accumulate per label into the 𝑖SRM (i5.5.10), and the schema change is on record (i5.5.4). No new task numbers anywhere in this build — the program stays at fifty-five.
Same name, different seasons. Same-named studies pool into one all-time read — and Detail keeps the by-period breakdown underneath (practice stretches split on 90-day gaps, each judged against its own era). When two periods' intervals don't overlap, the verdict says periods disagree: the pooled number is an average of different things, possibly seasonal. Renaming onto an existing name always asks — merge (all-time pooling) or keep separate as "#2" — never silently.
What this bay is not. It cannot see a crisis and never diagnoses one. Anything prescribed — medication, a clinician's protocol — is a finding for a clinician, never dispositioned here: [Rx] entries live in the archive, and in the whole-record Brief they print as a set-aside line, number visible, never ranked.
The full story, with pictures. Open the Repair Bay feature page → — the two-logbooks idea, the engine, coupon tests, and the eight 𝑖SIP tasks this bay executes. And the data-economy map → — every input this instrument takes and every product it feeds, each box a link.
If what turns up here involves persistent depression, crisis, or harm, that finding routes outside this program — to a person. In the US: 988, by call or text. Anything prescribed is a clinician's call; this bay records it as a finding and goes no further.
Save as PDF opens your device's print sheet — choose "Save as PDF". The report is built from this device's record only.
Everything stays on this device — which makes the backup file yours to keep. Export one monthly. See the map of what feeds this instrument — and what it feeds →
Filled days are straight-line estimates between real neighbors, tagged [auto-filled] in their note so they are always identifiable — and removable above. Short fills (≤7 days) barely touch the math: a straight line has no reversals, so it deposits no cycles. Filling longer gaps merges analysis segments and can change D — that is why the default cap is 3. Prefer the truth? Every missing date listed here can be entered by hand from the Today tab's date field.
Bring history in from a journal, spreadsheet, or the Workbook. CSV format: date,W,note — one day per line, date as YYYY-MM-DD, W from 0–10 (halves count), note optional. A header line is fine; it's skipped.
A date,W,note CSV — paste it straight into the Application Workbook's Data Entry sheet or the web tool.
Your filled 𝑖SIP Companion Workbook, your Mission Card, and your Mission Declaration — kept on this device so the placards are one tap away while you log. PDF or HTML. Nothing is uploaded anywhere; these files never leave the phone.
Honest limit: these files live in this browser's storage, not in the JSON backup — a workbook PDF would bloat every backup you take. Keep the originals where you made them, and re-import here after a device change.
The 𝑖SIP program map Mission Declaration — the instrumentAn optional once-a-day reminder — only if the day isn't logged by your chosen hour. A crew chief's knock, not a streak: one line, no escalation, never twice in a day. Honest limits: it fires reliably while the app is open; in the background it is best-effort, and only on platforms that allow installed apps to check in. No data leaves the device.
Downloads a small calendar file (.ics) — open it and your phone or PC calendar takes over, ringing at your tap hour every evening even when this app is closed. Honest limit: the calendar can't see your record, so it reminds you on logged days too. Change the hour above, tap again for a fresh file. Nothing leaves the device.
Every tab, the math in a minute, backup & restore, past-data import — twelve pages, plainly told. Questions: isightlaboratories@gmail.com
Open the User's Guide ▶ Watch the walkthrough — 3:15 ▶ Watch the 30-second spotWhere these defaults come from: A — the life scale — was calibrated on the founder's thirteen-year, 2,400-day record (D = 1.0 at its documented anchor event); m, α, S_th, and the 7-day gap are standard fatigue-analysis conventions from the same reference pipeline. They are honest starting points, not your calibration. Once your record holds enough closed cycles — and ideally a documented anchor event of your own — set the anchor date and Calibrate, or type custom values directly, to make the scale yours.
The record & method behind the defaults The framework — a life in damage unitsUntil you calibrate to an anchor — a documented event of your own — the D level is on an arbitrary scale and only the rates mean anything. That is the honest default. Pipeline: 4-point rainflow (ASTM E1049-85) → Walker → S-N → Miner, identical to the web tool. One label note, documented in v2.0: the "Walker" step is the linear form S_eff = Sₐ + α·Sₘ — closer to a modified-Goodman-type correction than canonical multiplicative Walker. The historical label is kept and the math is unchanged; honesty about the name costs nothing.
Hindsight 80/20 · iSight Laboratories · the Hangar · ·
Questions: isightlaboratories@gmail.com
▶ Watch the 30-second spot
Wings don't fail from one terrible moment — they wear out from thousands of ordinary flexes. Engineers add those flexes up and read one number: how much of the structure's life has been spent. This app points that method at a person. One number a day — how are you, 0 to 10. Every swing between a good stretch and a hard one is one flex; the math (rainflow → Walker → S-N → Miner) does the rest. The usual surprise is the 80/20: the everyday swing, not the catastrophe, spends most of the life.
iPhone — Safari → Share → Add to Home Screen. Android — Chrome → ⋮ → Add to Home screen / Install app. PC / Mac — Chrome or Edge → install icon at the right end of the address bar. After the first visit it works offline.
Set the number (drag the needle, tap a chip — half-steps count), add an optional note, Save. Missed a day? Change the date field and backfill. Re-save any day to update it. The record block shows days logged, streak, and median W.
The 30-day rate is the sprint; the 365-day rate is the honest gauge (it appears once your record spans a year). D is the running total — on an arbitrary scale until you calibrate. Below: your last 90 days of W, the D(t) accumulation, and the damage bands — which size of swing is spending your life.
Modal Survey (v3.5, experimental) — the ring-down test. A fold at the bottom of Trends, closed by default. Everything else on the tab measures wear on a structure whose properties are assumed — 𝑖 SIP Task V. This one measures the properties themselves — i5.3.2.1, Task III, the ground vibration test: ring-down (how many days it takes to shed about two-thirds of a knock), set point (the level you keep returning to) and daily jolt (the size of a typical one-day swing), each with its own range and never combined into a single score. Below them, a rolling 180-day survey shows how the first two have moved, and a per-mission table surveys each declared mission. Two things it says about itself, on the panel: a short ring-down means you recover fast, not that you are doing well — read it beside the set point; and it is not an early-warning alarm — run against the founder's own record it saw nothing coming before the worst event in it. The full explanation, with the marble-in-a-bowl and aircraft-stability analogies: Modal Survey →
Structure (v2.3, experimental). A fold at the bottom of Trends (open by default since v2.6; close it any time) runs a second life-model on the same days: a crack index a(t) grown cycle-by-cycle in time order, where hard stretches (your own worst 5% of swings, marked ▲) temporarily slow the growth that follows — retardation, not repair; nothing heals. Calibrate to your anchor and post-anchor flight reads "Operating with known history." Its one forward-looking line — "Next self-inspection by [date]" — is maintenance language: when to look, never a countdown. Neither track ever shows remaining life.
D measures spending; the Mission tab names what the spending is for. Defining a mission is the ASIP Task I move — 𝑖 SIP i5.1.2 — deciding what the airframe is for. Start one in three taps: pick a spectrum (Fighter, Sailplane, Transport, Aerobatic, Trainer, Rescue, Test bed, Depot — ✦ marks the ones your MmM material typically flies well), name it in your own words, Start. Dates live under an Advanced fold: start defaults to today; an end date is only for logging past missions into the history. The current mission is always visible at the top of the tab, with End and Edit one tap away.
Then, each day, right here on the Mission tab: "Did you build the mission today?" — −1 the day ran against it · 0 neutral, didn't engage · +1 built it. The chips have their own date field (v2.2 — they used to share the Today tab's, which was confusing), so backfilling engagement works like backfilling W, and the day's W is shown alongside for cross-reference. One tap saves it — there is no button. If the log sits quiet more than a week, a flat flag says so. The service log partitions D(t) by mission (Mission X — 0.31 life-units over 2.1 years), and the alignment map places you on a 2×2 — 28-day engagement across, damage rate against your own chronic pace up — as a dot with a 12-week trail. No quadrant is a verdict; both axes are measured only against yourself, and the tab stays silent when your last two weeks have been heavy. The thinking behind all of it: the Hindsight framework →
Pacer (v2.2). Edit a mission and mark a reference stretch — a spell when you were flying it well — and a pace strip appears on the current mission: your last month's damage rate against your own reference rate, behind / on pace / ahead. Mismatch is the signal in both directions: above-pace on a Depot or Sailplane refit is the alarm, below-pace on a build mission means it isn't being flown. Pace is never a score to maximize, and the target only ever comes from your own record. Return on damage (v2.2, experimental) sits at the bottom of the tab (open by default since v2.6) once you have engagement entries: engagement bought per life-unit spent, shown only against your own trailing median — its info sheet explains what it deliberately cannot judge.
Resonance (v2.6, experimental) — the natural-frequency check. The third leg of the instrument: D measures what the flying costs, the chips measure whether the mission moved, and resonance asks whether the flying feeds the airframe — on the days you tapped +1, did W run above or below your own baseline? The headline is a mean ΔW with an approximate ± band (never a bare number), and the response chart reads the days before and after a built-it day so the honest question — "does flying make you well, or do you fly when well?" — stays visible. Three reads: Resonating, Reading level, and Holding on too tight? — the last one deliberately a question, because a mission can cost W and still be chosen. It follows the mission selector, so past missions replay their resonance too. No new inputs, no new storage — it only reads what the dial and the chips already hold.
The maintenance record. Every other tab keeps the flight log; this one keeps the book on the repairs — which recovery procedures actually hold on you, and which well-meant ones read as maintenance-induced damage. One tag on repairs you already log (what it was, its dose, whether you did it to recover) is the entire added burden.
The Brief sits first: your top three that read good, your top three reading as MID, and the effect ladder — bars in W with 95% whiskers; a whisker crossing zero means the record isn't sure yet. Directly under it, your coupon tests (v4.0.6 — a running test is a daily interaction, so it is never buried). Then three capped lists: Certified (3 — dose, interval, positive read, survived coupon test), Grounded (3 — done to recover, reads negative), In Test (5 — candidates). A full list always asks who gets displaced; everything ever tried keeps its verdict in the Service History archive.
The engine scores surprise, not mood: it subtracts what yesterday alone would predict and compares against days from the same era of your record. Verdicts wait for five occurrences. Coupon tests (i5.2.13) are declared before the run and close on the declared comparison only — and adherence is exception-based: each ON day is a dot on the coupon card; tap any you didn't actually run (ideally within the week) and missed days are excluded at close, with adherence printed beside the verdict. Results recompute only when your inspection interval comes due (i5.2.10) — early reads are allowed, warned, and logged.
Reading the history. Every behavior can be renamed and described ("what was this measuring?") — a rename carries its tags and coupons with it, and renaming onto an existing name asks: merge (all-time pooling) or keep separate as "#2". Same-named studies pool, and Detail keeps the by-period breakdown (split on 90-day gaps, each period against its own era) with a periods disagree flag when seasons contradict — that disagreement is the seasonal signal. The archive sorts by certainty / best / worst / most recent / most days with a text filter. Everything says associated with, in your record; anything prescribed is a finding for a clinician — [Rx] entries never rank in the Brief. Full story: the Repair Bay feature page.
Pick a month: coverage, damage deposited, acute rate, cycles closed, largest swing, hardest and strongest days, and a plain-language read. Save as PDF opens the print sheet; Month CSV exports that month's rows.
Your record lives only on this device — so once a month, Export backup file (or Share backup to your email or cloud). The app nags with a banner when a backup is missing or stale.
v4.1 hardening. The record now rides in two hulls: every save is mirrored into a second on-device store, and if the browser ever wipes the first copy the app restores itself from the second on next open. Where the browser supports it, Backup autopilot (Data tab) writes hindsight8020_autobackup.json to a folder you choose on every logged day — the ritual runs itself. And The evening tap is an optional once-a-day reminder if the day isn't logged by your chosen hour — no streaks, no escalation. On a brand-new record, first flight shows Today, Trends and Data first; Mission, Report and the Repair Bay come online at seven logged days (or one tap — nothing is held back).
Get the .json backup onto the device → Data tab → Restore from backup → Choose File → watch for "Restored N days." Restore merges: days in the file overwrite matching days on the device; device-only days are kept. Parameters in the file replace the device's. The unlock is not in the backup — on a new device, enter the email you paid with (or your code) once.
Two or more devices? There is no sync, by design. Log on one primary device; refresh the second by restoring the primary's latest backup. Never log the same day on both — the restored file's version quietly wins.
{
"app": "hindsight8020-daily", ← must be exactly this
"ver": "...", "exported": "...",
"params": { "A":…, "m":…, "alpha":…, "sth":…, "gap":…, "anchor":"" },
"entries": { "YYYY-MM-DD": { "w": 0–10, "note": "…" }, … },
"missions": [ …v2.0, optional; v2.2 adds an optional
"ref":{"start","end"} reference stretch per mission… ],
"missionLog": [ …v2.0, optional… ],
"missionEng": { "YYYY-MM-DD": -1|0|1, …v2.1, optional… },
"track2Params": { "ac":…, "n":…, "gamma":…, "olPct":… ←v2.3, optional }
}
Days that break the rules are skipped silently; the rest import. Backups from any version restore into any other — v2.0 files carry missions and weekly check-ins; older apps simply ignore those keys, and older files leave your missions untouched.
Data tab → Add past data. CSV format: date,W,note — one day per line, date as YYYY-MM-DD (or M/D/YYYY), W from 0–10 (halves honored; 6.7 becomes 6.5), note optional, header line skipped, notes with commas in quotes. Import a .csv file or paste rows. Days already logged are skipped unless you tick Overwrite. The toast counts what happened. One stray day? Use the Quick manual backfill below it.
Fourteen days free — the pill counts down. Buy any time from the Own it panel (Data tab) or the welcome card: secure Stripe checkout, land back unlocked. Second device or hiccup: enter the email you used at Stripe checkout (or an unlock code) under Purchased before? — one online check, then never again. One purchase, no subscription. When a trial ends the instrument locks; your record does not — export works even on the lock screen.
A (life scale) was calibrated on the founder's thirteen-year, 2,400-day record — D = 1.0 at its documented anchor event; m, α, S_th, and the 7-day gap are standard fatigue-analysis conventions. Honest starting points, not your calibration: once your record holds enough closed cycles, set an anchor date and Calibrate, or enter custom values. The record & method behind the defaults →
It is not a diagnosis. D is a gauge of accumulated load — not a screening score, a clinical judgment, or a prediction. It cannot see a crisis. If you are in one, the right instrument is a person: in the US, call or text 988, any time.
Privacy: every entry stays in this browser's storage on this device. Nothing is uploaded, synced, or seen by anyone — including the lab. That privacy is also the risk: the device is the only copy. Hence the backup ritual.
Anything at all: isightlaboratories@gmail.com — a person reads it.
Prefer a document? Open the illustrated guide → (a downloadable PDF lives at the bottom of it)
▶ Watch the 30-second spot
Reopen this any time with the ? in the top corner · isightlaboratories@gmail.com
Your record is untouched and it is yours — locked or not, you can export it below, any time. Unlocking keeps the instrument running on it.
User's Guide · isightlaboratories@gmail.com
Already paid? The link on your purchase page (or receipt email) unlocks this device instantly.