Sign in

Every step, explained.

Most lifting apps draw you a chart. This one tells you why.

Gradus reads the sets you actually logged and prescribes the next session from them — the weight, the rep range, the movement. Then it says why it chose each one, in a sentence, before you lift. Not a number you have to trust.

Works in a browser, on the phone in your pocket at the gym.

What it actually says

Three things it puts on screen

These are not mock-ups of a future feature. They are the wording the app produces today, from the same code that runs in a session.

Today’s session

Lower body

Legs and posterior chain — building on last week.

Back Squat102.5 kg · 3 × 5
Why this

Up 2.5 kg to 102.5 kg — last session came in easier than the target effort, so there was more in the tank.

Trending up
Romanian Deadlift60 kg · 3 × 8
Why this

Holding 60 kg — last session came up short of the rep target, so let’s own this one first.

It adds weight when you have earned it and holds when you have not — and it never leaves you guessing which one just happened. The same engine schedules a deload before you stall, and names the movement to regress or advance to when a lift stops moving.

Energy cost

This session
410–480kcalWide estimate

Where it went

Moving the load
180–210 kcal
Ticking over while you trained
155–190 kcal
Afterburn
75–85 kcal

Your bodyweight is not on file, so the estimate had to span a whole population — and that alone is most of the width here.

Computed from the load on the bar and the distance it travelled, rep by rep — not from a table that says “weight training, 45 minutes”. It is a range because that is what the arithmetic supports, and the app tells you which missing fact made the range as wide as it is.

Bench Press — 100 kg

Strength goal

Not enough logged yet

Fitted from 3 sessions over 4 weeks so far — too thin to put a window of dates on. Keep logging and this fills in.

Estimated max
84 kg
Target
100 kg
Observed rate
+0.6 kg/wk so far

This is the feature we are proudest of, and it is the one that says the least. Three sessions is a slope, but it is not a slope worth putting a date on — so no date is given. When your trend is flat, or falling, or would not reach the target at all, it says that instead of inventing a Tuesday in March.

And while you lift

It stays with you for the whole hour

The reasoning does not stop once the session is prescribed. Same rule as above: every sentence here is the app’s own current wording, not copy written for this page.

Mid-session

Logging screen

Superset with Incline Dumbbell Press. Finish a set, then head straight over — the rest comes after the pair.

All sets done. Next up: Romanian Deadlift.

Pair two movements and the app runs them as one unit: a button walks you between the halves, and the rest timer fires once, after the pair — not mid-superset. Tick the last set anywhere and it names where to walk next. Drop sets log as their own rows, and deleting anything gives you a few seconds to undo instead of a pop-up asking if you are sure.

Eat to match your training

Daily target

Training for strength with 3 sessions this week: maintenance to a small surplus — strength is built by the training, the food just has to not get in its way.

Daily target
2,450–2,700 kcal
Protein
120–165 g/day

A food tracker cannot know what your training block is doing; this target is derived from it — your stated goal, the sessions you actually logged this week, and whether the schedule says this is the light week, in which case it holds you at maintenance and says so. Bands, never single numbers, for the same reason as the calories above.

Personal record
Bench Press
102.5 kg
Estimated one-rep max
Previous best 100 kg
GRADUSThe coach that shows its work.

Set a record and one tap turns it into an image for the group chat. The card is composed from the same record feed the progress page shows, so it can never claim a number the feed would not — and the previous best rides along, because that is what turns a number into a story.

How it is built

Six decisions behind all of it

  • Every prescription explains itself

    Every weight the coach prescribes arrives with the reason it chose that weight. The reasoning is produced as structured data and turned into a sentence, so the explanation cannot drift away from the decision it describes.

  • Nothing about your training is sent anywhere

    The coaching engine is arithmetic over the sessions you already logged, running inside this application. No external model, no third-party API key, no request to anyone else’s service when a workout is generated.

  • No per-user cost to pass on

    Because there is no model API behind the coach, generating a session costs nothing per person. That is a fact about how it is built, and it is why the coaching is not something that has to be metered.

  • It refuses false precision

    Calories are a range, never a single number. A goal gets a date only when the fit can carry one. Leave out your height or your age and the estimate widens and says so, rather than quietly substituting an average.

  • It asks how you are — and is honest about how little that changes

    Before a session: sleep, soreness, energy. Three taps, three options each, no questionnaire. On a rough day the coach holds the weight and takes a set off — it never makes anything lighter than last session, and it tells you that is the limit rather than implying it read your soul.

  • No blank page, ever

    A new account gets a quick-start wizard: what you are training for, what you have to train with, and a first session is built — with its reasoning attached. From then on the app opens straight onto whatever is most underway: the workout you are mid-way through, today’s planned session, or a clean start.

Log a session and see what it says

The coach has nothing to go on until you give it something. The quick-start wizard turns a few taps into a planned first session, and one logged session is enough for it to start reasoning out loud.

Gradus is a training log and a coaching aid. It is not a medical device and it does not give medical advice.