The BBB Method/Engine pinned to v0.5.2

A coaching engine,
not a calendar.

Most programs schedule exercises. The Built By Ben system schedules adaptations — then derives the exact session from who you are and how recovered you are today. Deterministic, auditable, and personalized without ever guessing. Heavy is earned, never random.

Act IThe why

It starts with a problem worth solving

Every number the engine produces traces back to these first principles. Read this before anything mechanical.

The problem

“Most people in the gym are not building muscle. They are moving weight.”

Real effort, visible work, the numbers going up — and zero physique change. That failure pattern is what the methodology exists to break. The fix isn't a harder program; it's a truer one. Intelligent execution creates superior hypertrophy— two lifters can move the same load for the same reps and walk away with completely different adaptations. The difference isn't luck or genetics. It's execution.

The fixed order

The goal hierarchy never moves

Every decision the engine makes is subordinate to this order. Strength is chased only because it unlocks future muscle — and nothing is chased past the line that risks injury.

  1. 1
    Prevent injury

    Goal #1, non-negotiable. Every rep-scheme ceiling is this rule made concrete.

  2. 2
    Build muscle

    The primary objective. Tension delivered to the target, set after set.

  3. 3
    Increase strength

    Not the goal — the lever. More strength unlocks more future tension.

  4. 4
    Validate via testing

    Heavy is a benchmark, not a habit. Tests confirm progress; they don't drive it.

The engineering layer

Seven load-bearing principles

Remove any one and the system stops being deterministic. Together they turn a coach's judgment into a state machine — the same logic, every client, every session.

01
Input-driven outputs

Every choice — split, volume, exercise, variant — is a direct consequence of an input. Same profile + same readiness → same session, for any coach.

02
Constraint before optimization

Eliminate what isn't possible first, then choose the best of what remains. Age, recovery, injury are gates, not preferences.

03
Structure before detail

The 8-slot day shape is defined before any volume, intensity, or exercise. The skeleton comes first; the work fills it.

04
Volume is a scaling mechanism

Volume isn't sets and reps — it's a scaling factor on a baseline. Final workout = baseline × volume %.

05
Distribution is its own axis

Two clients with identical volume can execute completely differently — concentrated, balanced, or distributed across the rep range.

06
Rotation without drift

Variants refresh the stimulus on a 4-week cycle while the session shape stays constant. Locked slots keep the named rules intact.

07
Adaptation is the target

The session schedules a physiological outcome; the exercise is the instrument that produces it. Readiness modulates execution within the day's adaptation.

The reframe

“Most programs schedule exercises. The Built By Ben system schedules adaptations.
A workout app

Stores a plan and plays it back. The same printout regardless of who you are or how recovered you are today.

A coaching engine

Maintains a model of the athlete and derives the session from it. The adaptation is the target; the exercise is merely the tool that produces it.

Act IIThe build

How a single session gets assembled

From a ~22-field intake to a per-set session card — twelve stages, each producing something concrete. Below, the same sample client runs through the live engine, so the numbers are real.

Client profile in━━━━━━━5 phases · 12 stages━━━━━━━Rendered session out

stage number = methodology · “runs Nth” chip = actual execution order

Phase 1 of 5

Intake

Tell us who the client is.

Stage0
Inputs

~22-field client profile, validated end-to-end.

Example out
Sample client · 32 · 185 lb · intermediate · PPL · 3→4 days/wk · build muscle
Phase 2 of 5

Read the client

Figure out where they are physically + where they're heading.

Stage1
Derive

Body comp, energy, volume scalar, where they are in the phase cycle.

Example out
BMI 26.5 · TDEE 2,782 cal · AdjVol 0.88 · Phase: Base
Stage2
Align

Match the goal × experience to the right rep scheme.

Example out
Direct alignment · rep source: Hypertrophy
Stage3
Split

Pick the training split — honor the client's preference if it fits the frequency.

Example out
PPL chosen · valid for 4 days/wk · preference honored
Phase 3 of 5

Set the week

What training shape fits today.

Stage4
Focusruns 5th

Pick today's focus from 19 internal IDs × 4 variant rotations = 76 structures.

Example out
Today: Push · variant A · primary: Chest, Front Delts, Triceps
Stage5
Budgetruns 6th

Per-muscle monthly volume target driven by AdjVol + frequency.

