{{ summaryHeading }}
{{ primaryDisplay }}
{{ summaryLine }}
{{ badge.label }}
{{ plan.guidanceLine }}
EMOM session runner
{{ sessionClock }} {{ sessionPhaseLabel }}
{{ sessionStatusLabel }} {{ sessionMinuteLabel }} {{ sessionRestLabel }}
{{ sessionTargetLine }}
{{ sessionCueLine }}
{{ sessionAccessibleText }}
EMOM workout inputs
Choose the main training intent; movement targets and timing checks update from this profile.
Use 4-40 minutes. The movement rotation repeats until this total is filled.
min
{{ minute_count }} min
Estimate how long the listed work should take inside each 60-second minute.
sec
{{ formatDuration(target_work_sec) }}
Keep this visible because it changes readiness checks and the Minute Flow chart threshold.
sec rest
{{ formatDuration(rest_floor_sec) }}
Examples: 8 push-ups, 12 goblet squats | 35s | legs | smooth reps. CSV, TSV, and TXT files are accepted.
{{ sourceStatusLine }}
Use 0 for immediate start or 5-30 seconds to get in position.
sec
{{ formatDuration(prep_countdown_sec) }}
Audio is created only after you press Start and can be left off for silent gyms.
{{ cue_sound ? 'On' : 'Off' }}
Unsupported browsers simply ignore this setting.
{{ vibrate_cues ? 'On' : 'Off' }}
The timer still works if wake lock is unavailable or permission is denied.
{{ keep_awake ? 'On' : 'Off' }}
Minute Target Category Finish estimate Rest buffer Read Cue Copy
{{ row.minuteLabel }} {{ row.target }} {{ row.category }} {{ formatDuration(row.workSec) }} {{ formatDuration(row.restSec) }} {{ row.status }} {{ row.cue }}
Check Read Value Action Copy
{{ row.label }} {{ row.status }} {{ row.value }} {{ row.note }}
Time Event Minute Target Note Copy
Start a session or log a finish to create session events.
{{ event.elapsedLabel }} {{ event.type }} {{ event.minuteLabel }} {{ event.target }} {{ event.note }}
{{ jsonPayload }}
Customize
Advanced
:

EMOM training turns a normal workout clock into a strict pacing rule. A target starts at the top of each minute, the athlete completes the assigned work, and any seconds left before the next minute become recovery. The format looks simple on paper, but it quickly exposes whether the reps, load, movement choice, and setup time actually fit the intended training quality.

The practical difference is rest control. Twelve smooth squats that finish around 30 seconds leave enough time to breathe, reset, and prepare for the next cue. A target that takes 52 seconds leaves only a brief pause, even though both minutes still count as one EMOM slot. Good programming protects the kind of work you want, not just the rule that every minute must contain a task.

Common EMOM training intents and rest-buffer cautions
Training intent What usually changes Rest-buffer caution
Strength skill Lower reps, heavier or stricter movements, and more attention to technique Short rests can turn skill practice into rushed repetition.
Conditioning Higher breathing demand, faster transitions, smaller recovery windows Very tight minutes can make later rounds collapse into survival pace.
Mixed bodyweight work Alternating push, pull, leg, core, and engine targets Repeating one movement pattern can stack local fatigue.
Coached custom session Targets scaled to the athlete, space, equipment, and current readiness The written plan still needs adjustment when form or breathing changes.

EMOM is related to interval training, but the work and rest parts are not both fixed. The minute boundary is fixed and the rest is earned. That makes the format useful for short finishers, repeatable home workouts, movement-practice blocks, and coach-led classes where everyone follows the same start cue.

Diagram of one EMOM minute showing planned work, rest buffer, finish estimate, and the next top-of-minute start.

Rest-buffer planning is where many EMOMs fail. A target that is realistic in minute 1 may be too ambitious by minute 9, especially when one muscle group repeats or the athlete has to change equipment. A plan that leaves 15 to 25 seconds of rest in most minutes is usually easier to repeat than one that depends on perfect transitions.

