How it works
What happened. Why. What changes.
Every line below is one the app writes. Where it can't measure something, it says so — and this page says so too.
Today
One decision, in one of eight words.
The top of Today: a label, one sentence naming what sat outside your usual range, a confidence word, and the signals behind it.


- TRAIN AS PLANNED
- Nothing measured this morning is outside your usual range.
- PROCEED WITH CAUTION
- Sleep sits outside your usual range; the session stands as planned.
- REDUCE INTENSITY
- Resting HR and HRV sit outside your usual range; today asks for less.
- SHORTEN
- HRV sits outside your usual range; today asks for less.
- RECOVERY DAY
- Sleep, resting HR and your check-in sit outside your usual range; today asks for less.
- REST DAY
- A rest day on the plan — nothing to decide; tomorrow's session is the next read.
- SESSION COMPLETE
- Today's session is on the record; the read follows below.
- NO PLAN
- No session is planned today; set one and Octane weighs it in the morning.
Under TRAIN AS PLANNED the headline is “Nothing flagging — run it as planned”; under PROCEED WITH CAUTION it is “Run it as planned, with today's signals in view”.
When nothing was measured
- “No recovery signals were measured this morning; this recommendation rests on the plan and your training load.”
Most mornings a wearable has nothing to say. Octane says so, rather than reading a green light into silence.
- 3 of 4 recovery signals measured
- Baselines still forming
- No session recorded yet
- Morning check-in on file
- Recovery data from today
Confidence is a word, never a percentage — High, Moderate or Low — with the five things it could see listed underneath.
How do you feel?
Great, Normal, Off or Sick — and a flag if there is one to raise: fatigue, poor sleep, stress, soreness, pain, tightness, congestion, illness, GI issues. Thirty seconds, once a morning, on the same card as the decision.
Your own read, beside the measurements. It informs today's decision; it never diagnoses.
Seven rows behind every recommendation — Sleep · Resting HR · HRV · Breathing rate · Training load · Conditions · Fuel. A missing signal is named — “Not measured”, “No baseline yet”, “Not logged yesterday” — never zeroed.
Then it's yours. Follow itKeep planMy ownOn the record before you train. Octane reads the session when it syncs.
Training advice only ever suggests doing less, never more.


Before you train
What's still outstanding, and by when.
Up to four lines under the decision, each a number from your own targets and your own log. When nothing is outstanding, it says so.
Before you train
- 126 g carbs before the start
- 110 oz to your water target
- 2 doses not logged today
- 30-second check-in
Empty state: “Nothing outstanding right now.” The doses line is a count. It never carries an amount, a unit or a compound.
Tonight
- 120 g carbs of today's target still to come — tomorrow is a hard day
- Aim for 8h 15m tonight
One window at a time
The same line sits at the top of the Add sheet:
- Pre-run fuel · 46 / 70 g carbs · by 7:00
- After your session · 12 / 40 g carbs · 26 g protein
- Tomorrow: Long Run • 16mi · 249 / 375 g carbs today
Read against the clock, not the day — nothing logged at 9am is early, not low.
Tomorrow
- Carbs today carry into tomorrow's session.
- Set a start time for a pre-run fuel window.
- Sleep is tonight's training.
- Final recommendation pending morning recovery.
How big tomorrow is reads as HIGH, MODERATE or LOW against your own recent weeks — never a number invented for the occasion.


