Why We Avoided AI Coaching in Platepusher

Article ยท 4 min read

The coach feature already ships. We just refuse to call it intelligent.

A workout tracker can ship deterministic signal a lifter can re-derive, or a generative coach they can't audit. We picked the one that survives a year-5 lifter's skepticism.

The suggestion that never happened

A lifter on a 5/3/1 block finishes a grinding top set, opens the app, and reads a suggestion: deload next week, your bar speed is down. Reasonable on its face. Except there is no velocity tracker in the setup and no bar-speed field anywhere in the log. The number wasn't measured. It was generated.

That is the exact moment an AI coach stops being a feature and turns into a liability. The prescription might even be correct. Deloading after a hard cycle is rarely wrong. But once a lifter catches one invented input, every future suggestion carries the same asterisk, and the feature is finished no matter how good its next call is.

The re-derivation test

Every signal Platepusher shows passes one test: the lifter can re-derive it from their own log. Plateau detection flags the week a top set stops moving. A regression flag fires when working weight trends down across a cycle. Volume curves add up sets times reps times load. Hand a lifter a spreadsheet and an afternoon, and they can reproduce all three by hand.

AI coaching fails that test by construction. You cannot re-derive a prescription that came out of a model's weights, because the reasoning isn't in the log, it's in a black box you don't own. The signal we ship is an argument the lifter can check. A generated prescription is a claim they have to take on faith. For an audience that trusts its own numbers over anyone's marketing, that difference decides the whole product.

Deterministic signalAI prescription
Can the lifter re-derive it?Yes, from the raw logNo, it lives in model weights
Auditable against the record?Yes, the math is the recordNo source to audit
How does a wrong call surface?Loudly, the numbers are visibleQuietly, stated with confidence
Trust after one error?Recoverable, you see the inputOften permanent
Two ways a tracker can tell you something has changed.

Confidence is not competence

The dominant framing sells a chat window as a mentor. Bolt a model onto a workout log, give it a friendly name, let it answer questions about your training in fluent, certain sentences. The demo always lands, because the model is right often enough to feel like it knows.

What it actually is: a plausible-sentence generator that is correct often enough to be trusted and wrong often enough to burn that trust, with no way for the lifter to tell which sentence is which in the moment. Fluency reads as expertise until the day it invents a data point you know you never gave it.

Right often enough to be trusted, wrong often enough to burn it, with no way to tell which in the moment.

The reader has read the books

The people we build for are the worst possible audience for a hallucinated prescription. A year-5 lifter has worked through the 5/3/1 book, run GZCLP, and programmed at least one RP-style hypertrophy block. Collectively, this audience has internalized more programming literature than a general model reproduces correctly.

That is not a knock on the models. It's a mismatch of stakes. A casual user might never notice a slightly off deload recommendation. An advanced lifter reads it, spots the invented input or the contradiction with their own block, and files the whole feature under untrustworthy. Serious lifters fact-check by reflex. You do not get to earn that trust back with a patch note.

The trust math is asymmetric

A lifter who catches one invented input doesn't discount the next suggestion by ten percent. They stop trusting the feature entirely, and usually the app along with it. One caught hallucination costs more than a hundred correct calls earned.

What deterministic looks like in a real week

Take the same stall without the invented data. A lifter's top set holds at the same weight for three straight sessions. On the third, the plateau flag fires, because the log says the load stopped moving. That is all it claims. It does not diagnose fatigue it never measured or prescribe a percentage it made up.

What sits next to the flag is a one-tap template change: here are progression options that fit where you actually are. The lifter, who knows their own recovery, schedule, and how the last cycle felt, makes the call. The instrument surfaces the pattern. The lifter decides. Every step of that is visible in the record, so there is nothing to take on faith and nothing to catch lying.

The price only works if the model stays out of the loop

There is a second reason, and it is not editorial. The only paid model surface in Platepusher is the plan parser: paste a program as text, it structures it into the app. That call runs once, when you import.

A coach feature is the opposite shape. It runs a model on every session, for every lifter, forever. Lifetime pricing at $99.99 once assumes a bounded per-user cost. A per-session inference bill is unbounded and grows with exactly the users we most want to keep. The lifetime math breaks. Avoiding AI coaching is part of what lets the price stay a single honest number instead of a subscription that has to chase a cloud bill.

The output, without the costume

Here is the part that surprises people who expect an anti-technology screed. The thing lifters actually want from a coach, you've stalled, here is a change, already ships. Plateau call-out. Regression flag. One-tap template swap. The feature exists.

What we don't ship is the framing: the chat avatar, the word intelligent, the promise that a model understands your training better than you do. The ban on smart and AI coach and powered by AI in our copy isn't cosmetic. It's the guardrail that keeps the feature from drifting into claims it can't back with math. Recognition, not motivation. Signal you can check, not a personality that talks. The lifter stays the one who reads the numbers and decides.

See what the record shows. Log your next session in Platepusher and let the math flag the stall before the third stalled week does.

Platepusher's signal is math you can re-derive from your own log: plateau detection on consecutive top sets, regression flags across a cycle, volume curves you can sum by hand. No generated prescriptions, no invented inputs, one LLM surface (the plan parser) and nowhere else. Built for lifters who trust their numbers over anyone's chat window.