Timed fitness work is still training stress. Public health guidance distinguishes aerobic activity, vigorous effort, and muscle-strengthening work because each places different demands on the body. Use EMOM timing as planning information, not medical clearance, and stop or scale back when pain, dizziness, unusual shortness of breath, or unsafe form appears.

How to Use This Tool:

Build the minute rotation, check the rest-buffer warnings, then start the live timer only when the plan fits the session you intend to run.

  1. Choose Plan type. Strength skill, Conditioning, Mixed bodyweight, and Custom coaching set different defaults for Total minutes, Default finish target, Rest buffer floor, work-density warning, badge color, and coaching cue style.
  2. Set Total minutes from 4 to 40. The value is both the workout length and the number of minute slots created in Minute Plan.
  3. Set Default finish target from 10 to 59 seconds and Rest buffer floor from 0 to 45 seconds. A movement row with its own seconds value overrides the default finish target for that row.
  4. Enter Movement rotation with one target per line. Use movement | seconds | category | cue when you want a precise row, such as 12 goblet squats | 35s | legs | smooth reps. CSV, TSV, and TXT files can be browsed for or dropped onto the text area.
  5. Use Strength sample, Conditioning sample, Mixed sample, or Normalize to test the row shape. Normalize rewrites parsed rows into movement, seconds, category, and cue columns.
  6. Open Advanced for run cues. Prep countdown accepts 0 to 60 seconds, while Cue sound, Vibrate cues, and Keep screen awake depend on browser and device support.
  7. Check the summary, warning box, Minute Plan, Coach Checks, and Minute Flow. Shorten any row marked Over minute before starting. Treat Tight rows as a cue to reduce reps, load, movement complexity, or the rest-floor expectation.
  8. Press Start to freeze the current settings for the run. During the session, use Pause, Log finish, Skip, and Reset. Review Session Log for start, pause, minute-cue, finish, skip, reset, and completion events.

If a file import fails, check the file size and type first. Files above 256 KB are rejected, blank lines and comment lines are ignored, and an empty movement rotation falls back to a generic target so the timing model can still render.

Interpreting Results:

Start with the plan status. Ready means every planned minute fits inside 60 seconds and preserves the selected Rest buffer floor. Scale targets means the timer can run, but at least one minute leaves less rest than requested. Fix timing means at least one estimated work duration is longer than 60 seconds, so Start stays unavailable.

Minute Plan gives the row-by-row read. Compare Finish estimate with Rest buffer, then scan Read and Cue. Roomy rows leave the floor plus at least 12 extra seconds. Tight rows fit the minute but do not protect the selected rest floor.

Coach Checks is useful for a second pass because it summarizes minimum and average rest, work density, rotation variety, session length, and timer setup. A Ready read only means the planned timing fits. Confirm warm-up, equipment layout, movement quality, and actual finish marks in Session Log before treating the session as repeatable.

  • Use Minute Flow to see where estimated work approaches the finish-limit line.
  • Use Session Log to review pauses, skips, finish marks, and completion events from the current browser tab.
  • Use JSON when you need the structured plan, assumptions, warnings, readiness score, minute rows, coach checks, and session events.

Technical Details:

EMOM timing fixes the start cadence and lets recovery vary. Each minute has a target, an estimated work duration, and a rest buffer. The next minute still starts on the next 60-second boundary when the prior target takes longer than planned, so delayed work always reduces recovery rather than extending the session.

The most important quantities are work seconds, rest seconds, total duration, and work density. Work seconds describe the planned effort inside each minute. Rest seconds describe the planned recovery before the next cue. Work density turns the whole session into a percentage so dense plans can be compared across different minute counts.

Formula Core

The timing math is deterministic once the minute count, movement rotation, and finish estimates are set. The movement rotation repeats until all minute slots are filled.

rest buffer = 60 - estimated work seconds total seconds = minute count 60 work density = sum of estimated work seconds total seconds 100 %

Example: a 12-minute plan with 390 estimated work seconds has 720 total seconds and about 54% work density.