Across your devices
The ring knows the night. The watch knows the run.
Most athletes wear more than one, and none of them wears everything. The watch comes off at bedtime; the ring never saw the session. Each device reads its own sensors and stops there — so the night and the training sit in two apps that have never met. Octane reads them as one morning.
Don't replace your apps. Make them work together.
Octane takes the night from whatever measured it and the session from whatever recorded it. A ring you sleep in and a watch you train in is one picture, not two half-pictures.
Runna
Your plan, from the private calendar link you paste in the app. No other account needed.
Garmin
Workouts, laps and heart rate, as your watch recorded them — and the night's sleep, HRV and resting rate when the watch stays on.
Oura
Sleep, HRV and resting heart rate, each morning.
Apple Health
Workouts and sleep from your iPhone or Apple Watch. The grant lives on your phone.
Octane
Nutrition, check-ins and your stack, logged here.
Octane reads from these. Nothing is written back to them.
Two devices, one measurement
When two devices report the same thing.
They rarely agree to the decimal, and averaging them is the wrong answer: a ring reading a 12% drop in overnight HRV and a watch reading 2% average into a morning that looks ordinary — and that drop is what the decision is looking for.
So Octane never averages your devices and never adds them up. It reads one source per measurement per day, by a rule that is the same every morning, and it tells you which one it read.
Sleep, HRV, resting and breathing rate
The device that was on you all night wins — a ring or a strap ahead of a watch, a watch ahead of a phone. A spot reading at 2pm is not a night.
Steps, energy and distance
The wrist worn all day wins. Two sources added together would double every step you took.
The session itself
The richest recording wins, and which one that is depends on the sport: the GPS watch reads a run, the strap reads a lift.
Which source Octane reads is a rule about what a device is for — never a verdict on which device is right.
One run recorded by two devices is counted once. The recording it was not read from is kept, not deleted.
When two sources report the same thing, Octane says which one it read.
“Resting heart rate: Oura and Garmin both reported — Octane read Oura.”
The app's own sentence, from the sources card you can share.


Your plan stays in Runna. Your workouts stay on your watch. Octane keeps its own copy of what it read, and you can delete it any time. Disconnecting a device is not a deletion request — what Octane already read stays until you delete it.
After your session
How you ran, what it cost — and when you stopped short, it says so.
Every run is read against your own comparable runs of the same distance and type, with the heat divided out. Two axes, one headline.


Your run, read Stronger
- You covered 5.3% more ground per heartbeat than your typical 5-7 mi intervals run, with the heat divided out.
- Negative split — your second half was 14 sec/mi faster than the first. That is how to run a strong session.
- Your heart rate dropped 32 bpm in the first minute after — faster than your usual 28, a good recovery sign.
- Executed to plan — 100% of the planned distance.
Compared to your own past runs of this distance. It describes what the session showed — never why.
Octane does not estimate training stimulus.
There is no load number anywhere in Octane. The stimulus line says so in words rather than inventing one.
Executed as modified — you followed the recommendation and ran 60% of the planned distance.
No grades. A reduction you were advised to make reads as the recommendation working.
How did it feel?
Easy, As expected, Hard or Very hard — and anything to flag: pain, tightness, illness, fatigue, GI issues. Your word sits beside the numbers on the ledger.


When the run stops early
CAME IN SHORT AT 2.8 OF 4.5 MI
“Stopped at 2.8 mi of a planned 4.5 mi.”
“The run ended before the planned total; the readings above are of the run that was done, not of the plan.”
A run that stopped has no second half to have run faster, so the split and fade reads are withheld rather than reported.
Why did you stop?
Pro · Session readAsked only when the read found the run cut short, and answered in your words — nine of them:
- Legs / fatigue
- Pain or a niggle
- Stomach
- Heat
- Ran out of time
- Gear or route
- Felt off
- Planned cutback
- Something else
Why you stopped is yours to say. Octane never guesses it.
The morning after
The morning after yesterday's 16.0 mi run, everything measured sits in your usual range.
The morning after yesterday's 16.0 mi run, resting heart rate is +6 bpm against your baseline.
Two facts in sequence, against your own baseline — it describes the morning, never the cause.
Yesterday you followed the recommendation and ran 16.0 mi — this morning's response is in your usual range.
The week, on the record
- 5 recommendations · 3 answered · followed 2
- 28.4 of 32.0 planned miles run.
- Reads: 2 stronger · 1 in line · 1 below.
- Mornings after: 3 in range · 1 elevated cost.
- The week ahead: Long Run • 16mi on Thu Sep 11 is the one worth protecting.
Sunday evening, written from the ledger — no model involved. The two Pro lines are the reads and the mornings after.
Push
Your run has been read
16.0 mi — stronger than your own long runs. The read is on Today.
Fuel
Logging that knows what you usually eat, and what tomorrow asks.
Calories, carbs, protein, fat, fibre, sodium and water against targets that know what day it is — logged in a tap or two, under one line that says what the next session needs and by when.

Photo
One shot, itemised, every estimate editable. A nutrition label is read as one item, the serving as printed.
Scan
A barcode you've logged before offers your usual serving — “Your usual serving, from 6 earlier logs.”
Describe
Say it or type it. Your own log answers first; the model only when it has to.
Quick add
A number and a slot. “Counts toward today. Not offered as a usual food later.”
Suggested, from your own log
Foods you've logged in this slot before, one tap to add, captioned in words and never with a number: “Usually around this time” · “Often at breakfast”. Repeat a past breakfast with Add all. Undo is one tap — “Banana added · 105 kcal · 1 g protein”.
New account: “Log a few meals and Octane will start learning what you usually eat.”
Describe
“My normal breakfast”, “same as yesterday” and “log a PB&J” are answered from your own log. Anything else is worked out by the model, and you check it before it is logged.
From your own log — no model involved.
Speech is turned into text on this phone. The recording never leaves it.
“Same shake but blueberries instead of banana” changes the one thing you named. Your other items are carried over as you logged them, not re-estimated.




Search leads with your own history, then generics, then brands; a quantity in the query — “2 bananas” — is carried into the portion. Pick several and add them together.
Targets that know what day it is
A long-run day and a rest day are not the same day. Set a target for each kind of training day and Octane resolves the right one for the date. Ten meal slots, including pre-run, during and post-run.
What the session asks
Pre- and post-run windows are bands from the literature, not a measurement of you — and with no bodyweight on file, no gram figure is shown at all.
Water against a target, with a 3pm nudge only if you're behind: “42 of 110 oz so far — there's afternoon left to close the gap.”
Photo and text estimates are approximate. Edit anything that looks wrong.
Insights
Octane learns patterns. It doesn't invent causes.
Seventeen rules, each a fact about your own log, each carrying the count it stands on and a confidence word — never a probability.


- Speed per heartbeat
- Heart-rate drift
- Weekly volume
- Sessions against the plan
- Fuel before hard days
- Fuel before long runs
- Protein against your target
- Water against your target
- What Octane can and cannot see
- Building your baseline
- Long-run fadePro
- Key sessions against the planPro
- Hard sessions cut shortPro
- Goal-pace workPro
- Fuel for the next hard sessionPro
- Recovery baselinePro
- The morning after, by session typePro
“6 long runs over 90 days · two windows agree · baseline still provisional” — Counts only. When the two halves of the window disagree, the card says so.
Until there is enough data, a count
- “7 of 10 runs with heart rate toward a speed-per-heartbeat trend.”
- “12 of 17 measured mornings in 28 toward a trusted resting-heart-rate baseline.”
A new account doesn't get made-up insights. It gets a count toward a named floor: “Nothing here is a conclusion yet. Octane says so rather than guessing.”
Eleven facts about you
Your easy-run heart rate, your efficiency by distance, where your long runs fade, your weekly norm, your training days, your carbs before hard days, your resting HR, HRV and sleep baselines, the morning after a long run, and your strength-session heart rate — each with a floor, and “3 of 8 easy runs” until it is met.
Resting heart rate baseline
Moderate signalResting heart rate 46 bpm (45–48) — 26 mornings since Thu Aug 6.
Usual weekly volume
Emerging signal34 mi a week (24–44) — 6 weeks since Mon Jul 20.
Mornings after long runs
Emerging signal4 of 6 measured mornings after long runs were in your usual range since Sat Aug 22.
Strength-session heart rate
Emerging signalYour strength and station sessions sit at 139–158 bpm — 4 sessions with heart rate since Thu Aug 6.
An insight can offer to move a target
Carbohydrates, protein, water or calories — scoped to a day or a day type, revertible, history never rewritten, protein never lowered, and the Stack never touched.
Your protein target stays where you set it.
Goal pace and the race
Goal-pace sessions, weather divided out, read as faster than, at, or slower than goal pace — never a finish projection. The race-equivalent line is a range from measured efforts, and it says what it is:
An equivalence, not a race-day forecast.
Patterns in your own training, not a diagnosis. Plenty of things move these numbers besides fitness.
Population physiology, not a measurement of you — a range to plan by.
Stack
See your stack in context.
Supplements, medications, peptides, GLP-1s — logged as you state them, on the same timeline as your training, sleep and food.
Doses as stated: “5 g · Oral · Daily”. How you're feeling, with a severity from 1 to 5, backdatable. Injection-site rotation, a checklist on Today, and adherence kept honestly: “18 of 21 expected doses.”
Creatine · 5 g · Daily
Pro · Response analysisBefore and after
28 days before · 20 days on
- Weight
- +1.4 lb · 156.6 lb → 158.0 lb · 20 vs 15 readings
- Lean mass
- +1.2 lb · 137.3 lb → 138.4 lb
- Resting HR
- 0 bpm · 47 bpm → 47 bpm
- HRV
- +2 ms · 67 ms → 69 ms
- Sleep
- +1 min · 453 min → 454 min
Why these numbers may mean nothing
- You have been on this 20 days. Most changes need longer than that to separate from normal variation.
This describes what was measured alongside this entry in your stack. It cannot show that it caused any of it.
What you've reported · Adherence 89%
On Today
- Creatine — logged
- Magnesium — not logged today
- Vitamin D — 1 of 2 logged
The doses line is a count. It never carries an amount, a unit or a compound.
On a GLP-1, the monitor restates what is already logged — weight, protein, strength sessions, how you feel — and never states that a compound did any of it.