Example out
Chest 14 sets/mo · Quads 12 · Shoulders 8 · Calves 6 ...
Stage6
Activeruns 7th

How many slots actually fire today — clamp(4, 8).

Example out
4 active slots · from the monthly volume total
Phase 4 of 5

Pick the work

Which exercises actually fire today, and what comes next.

Stage7
Selectruns 8th

Cluster lookup → equipment + admin exclusion filter (D62) → variant filter → ordinal pick → coach override.

Example out
Bench Press · Incline DB Press · Cable Fly · Lateral Raise · ...
Stage8
Cycleruns 4th

Rotate the focus across sessions; the variant advances A → B → C → D each cycle.

Example out
Next: Pull · variant A · cycle position 1
Phase 5 of 5

Build the session

Sets, reps, loads — what the client actually sees.

Stage9
Sets

Allocate working sets per slot via D13 / D17 / D22 rules.

Example out
Bench 5×6 · Incline DB 4×8 · Fly 3×12 · LR 3×12-15 · ...
loops
Stage11
Memoryruns 12th

Accumulate effective sets per muscle; advance the phase when ready.

Example out
Chest +12 effective sets · advance Chest to Peak next week
Stage12
Renderruns 11th

Final session card — set-by-set table, totals, per-muscle accumulator.

Example out
24 working sets · 38.5 session difficulty · ready for client
Feedback loop

Stage 11 (Memory) feeds Phase 2 on the next session. Phase advances automatically when every muscle hits its weekly minimum — Base → Build → Peak → Deload.

What goes in

The 21-field client profile

One real intake — the canonical sample client from lib/engine/fixtures/sample-client.ts. Every downstream stage reads from this shape; the schema doubles as the contract for the subscriber-facing intake form.

Personal
name
Sample Client
age
32
sex
Male
height
5′ 10″
weight
185 lb
body fat
18%
Fitness profile
experience
Intermediate
current freq
3/wk
goal freq
4/wk
goal
Build Muscle
split
Push/Pull/Legs
Priorities
weak 1
Back
weak 2
Quads
strong
Chest
Lifestyle
activity
Moderate
nutrition phase
Maintenance
Leg emphasis
legEmphasis
Both
Calendar
mode
FallWhereTheyFall
static days
Optional 1RMs
squat
bench
deadlift
Preference flag
biceps_double_iso
false
Plus three constraint domains (D62)

What Ben knows about this client

The engine doesn't try to model coaching judgment. It accepts structured constraints from Ben + the client and applies them at Stage 7 Step 0c.

Domain 1

Equipment availability

Tier preset (bodyweight_only / home_gym / apartment_gym / commercial_gym) + per-implement overrides + quantitative caps (max DB lbs, max plate inventory).

Domain 2

Admin exclusions

Per-client list of exercise IDs to drop from the candidate pool. Set by Ben on the onboarding Zoom (injuries, preferences, equipment edge cases collapsed into structured decisions).

Domain 3

Free-text intake notes

Client's own words. Collapses into Domain 2 via Ben's judgment — Ben IS the rules engine for coaching nuance. The engine never parses free text.

What comes out

Engine output for the same client

All values below are computed live by runPipeline() against the sample client. Refresh and the page re-runs the full 12-stage pipeline — no fixtures, no drift.

Stage 1 · Derived profile
BMI26.5Overweight
BF classBalanced
BMR1795cal/day
TDEE2782cal/day
AdjVol0.879scalar
DistributionBalanced
PhaseBasecycle 1
Phase progress0%
Age cap0.925
Exp mod1.00
Start %0.95
Nut mult1.00
Stages 4-12 · Today's prescriptioncycle pos 1 · variant A
Push(4 active slots)
1Barbell Bench Pressbig-3
4 working sets
2Machine Shoulder Press
3 working sets
3High-to-Low Cable Fly
5 working sets
4Cable Lateral Raise
4 working sets
+ 1 more slots in the rendered session
Working sets
19
Effective sets
20.0
Session difficulty
1840.0
Working difficulty
1510.0
Act IIIThe enhancements

Then it adapts — to you, today

A fixed plan is only half the system. The other half reads how recovered you are, speaks in your real weights, and earns every heavy day. This is what's new since this page was last written.

Enhancement 01 · live

Readiness — heavy is earned, not scheduled

