Which app works out your split from what you log?
You already train a split. You do not want an app to write you a different program, and you do not want to rebuild your routine by hand inside yet another tracker. So the question is narrower than it looks: can an app work out what you actually do from what you log, and then tell you what is next? SayLift answers it in two places. The Today page picks your next session from the rotation it reads in your history, and a card on the Profile tab names the split and rep style it sees in your recent workouts.
Updated October 2026
The short answer
Judged on one thing: where the app gets your next session from when you never entered a program.
- SayLift, $4.17 a month (billed $49.99 a year): reads which workout family follows which across your logged sessions and names the next one. A tappable "Why this session?" tells you the reason.
- Fitbod, $79.99 a year: no learning needed, because it writes the session itself. You get the plan and give up the choice of what you train.
- Alpha Progression, $79.99 a year: plans the block in advance. The best option if you want programming rather than a read of your own habits.
- Hevy ($23.99/yr) and Strong ($29.99/yr): excellent loggers. You build the routines, you pick which one to open today.
- JEFIT Elite, $69.99 a year: deep history and analytics, with the day and the load both left to you.
- Nothing here designs your week for you from your logs. Reading a rotation back to you is a smaller job than programming, and it is the job most lifters with their own split actually want done.
SayLift logs your whole workout from one spoken sentence. iPhone only, 873 exercises built in, 3 days free then $4.17 a month, billed $49.99 a year.
Start the free trialWhere each app gets your next session from
| Needs a program entered | Learns your rotation | Explains the choice | Names the weight | Price per year | |
|---|---|---|---|---|---|
| SayLift | Optional, only to override | Yes, from your logged sessions | Yes, "Why this session?" | Yes, per exercise | $4.17/mo billed yearly ($49.99) after a 3-day trial |
| Fitbod | No | No, it generates the session | Not documented | Yes | $79.99 |
| Alpha Progression | It writes the plan for you | No, it plans ahead instead | Yes, from the plan it wrote | Yes | $79.99 |
| JEFIT | Yes | No | No | No | $69.99 |
| Hevy | Yes, you build routines | No | No | No, shows last session | $23.99 |
| Strong | Yes, you build routines | No | No | No, shows last session | $29.99 |
| Liftoff | Yes | No | No | No | $39.99–$79.99 |
How the Today page picks your next session
Three things can decide what SayLift puts in front of you, and they are tried in a fixed order.
A routine you built on the Profile tab wins over everything. If you told the app what you train, that is a statement of intent, not a guess, so nothing overrules it. Then, while your log is still thin, a built-in program day. Then your own learned rotation, as soon as there is enough logged history to read one.
You are never left guessing which of the three you got, because the overline above the session name says so. "YOUR PROGRAM · DAY 1 OF 3" means you are on the built-in program. "NEXT FROM YOUR HISTORY" means your own rotation is now leading. "STARTER SUGGESTION" means there is nothing to read yet. Once you have already trained today it leads with NEXT instead, so you see "NEXT · FROM YOUR HISTORY" or "NEXT · DAY 2 OF 3".
Next to the overline sits a tappable "Why this session?", and it gives you the actual reason rather than a reassurance. One you will see often: "This workout family has the fewest sessions in your last 7 days. Ties go to the family trained longest ago." That is the whole rule, in the app, where you can check it.
How the rotation gets learned. It reads which workout family follows which across your logged sessions, and recent repetitions count for more than old ones. Then it balances before it sequences: the family with the fewest sessions in the last seven days goes next, and an older last-trained date breaks a tie. So if you skipped legs for ten days, legs comes up, whatever your usual order was.
The built-in program retires itself the moment your own rotation appears. You do not switch anything off.
What it refuses to do, which is the part worth trusting
A system that guesses can always produce an answer. This one would rather say it does not know.
It never invents a body-part pairing. Every exercise in a history-backed session came out of your own logged sessions, so you will not open the app and find chest and calves put together because some template says they go together.
With one known workout day it replays that day and tells you why: "This is your only recognised workout day so far. Log a few sessions and the app will learn your rotation." One day is not a rotation, and it does not pretend otherwise. The same goes for a single legs day: "This repeats your only recognised legs workout. Add more logged days and the rotation will become specific."
When a logged session has too little exercise detail to learn from safely, it repeats your latest session and names that as the reason. And before a companion muscle gets added back to a short log, it has to show up in at least two of the last three sessions of that family. A one-off does not become a rule.
The card that reads your split back to you
On the Profile tab there is a card headed HOW YOU TRAIN. It reads roughly your last six weeks, up to ten sessions, and gives you one label made of an intent plus a split. "Hypertrophy · Push / Pull" is a typical one.
The intent comes from your rep ranges: Hypertrophy for 6 to 12, Strength for 1 to 5. The split is one of Full Body, Push / Pull, Upper / Lower, Upper Body or Lower Body, or General when there is not enough signal to call it. Under the label are two chips, one for how many sessions it read ("Last 7 workouts") and one for roughly how many days a week you train, plus a line saying how settled the read is.
The six-week window is the point. Older sessions drop out, so the label follows what you are doing now rather than what you were doing in March. Change from full body to an upper/lower split and the card follows you within a few weeks, with no setting to update. Before there is enough history it simply says "Log a few workouts".
It is a small card and it does something useful: it shows you what your training looks like from the outside. Plenty of people find out this way that the split they describe to friends and the split in their log are not quite the same thing.
Once it knows the session, it names the weights
Picking the day is only half of the question you have in the gym. The other half is what goes on the bar.
Every exercise in that session arrives with one action and a working weight read from your own logged sets: increase, hold, decrease, deload, restart or calibrate. "You hit 12 reps at 60 kg, time to go up." The maths runs on the phone, so the targets are there in a basement with no signal. Full detail on that side of it is here: workout apps that decide your next working weight.
Put the two together and the loop is short. You open the app, the session is chosen, each row has a number, and you train.
This describes your training, it does not prescribe it
Worth being clear about, because the two get sold as the same thing.
SayLift reads your split and keeps your rotation moving. It does not design a program, balance your weekly volume across muscle groups, or periodise a block. If your split has a hole in it, the app will happily rotate you around the hole, because its job is to describe what you do, not to correct it.
Fitbod takes the opposite trade: it generates the session for you, so it never needs to learn your split, and you give up the choice of what you train. Alpha Progression plans the block in advance, which is real programming and the better $79.99 a year if that is what you are after. SayLift is for the lifter who already decided how they train and wants the admin gone.
If you would rather spell your routine out instead of having it inferred, that is a different page and a fair choice: which workout app lets me build my own routine?. You can also do both, since a routine you build on the Profile tab overrides the learned rotation.
Worth knowing before you pay. SayLift is iPhone only (iOS 17+), with no Android, iPad, Apple Watch or web version. There is no free tier under the 3-day trial, and no Apple Health sync. Supersets are not grouped, so a pairing goes in as a note. The app is new and has no App Store ratings yet, which is a reason to use the trial rather than take our word for it.
How to set it up in SayLift
- Install SayLift and log three or four sessions the way you normally train. Type them or say them out loud. The rotation has nothing to read until your own sessions are in there.
- Open the Today tab and read the overline above the session name. "STARTER SUGGESTION" or "YOUR PROGRAM · DAY 1 OF 3" means it is still on the built-in days. "NEXT FROM YOUR HISTORY" means your own rotation has taken over.
- Tap "Why this session?" and read the reason. If it says the family has the fewest sessions in your last 7 days, it is balancing your week. If it says this is your only recognised workout day, log a couple more and check again.
- Go to the Profile tab and look at the HOW YOU TRAIN card. Confirm the split and the intent match how you would describe your own training. If it says General, your sessions are mixed enough that there is no clear pattern to read yet.
- If you want to override the whole thing, build a routine on the Profile tab. A routine you set yourself beats both the learned rotation and the built-in program, and the Today page follows it from then on.
- Keep logging. The window is roughly six weeks, so when you change split the labels and the rotation follow you without any setting to change.
Who SayLift is for
- You run your own split and want the app to keep up: this is the case the Today page and the HOW YOU TRAIN card were built for.
- You hate maintaining routines: log the sessions, read the rotation back. Nothing to keep in sync.
- You want the reason, not just the answer: "Why this session?" states the rule it used, in one line.
- You want your weekly volume programmed: this is not that app. Alpha Progression at $79.99 a year plans the block properly.
- You want the session written for you: Fitbod generates it, and you stop choosing the exercises.
- You would rather type the routine out yourself: Hevy at $23.99 a year is the cheapest good way to do that, and SayLift lets you build one too.
- You are on Android, iPad or Apple Watch: SayLift is iPhone only. Hevy, Strong or Fitbod instead.
Frequently asked questions
Is there a workout app that learns my split?
SayLift does, on iPhone. It reads which workout family follows which across your logged sessions, weights recent repetitions more heavily, and picks your next day from that. A separate card on the Profile tab reads roughly your last six weeks and names the split and rep style it sees, for example "Hypertrophy · Push / Pull". Most trackers do not attempt this: in Hevy, Strong and JEFIT you build the routines and choose which one to open. Fitbod skips the problem by generating the session itself.
Can an app tell me what to train today based on my history?
Yes. SayLift's Today page names the next session and the overline tells you where it came from, either "NEXT FROM YOUR HISTORY" for your own learned rotation or "YOUR PROGRAM · DAY 1 OF 3" while it is still on a built-in program. The rule it uses is to pick the workout family with the fewest sessions in your last seven days, breaking ties by whichever was trained longest ago. You can tap "Why this session?" to read that reason in the app. A routine you build yourself on the Profile tab overrides all of it.
Does SayLift write my program for me?
No, and that is deliberate. It reads the split you already train and keeps the rotation moving, so it never designs a program, balances your weekly volume or periodises a block. If your split has a gap, SayLift will rotate you around the gap rather than fix it. For actual programming, Alpha Progression plans the block in advance at $79.99 a year, and Fitbod generates each session at the same price. SayLift is $4.17 a month (billed $49.99 a year) and assumes you brought your own plan.
What happens before the app has enough history to learn from?
It follows a built-in starter program and says so, with "YOUR PROGRAM · DAY 1 OF 3" above the session name and a tappable explanation beside it. The built-in program retires itself as soon as your own rotation appears, so there is nothing to turn off. If it only recognises one workout day, it replays that day and tells you plainly: "This is your only recognised workout day so far. Log a few sessions and the app will learn your rotation." The Profile card says "Log a few workouts" until there is enough to read.
Will it invent a workout I have never done?
No. Every exercise in a history-backed session came from your own logged sessions, so the app will not pair body parts it has never seen you pair. A companion muscle has to appear in at least two of the last three sessions of that family before it is added back to a short log, which stops a one-off from becoming a rule. When a log does not carry enough exercise detail to learn from safely, SayLift repeats your latest session and names that as the reason instead of guessing.
I changed my split. How long until the app catches up?
A few weeks. The HOW YOU TRAIN card reads roughly your last six weeks, up to ten sessions, and older sessions drop out of that window, so the label follows what you are doing now. The Today page moves faster, because its balancing rule only looks at your last seven days. Neither has a setting to update. If you want the change to apply immediately, build a routine on the Profile tab and the Today page follows it from the next session.
Stop typing between sets
Say what you lifted. SayLift writes down every set, rep and weight, then tells you what to lift next time. iPhone only, 3 days free then $4.17 a month, billed $49.99 a year.
Download on the App StoreReading this on a laptop? Scan to install.