Octane records what you tell it you take — it never recommends, calculates or adjusts a dose. Talk to your doctor or prescriber before starting, stopping or changing anything.
Season · Pro
A season on the calendar. The morning still decides the day.
Set the races and the weeks you have; Octane lays out the blocks, the weeks and the sessions.
- The planner decides what is on the calendar. The daily decision decides how it is run — and may only ever reduce it, never add to it.
- Road races from 5K to marathon, and HYROX — that configuration is marked provisional in the code, and the season says so.
- Same inputs, same season: the plan is deterministic, and its inputs are stamped onto it.
Already on a Runna plan? Octane reads it as before. A season is something you generate, never something that replaces your plan unasked.

FAQ
Questions, answered.
What is Octane, and who is it for?
The layer above your training stack: it reads your plan, your wearables, your own check-in, your nutrition, the conditions and what you take, gives you one training decision a day in one of eight words, then reads how you ran and how the next morning looks. For runners and hybrid athletes — HYROX and DEKA included — who already have a plan and wear a watch or ring, on iPhone.
Can't I just put my data into ChatGPT?
You can hand a general model whatever you paste in. Octane is built around your continuously connected timeline — your goals, your plan, your workouts, your wearables, your recovery, your nutrition, and what happened after each earlier recommendation. It reads that every morning without being asked, and every number on the screen comes from a deterministic engine, not a model.
Doesn't Garmin already do this?
Garmin is one of the best sources Octane has. It knows your run and, if the watch stays on, your night. It doesn't know your Runna plan, your ring, what you ate, how you said you feel, or that Sunday's long run is the one worth protecting. Octane reads Garmin in that context.
What if I already use Runna?
Keep it. Octane isn't asking you to throw away a plan that works. Paste the calendar link and Octane reads every session, matches what you ran to what was planned, and reads the morning after — without touching the plan.
I already use Garmin, Oura and Runna. Do I need this — and does it replace them?
Each understands one part of you: the plan, the run, the night. Octane is the reading across all of them, plus your check-in, what you ate and what you take — it never replaces them, and never writes anything back.
I wear two devices. Does Octane average them?
No — averaging is how a real signal disappears. Octane reads one source per measurement per day: the device worn overnight for sleep, HRV and resting rate; the one worn all day for steps and energy; the richest recording for the session. It names the one it read, and the others stay on the record. Which one it reads is a rule about what a device is for, never a verdict on which device is right.
I only have one device. Is something missing?
No. One is the ordinary case and the whole product works on it. Reading one source per measurement is what stops a second device from making things worse — it is not a reason to buy one.
What does it do each day?
One decision before you train — TRAIN AS PLANNED, PROCEED WITH CAUTION, REDUCE INTENSITY, SHORTEN, RECOVERY DAY, REST DAY, SESSION COMPLETE or NO PLAN — with the sentence that names what sat outside your usual range. Under it, what is still outstanding before the start. Then a read of the session once it syncs, and a read of the next morning against your baseline.
Does Octane ever tell me to do more?
No. Every label keeps the session or reduces it — never “train harder”. Backing off on a day that turned out fine costs one session; the opposite mistake costs a block.
How is it different from a readiness score?
A score summarises one device's view of one morning. Octane's decision is about a specific planned session: it knows tomorrow's long run is the one worth protecting, what you ate yesterday, how you said you feel, and what you've started taking. And when nothing was measured, it says that, rather than showing a number built on one input.
Is it a training plan?
Not unless you ask for a season. Octane reads the plan you already have, from Runna's private calendar link, a coach's calendar link, or typed in. With Pro you can have Octane lay out a season around the events you name; the morning decision still only ever reduces what is on the calendar.
Will Octane move my intervals to another day?
Not on its own. When a morning asks for less, Octane says what today's session should become — shorter, easier, or a recovery day — in the plan's own units. Moving a session is yours: any Octane session can be moved, skipped or restored from the plan, and a watch that receives Octane's sessions follows. Sessions from Runna or another plan are moved in their own app.
I do HYROX. What does Octane read from a simulation?
Each run and each station, from your lap presses or the step markers of a session Octane sent to your watch. Every station is read against your own earlier sims at the same load, and the late runs against the early ones — held, slowed or faded. It never ranks a station as a weakness and never says why.
What happens when I don't finish a run?
The read says so — “Stopped at 2.8 mi of a planned 4.5 mi.” — reads what you did run rather than the plan, withholds the split and fade lines a stopped run can't have, and asks why you stopped, in your words. If you were advised to shorten, it reads as the recommendation working.
What does nutrition have to do with training decisions?
Tomorrow's long run is fuelled tonight. Octane knows the session is coming, so the Add sheet carries one line — “Tomorrow: Long Run • 16mi · 249 / 375 g carbs today” — and yesterday's intake is one of the seven rows behind today's decision.
Does the voice recording leave my phone?
No. Speech is turned into text on this phone. The recording never leaves it. “My normal breakfast” and “same as yesterday” are answered from your own log, with no model involved; anything else goes to the model as text and you check it before it is logged.
Does it calculate doses?
No. Octane records what you tell it you take — a name, an amount as you state it, and whether it was logged. It never recommends, calculates or adjusts a dose, and the line about your stack on Today is a count only.
What does “confidence” mean here?
A word — High, Moderate, Low — with the five inputs behind it listed, never a percentage. Insights use five words of their own, from Strong signal to Not enough data, each with the counts it rests on.
What does a model write, and what does it never touch?
The decision, its label, its sentence, the Why rows and every number on the screen come from deterministic engines reading your own data. A model writes the morning brief and reads meal photos — and any text carrying a number Octane didn't supply is rejected. The providers are Anthropic and Google, under contract, and they don't train on your data.
Is my data private?
Octane doesn't sell your data, doesn't use ad networks, and ships no third-party analytics SDK. A shared card has no field for weight, HRV, medications or location. You can delete your account and everything in it from Settings at any time. Health data has its own policy: the Consumer Health Data Privacy Policy.
What's free, what's Pro, and what does it cost?
Free collects — connections, logging, workout numbers, the decision and its buttons, the check-in. Pro interprets — the Why, the session read, the morning after, the brief, the Stack response, the season — at $14.99/mo or $99.99/yr with a 14-day free trial. Founding is $69.99/yr.
What is a Founding Athlete?
One of the first 500 people building Octane with us: TestFlight first, a Founding Athlete number in the app, and everything in Pro at the founding price — locked in for as long as you stay subscribed. When the seats are gone, they're gone.
Is there an Android version, and when is it on the App Store?
No Android — Octane is iPhone only, iOS 18 and up. It's on the App Store now — free to download, with a 14-day Pro trial.
Is it medical advice?
No. Octane is not medical advice. Recovery signals come from consumer wearables, not medical devices. Octane tells you when something wasn't measured rather than guessing.
Your training data is fragmented. Your goals aren't.
Free to start. iPhone, iOS 18 and up.
Free on the App Store · 14-day Pro trial · iPhone, iOS 18+