Before a session, the client answers seven typed questions. The engine reads them as a recovery state and flexes today's session to protect the athlete — it can only ever make a day easier or equal, never a surprise harder.

SleepSorenessEnergyStressJointsIllnessNutrition→ one band

The reading is the worst signal, never the average. Eight hours of sleep and a flaring elbow isn't “average-ready” — it's joint-limited. The engine prescribes to the limit, not the mean. Averaging would hide the one thing that actually governs the session.

GREEN
Run as planned

The macro session, byte-for-byte. The only path to a heavier-than-planned day — a readiness-gated test — also lives here.

AMBER
One category lighter

Step one rung down the adaptation spectrum — Strength (5×5) becomes Strength-Hypertrophy (4×8). Same muscle, the near-maximal top set removed. No max.

RED
A recovery session

2–3 × 12–20, machine / light-DB bias, joint-friendly. Active rest that keeps the movement quality — and the macro phase clock does not advance.

the joint flag is a hard gate

Most inputs bias the day. A joint flag gates it: a sore knee removes the barbell squat and substitutes a joint-friendlier movement. A sore shoulder pulls the barbell bench. Injury prevention — goal #1 — expressed as a stop signal, not a dial.

the never-harder guarantee

Readiness can only ever protect. A downgrade is machine-checked to be ≤ the planned session across working sets, effective volume, the heavy top set, and load — on every split. A surprise harder day is impossible by construction.

Enhancement 02 · live

Real pounds — the engine speaks in your weights

The methodology prescribes only relative load. A separate layer turns that into the actual number on the bar — learned from your logs, pushed only when you earn it.

best signal first
  1. 1
    Your logged e1RM

    The durable signal — an estimated 1-rep-max from your own recent sets (Epley: weight × (1 + reps/30)). It drifts up automatically as you log heavier.

  2. 2
    Your stated 1RM

    A cold-start seed for the Big-3 from intake, used until a real set is logged.

  3. 3
    A bodyweight estimate

    For a lift you've never logged — a sane first guess, scaled to your bodyweight. The moment you log a real set, it's never consulted again.

the double-progression ratchet

Finish the reps with reserve(RPE ≤ 8)? The load steps up next time — a barbell to the next plate, a machine up a stack rung. Grind it out, or fall short, and it holds. It only ever adds — never a weight you didn't earn.

the bar-floor

The lightest a barbell set can ever be is the empty bar — 45 lb, a physical constant. The bar is the bar whether you bench 135 or 315.

Enhancement 03 · live

The feel set is the bar

The opening set of a compound isn't a different exercise — it's the lift itself, run light, to wake up the target muscle before any real weight moves. Keyed to each new movement pattern, not each muscle.

a bench ramp
  • 45 × 20feel set — empty bar, slow, squeeze
  • 95 × 12warm-up 1
  • 165 × 8warm-up 2
  • 225 × 4warm-up 3
  • 245 → 275working sets

A warm-up grooves the movement and primes the joints on the way to working weight. A feel setwakes the target muscle — 20+ controlled reps, a 1–2 second peak squeeze every rep, full attention on the contraction. On a barbell they share the same weight; they don't share the same job.

A bench earns a feel set. A barbell row — a different motion — earns its own, even when your back is already warm from pulldowns. The squeeze you connect to is specific to the movement, not the muscle.

Act IVThe depth

Intelligence behind every exercise

Why this lift, in this slot, at this intensity — the rotation, the ranks, the named rules, and the spectrum the whole year arcs across.

Rotation without drift

Variety isn't randomness — they aren't the same thing

Every focus ships as four variants. Across a 4-week cycle the session shape, volume, and structure stay identical — only the exercise inside each slot rotates. Same slot, same muscle, same rank, different stimulus. Fully auditable; never random.

Push · slot 4 · side delts · across the cycle
ADB Lateral Raise
BCable Lateral Raise
CPlate-Loaded Lateral Raise
DMachine Lateral Raise

Every lift has a rank

Five tiers, one stimulus weight each

A heavy compound stresses the muscle more per set than an isolation. One set of Bench counts as 2.0 toward weekly volume; a cable fly counts as 0.75.

2.0×
1 · Primary Compound
Bench · Squat · RDL · Deadlift · BB Row · OHP
1.5×
2 · Secondary Compound
Incline DB · DB Bench · Dip · Close-Grip Bench
1.0×
3 · Machine Press / Pull
Machine Press · Lat Pulldown · Cable Row · Leg Press
0.75×
4 · Isolation
Fly · Lateral Raise · Curl · Pushdown · Leg Ext · Hip Thrust
0.5×
5 · Accessory
Pull-Up · Face Pull · Forearm Curl · Crunch

The named rules

Gym-floor wisdom, encoded as locked slots

Certain positions carry a rule that never rotates — the staples that drive long-term progression, protected across all four variants.

  • Bench opens PushThe headline lift, slot 1, locked — every Push day, every variant.
  • Lateral raise every PushSide delts only grow from direct work. Four sets, always on.
  • Chest fly is mandatoryEvery chest day needs one movement that's purely about feeling the chest contract.
  • Lat opens PullYou don't load a back you haven't activated. Pull never opens with a barbell.
  • Arms always lastVanity work at the end — curl first and you steal stimulus from the compounds.
  • No squat + deadlift same dayThe two most fatigue-expensive lifts share one weekly budget. Never stacked.

Intensity, organized

Five adaptations on one spectrum — and a yearly arc across it

The macro plan schedules outcomes, not lifts. Clients live mostly in the middle — Strength-Hypertrophy and Hypertrophy — and the phase arc shifts the emphasis over weeks. Readiness then steps a given day down this same spectrum to protect.

Recovery
joint-friendly pumps
Hypertrophy
high volume
Strength-Hyp
most of the year
Strength
heavy, neural
Performance
max, sparingly
light · joint-friendlymax load · max neural cost
1Base
5-rep top set
Hypertrophy + Strength-Hyp
2Build
3-rep top set
Strength-Hyp + Strength
3Peak
1-rep top set
Strength + Performance
4Deload
light, no top set
Recovery — mandatory

Only the Big-3 — Bench, Squat, and the deadlift — phase-progress in load and rep scheme. Everything else stays grooved. You go heavy where heavy matters; the phase advances when every muscle has hit its volume budget, not when a calendar says so.

Act VWhat's real, where it's going

Five engines, one closed loop

What's shipping today, how you know you can trust it, and the five-engine adaptive loop it now runs end-to-end.

The system

Five engines. One closed loop.

The full vision is a closed adaptive loop: a prime mover that generates training stress, and a response system that reads it and bends the next prescription to it. All five engines are now built and wired live end-to-end — Training emits the stress scores + completion data, and Recovery, Nutrition, Adaptation, and Behavioral consume them on every completed session.

Training Engineprime mover · shipping

Generates the physiological stress everything else responds to — and reads recovery back into the next block.

Recovery

Tracks restoration across five dimensions + accumulated fatigue.

built · wired live
Nutrition

Allocates substrate to the measured training demand (carbs track completion).

built · wired live
Adaptation

Projects your trajectory + overtraining risk forward.

built · wired live
Behavioral

Gates every prescription against what you can actually sustain.

built · wired live

Why you can trust it

Deterministic, not a black box

Personalization without randomness. Every input is typed and logged — sleep is a dropdown, a joint flag is a checkbox — and every engine is a pure function. Replay the same state and you get the byte-identical session.

same inputs + same readiness same session

That's the difference from “lift by feel.” One is vibes; this is a state machine with a new input. Heavy is earned, not felt.

What's ahead

Built. Now calibrated — and surfaced.

The engines run; the loop closes. Two things finish the system: Ben's calibrationof every engine's v1 constants (they ship flagged provisional, so a re-tune is safe), and surfacing the computed state — the recovery, macro, and adaptation reads — into the coach + client views.

“We don't program lifts we don't run. If Ben wouldn't do it on his next push day, we don't ask you to either.”
Built BY Ben — the rule that decides what ships

This is real — and tested

v0.5.2
engine pin
93
exercises in catalog
5 / 5
engines built + wired
closed
adaptive loop
pure fn
every engine, deterministic

A property-based eval suite fuzzes the full input space · every companion state is computed + persisted on real completions · the loop runs end-to-end on real client data

See it run — against 30 real client profiles, or your own.

The Profile Library renders each profile's full 28-day month. Open any day for the rendered session. The Input Explorer lets you turn every dial and watch the engine respond.