Your plan is not written by a chatbot. Here is what actually builds it.
Actus is an AI personal trainer app, but no chatbot writes the plan. A deterministic rules engine builds it, grounded in ACSM and NSCA guidelines. It reads what you log, builds the next block from it, and raises a weight only when your reps earn it. The Coach you chat with edits the plan. It does not write it.
Two versions of the same question reach me every week: "Is the plan just ChatGPT?" and "What is the AI actually doing?" Here is the straight answer: what the engine reads, what it changes, and what it never does.
In a meta-analysis of 15 studies, each additional weekly set per muscle group was associated with about 0.37% more muscle growth, a graded dose-response (Schoenfeld, Ogborn and Krieger, Journal of Sports Sciences, 2017, DOI 10.1080/02640414.2016.1210197). The current evidence synthesis is ACSM's 2026 position stand on resistance training, the first update in 17 years (DOI 10.1249/MSS.0000000000003897). The engine's targets are grounded in that work.
Who writes the program, a person, a model, or rules?
Rules. Every Actus session is generated by a deterministic engine: the same inputs always produce the same plan, and every pick traces back to a rule grounded in ACSM and NSCA guidelines and Schoenfeld's volume research. The language model is the Coach you talk to. It explains the plan and edits it when you confirm. It does not author it.
Why not let a model write it? Because a model is fluent and incomplete at the same time. In a 2024 JMIR Medical Education study, ChatGPT's exercise advice was accurate 90.7% of the time but comprehensive only 41.2% of the time when scored against ACSM guidelines (Zaleski et al., DOI 10.2196/51308). A plan you follow for months has to be complete every week and give the same answer to the same situation. Rules do that. A model does not.
Most established training apps make the same split: rule-based programming, language models for conversation. In Actus the engine picks the sessions, exercises, sets, reps and weights; when a block changes, a model may write the short explanation you read, from the engine's own facts. The words can come from a model. The change never does.
What does the engine read about you?
At sign-up it reads your goal, experience level, training days per week, the equipment you have, your age, sex and body weight, strength baselines if you know them, and any injury areas. From then on it reads every set you log, the sessions you skip, the pain you report, and how long you have been away.
Each input has one job. Training days pick the split, so a four-day week spaces the two leg days apart for recovery. Your goal sets the loading of every slot: sets, rep ranges and rest differ between strength, muscle gain, fat loss, endurance and general health. Equipment and injury areas filter which exercises can be considered, and injury areas also lower the working weight on exercises that stress the area.
Two honest notes. Session length is not an input: the engine builds the session from the sets your goal calls for and shows the estimated duration. And a beginner gets no guessed weight at the start: you work by effort, log what you lifted, then it uses your numbers.
How does it choose exercises for a session?
Each session is a template of slots, and every slot demands a movement pattern: a squat, a hinge, a horizontal push, a vertical pull. That pattern is a hard rule that is never relaxed. Inside it, the candidates that fit your equipment and injury areas are scored on several factors at once, and the best-ranked exercise takes the slot.
The factors are the ones a good coach weighs: how well the exercise hits the muscle area the slot targets, upper chest rather than just chest; whether it is a big, loadable compound lift, which matters most for the first and heaviest slot; how much variety it adds to the muscles already covered; the balance between two-sided and single-sided work; and, for support work, how much the equipment guides the movement, which is why a machine often wins a support slot while a barbell wins the first one.
Your goal changes how much each factor counts: strength leans toward heavy multi-joint lifts you can keep loading, muscle gain toward precise area targeting and variety, fat loss toward metabolically demanding compound movements. Selection runs slot by slot, and each pick changes the scores for the next, so a session does not repeat the same base movement with different equipment.
Swap an exercise through the Coach and it gets a preference next time. Keep reporting pain on one exercise and it is excluded. When your equipment list is thin, the engine widens the search rather than leaving a slot empty.
How does the weight for each set get chosen?
From your last set. When a new block is built, the engine takes the heaviest working set you logged for each exercise and applies one of three outcomes: hold it, raise it by a small step, or cap it below your last weight for a deload, a rebuild, or a return after time away. Every increase is labeled, never silent.
The increase is earned per exercise. The rule is the old 2-for-2 convention: hit the top of your rep range on every set, do it two sessions in a row, report no pain, and the next block moves that weight up one step, rounded to real plates. Fall short and the weight holds. A cap always wins over an increase: a deload or a return from a break can never be out-bumped by a good week.
A new exercise with no history borrows a weight from a related exercise you have logged, then falls back to your strength baselines. After time away you come back lighter, and after a long break the engine does not hand you a stale number from months ago. Deloads are on a schedule: at the end of each training cycle, or forced if you have gone too long without one.
What changes week to week, and why?
Your plan runs in short blocks of one to two weeks. At the end of each block the engine reads the sets you logged, the reps you hit, the sessions you skipped and the pain you reported, then builds the next one: a normal block, a rebuild, a scheduled deload, or a lighter return after time away.
Reps falling short across several exercises, or far fewer sets completed than planned, means a rebuild: lighter, so you can finish it. Top of your ranges with no pain and no skipped sessions means weights go up. The cycle reaching its deload week, or too many weeks without one, means a deload whatever the logs say. Two weeks away means the return path: a lighter block rather than the numbers you left.
Some changes do not wait for the block to end. Pain on the same exercise session after session takes that exercise out and rebuilds the block now. Changing your training days, your gym or your equipment list regenerates the plan.
A missed day does not reset anything. The plan keeps its order, the missed session is still there to pick up, and the skip is a signal for the next block. Every change comes with its reasons, shown to you or offered as a preview you approve or reject first; ask the Coach why and it quotes the same reasons.
What does the Coach do, and what does it never do?
The Coach is the chat inside Actus. It reads your plan, your history and your progress, answers questions, and makes changes: swap an exercise, change sets, reps or weight, reorder sessions, change your training days. Every change is previewed in plain words, and nothing is written until you confirm. It never diagnoses, and it never gives medical advice.
Preview, confirm, commit. Ask for a swap and the Coach describes the change and waits for a yes; only then does it write, and it can undo the last change if you ask. It uses the same checked path as the app's own buttons, so it cannot do anything the app cannot.
It will not diagnose; it describes what to watch for and points you to a professional. Sharp or radiating pain, a suspected tear or sprain, numbness: it sends you to a physio or sports-medicine doctor rather than proposing exercises or loads. It will not recommend unregulated supplements. And it records what you told it for the next block.
What does the engine not know?
It knows what you log and what you tell it, nothing else. It does not read sleep, heart-rate variability or a recovery score from a watch or ring. It cannot see your form. It does not yet flag a stalled lift on its own. It runs on iPhone, Apple Watch and the web, in English and Brazilian Portuguese.
- Recovery data. Actus writes your finished workout to Apple Health and reads your body weight from it, nothing else. Everything it knows about your recovery comes from your logs.
- Plateaus. It raises a weight when your reps earn it and holds it when they do not. It does not yet notice on its own that a lift has been stuck for a month; if one has, tell the Coach.
- Form. It cannot watch you lift; the plan is only as good as the sets you log.
- Platform and language. iPhone, Apple Watch, the web at actusapp.io, Mac with Apple silicon. English and Brazilian Portuguese.
Common questions
Is the workout plan made by ChatGPT? No. A deterministic rules engine grounded in ACSM and NSCA guidelines generates it. A language model powers the Coach chat and may write the explanation of a change from the engine's facts. It never picks your exercises, sets, reps or weights.
Does Actus do progressive overload for me automatically? Yes, per exercise. Hit the top of your rep range on every set two sessions in a row with no pain, and the next block raises that weight one step. Fall short and it holds. Deloads arrive on schedule, and a deload always beats an increase.
Does the app tell me what weight to lift? Yes. Each set carries a target weight taken from your last logged working set and adjusted by the block you are in. Beginners start by effort. You can override any weight, and the override is kept.
What happens if I miss a week? Nothing resets. The plan keeps its order and the missed sessions are still there to pick up. After two weeks away, the engine builds a lighter return block.
Can I change the plan myself? Yes. Swap an exercise in the app, or ask the Coach to swap, add, remove or reorder exercises, or change sets, reps and weights. It previews every change and writes nothing until you confirm.
Is Actus free? Free to start: the full plan, three completed workouts and ten Coach messages. Premium is $9.99 a month or $79.99 a year (R$59,90 or R$499,90 in Brazil).
About the author
Pedro Rodrigues is the founder of Actus and has been training since 2014. By day he is Operations Director and the AI Innovation lead at Monks. He built the engine rules-first because he works with language models all day and knows what they leave out. Connect with him on LinkedIn.
This article is for educational purposes and does not constitute medical or clinical advice. Strength training carries injury risk. Stop if you feel pain and consult a physician before starting any new exercise programme.
If you want a plan that is already adjusted when you walk in, built from your own logged sets, get Actus on the App Store.