EMOM rest-buffer read boundaries
Read Boundary rule Meaning
Over minute rest buffer < 0 The estimate exceeds 60 seconds, so the minute cannot fit the EMOM format.
Tight 0 <= rest buffer < rest floor The work fits, but leaves less recovery than requested.
Ready rest floor <= rest buffer < rest floor + 12 The minute preserves the selected rest floor with limited extra room.
Roomy rest buffer >= rest floor + 12 The minute leaves the floor plus at least 12 extra seconds.

Profile Defaults and Density Limits

Profiles change defaults and warning thresholds, not the 60-second EMOM rule. A density limit is a coaching warning. Crossing it lowers the readiness score and adds a work-density warning, but it does not block the timer unless a row is longer than one minute.

EMOM profile defaults and density limits
Plan type Default minutes Default work Rest floor Density limit Coaching intent
Strength skill 12 34s 18s 72% Keep reps high-quality and preserve enough rest to repeat the skill.
Conditioning 16 42s 10s 86% Allow tighter buffers while scaling before every minute becomes a sprint finish.
Mixed bodyweight 20 36s 14s 80% Rotate movement patterns so local fatigue does not stack every minute.
Custom coaching 12 35s 15s 82% Use the rest-floor check to tune the plan for the athlete in front of you.

Readiness Score and Warnings

The readiness score starts at 100 and subtracts penalties for tight minutes, over-minute rows, work density above the selected profile limit, and a narrow rotation where one category fills more than four minutes.

score = clamp ( 100 - 9 T - 18 O - 1.2 max ( 0 , D - L ) - N , 0 , 100 )

T is tight minute count, O is over-minute row count, D is work density percent, L is the profile density limit, and N is 10 when one category fills more than four minutes.

EMOM warning conditions and practical effects
Condition Warning or status Practical effect
No usable movement rows Fallback target warning A generic target is used so the plan can render, but the rotation should be filled before use.
Any estimated work is over 60 seconds Fix timing The live run cannot start until those rows fit inside a minute.
Any rest buffer is below the selected floor Scale targets The timer can run, but the plan is flagged for shorter reps, lighter load, or simpler movements.
Work density is above the profile limit High work density The plan may be too dense for the selected training intent.
One category fills more than four minutes Narrow rotation warning Local fatigue may stack because the same movement pattern repeats.
Total minutes are greater than 30 Long session length Conservative loading and exit options matter more for longer EMOMs.

Movement Parsing and Bounds

Movement rows are read line by line. Blank lines and lines starting with # are ignored. A row can use pipe columns or tab columns. Without those separators, the whole line becomes the movement target. Leading bullets, numbered prefixes, and labels such as Minute 1: are removed from the target text.

EMOM movement row parsing rules and accepted bounds
Input element Accepted or normalized rule Effect
Movement row movement | seconds | category | cue Creates the target, estimated work seconds, category, and cue for each repeated minute.
Seconds value Number, seconds text, or minutes text, clamped to 5 to 90 seconds Overrides the default finish target when supplied in the row or embedded in the target text.
Default finish target 10 to 59 seconds Used when a movement row does not supply a valid seconds value.
Total minutes 4 to 40 Controls both workout duration and the number of plan rows.
Rest buffer floor 0 to 45 seconds Sets the threshold used by Tight, Ready, and Roomy reads.
Prep countdown 0 to 60 seconds Adds a setup countdown before minute one without changing the planned EMOM duration.
Imported file CSV, TSV, or TXT up to 256 KB Loads the movement text area; larger files are rejected with a size message.

When no category is supplied, movement names are matched to broad categories. Row, bike, run, sprint, burpee, jump, calorie, skierg, machine, and shuttle terms map to engine. Squat, lunge, step-up, thruster, wall ball, box jump, deadlift, clean, snatch, and swing terms map to legs. Push or press terms map to upper push, pull or chin terms map to upper pull, and plank, sit-up, hollow, V-up, crunch, toes-to-bar, or shoulder-tap terms map to core. Other targets use general.

Safety, Privacy, and Accuracy Notes:

EMOM workouts can become vigorous quickly because each next minute starts whether recovery is complete or not. The timer can plan the cadence and record session events, but it cannot judge medical readiness, safe loading, exercise technique, heart rate, pain, or fatigue.

  • Use the output as general fitness information, not medical advice, diagnosis, treatment, or clearance for vigorous exercise.
  • Scale reps, load, range of motion, or total minutes when Rest buffer is tight or movement quality breaks down.
  • Warm up before high-intensity work, and stop for chest pain, dizziness, unusual shortness of breath, sharp pain, or symptoms that feel unsafe.
  • Audio cues, vibration, and screen wake lock can be blocked by browser support, device settings, permissions, battery policy, or tab visibility.
  • The workout rows, plan, logs, chart data, and JSON are calculated in the browser. The page loads charting code from a content delivery network, and copied, downloaded, screenshotted, or shared data can include movement notes you entered.

Worked Examples:

Strength sample with room to repeat

The Strength sample creates a 12-minute rotation with pull-ups, push-ups, goblet squats, and a hollow hold. The tightest Rest buffer is 22s, average rest is about 28s, and Work density is about 54%. Readiness status stays Ready because every row preserves the 18s rest floor.

Conditioning sample with short but valid rests

The Conditioning sample starts at 16 minutes with targets such as kettlebell swings, burpees, lunges, and machine work. Work estimates from 35s to 45s leave 15s to 25s of rest against a 10s floor, so Minute Plan should read Ready or Roomy. The density is about 68%, below the conditioning profile limit of 86%.

Custom plan that should be scaled

A 10-minute Custom coaching plan with 12 burpees | 48s | engine and 10 thrusters | 50s | legs leaves 12s and 10s of rest. With Rest buffer floor set to 18s, those rows read Tight, the summary changes to Scale targets, and Coach Checks recommends reducing reps, load, or movement complexity.

Over-minute row that blocks the timer

A row like 25 burpees | 75s | engine | too long produces an Over minute read because the estimate exceeds 60 seconds. The warning box reports minutes that estimate more than 60 seconds of work, Readiness status becomes Fix timing, and Start remains disabled until the target is shortened.

FAQ:

What does EMOM mean?

EMOM means every minute on the minute. Each target starts at a 60-second boundary, and the seconds left after the estimated work become the planned Rest buffer.

Why is Start disabled?

Start is disabled when at least one row reads Over minute. Shorten the seconds estimate below 60 seconds, reduce the reps, or remove the explicit seconds value so the default finish target can be used.

Can I run a plan with Tight rows?

Yes. Tight rows fit inside the minute, so the timer can run, but the plan says Scale targets because those rows do not preserve the selected Rest buffer floor.

How should movement rows be formatted?

Use one target per line. The richest format is movement | seconds | category | cue, while a plain line such as 8 push-ups uses the default finish target and an inferred category.

Why did Normalize change my category?

Normalize writes the parsed target, seconds, category, and cue back into the movement field. If a row did not include a category, the timer infers one from movement words such as squat, pull, push, row, bike, plank, or burpee.

Does Log finish change the planned rest buffer?

No. Finish estimate and Rest buffer come from the plan. Log finish records the actual finish mark and remaining seconds in Session Log for the current run.

Are my workout rows uploaded?

The plan, timer, logs, chart data, and JSON are handled in the browser. Charting code may load from a content delivery network, and anything you copy, download, screenshot, or share can include your movement text.

Glossary:

EMOM
Every minute on the minute, a workout format where each target starts at a 60-second boundary.
Rest buffer
The planned seconds left in a minute after the estimated work is finished.
Finish estimate
The work-duration estimate used to decide how much rest remains in a minute.
Work density
The percentage of total EMOM time assigned to estimated work.
Movement rotation
The list of target rows that repeats until the total minute count is filled.
Readiness status
The plan-level read, such as Ready, Scale targets, or Fix timing.
Prep countdown
An optional setup countdown before minute one starts.

References: