{{ 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
Estimate how long the listed work should take inside each 60-second minute.
sec
Keep this visible because it changes readiness checks and the Minute Flow chart threshold.
sec rest
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
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 means every minute on the minute. A new movement target starts at the top of each 60-second minute, and any time left after the work is finished becomes rest before the next minute starts.

The format is useful because it makes pace visible. A set of 8 push-ups that takes 25 seconds leaves 35 seconds to breathe, reset, and prepare. The same target taking 52 seconds leaves only 8 seconds, so the next minute begins before the athlete has really recovered.

Diagram of one EMOM minute with estimated work, rest buffer, and the next top-of-minute start.

That built-in rest is the main coaching lever. EMOM work can be used for strength skill practice, repeatable conditioning, mixed bodyweight circuits, or simple home workouts, but each use needs a different finish target. Strength work usually needs more rest so the reps stay crisp. Conditioning can run closer to the next minute as long as the movement still remains safe and repeatable.

An EMOM timer can organize time and expose pacing problems, but it cannot judge pain, technique, heart rate, medical risk, or whether an exercise is right for a person. Treat the plan as training information, scale the work to the athlete, and stop if symptoms or unsafe form appear.

How to Use This Tool:

Build the minute plan first, then use the live timer only after the rest checks look usable.

  1. Choose Plan type. Strength skill, Conditioning, Mixed bodyweight, and Custom coaching set the default total minutes, finish target, rest floor, density limit, badge color, and coaching cue style.
  2. Set Total minutes from 4 to 40. EMOM minutes are both the workout duration and the number of target slots in the 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. The compact format is movement | seconds | category | cue, 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 check the expected row shape. Normalize rewrites parsed rows into movement, seconds, category, and cue columns.
  6. Open Advanced when the run needs setup or device cues. Prep countdown accepts 0 to 60 seconds, while Cue sound, Vibrate cues, and Keep screen awake depend on browser and device support.
  7. Review the summary, warning box, Minute Plan, and Coach Checks. If the plan says Fix timing or any row reads Over minute, shorten that movement before starting. If it says Scale targets, the timer can run, but the tight minutes should be changed before treating the plan as repeatable.
  8. Press Start to freeze the current settings for the run. Use Pause, Log finish, Skip, and Reset during the session, then review Session Log for start, pause, minute-cue, finish, skip, reset, and completion events.

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

Interpreting Results:

Start with the summary badges. Ready means every planned minute fits inside 60 seconds and every rest buffer is at or above the selected floor. Scale targets means at least one minute is below the rest floor but still fits inside the minute. Fix timing means at least one work estimate is longer than 60 seconds, so the live timer is blocked until the row is shortened.

Minute Plan is the row-by-row audit surface. Check Finish estimate, Rest buffer, Read, and Cue before running the session. A Roomy read has at least 12 seconds more than the rest floor. A Tight read means the planned work fits, but the recovery window is smaller than requested.

Coach Checks summarizes the same plan from a coaching view: minimum and average rest, work density, movement-category variety, session length, and timer setup. A clean Coach Checks table does not prove the workout is safe or hard enough. Confirm movement quality, loading, warm-up, equipment layout, and the actual logged finish times in Session Log.

  • Use Minute Flow to spot minutes where estimated work presses against the finish-limit line.
  • Use Session Log to review interruptions and finish marks from the current browser session, not to measure intensity.
  • Use JSON when you need the full structured plan, including assumptions, warnings, readiness score, minute rows, coach checks, and session events.

Technical Details:

EMOM timing fixes the start cadence and lets the rest interval vary. Each planned minute has a target, an estimated work duration, and a rest buffer. The top of the next minute does not move because the previous minute was slow, so the rest buffer is the part that shrinks when work takes longer.

Rest-buffer planning is different from ordinary interval timing. A 35-second target and a 45-second target both fit inside a minute, but the second target leaves 10 fewer seconds to breathe, transition, and prepare. That lost recovery can change the workout even when the total duration stays unchanged.

Formula Core

The core timing math is deterministic once the minute count and movement rows are set. Per-minute rest is calculated first, then totals and density are accumulated across the repeated rotation.

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

The movement rotation repeats until the requested minute count is filled. A four-row rotation in a 12-minute plan appears three times.

EMOM rest-buffer read boundaries
Read Rest-buffer rule Meaning
Over minute rest buffer < 0 The estimated work exceeds 60 seconds, so the plan is invalid for a live run.
Tight 0 <= rest buffer < rest floor The work fits inside the minute, but leaves less rest than requested.
Ready rest floor <= rest buffer < rest floor + 12 The minute preserves the selected rest floor without much extra room.
Roomy rest buffer >= rest floor + 12 The minute leaves the floor plus at least 12 extra seconds.

Plan Profiles and Density Limits

Profiles change defaults and coaching reads rather than the EMOM formula. The density limit is a warning threshold: going above it adds a work-density warning and lowers the readiness score, but it does not by itself block the timer.

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 and Warning Rules

The readiness status is strict about over-minute rows and more permissive about tight rows. Over-minute rows make the plan invalid for the live timer. Tight rows keep the timer available, but the status changes to Scale targets because the entered work estimate no longer protects the selected rest floor.

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 count, D is work density percent, L is the profile density limit, and N is 10 only when one movement category fills more than four minutes.

EMOM warning conditions and resulting guidance
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 is treated as 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 phase before minute one without changing the exported 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 timing can create high effort because the next minute starts whether recovery is complete or not. The timer helps plan and record the session, but it does not measure readiness, safe loading, technique, heart rate, or pain.

  • Use this as general fitness information, not medical advice, diagnosis, or clearance for vigorous exercise.
  • Scale reps, load, range of motion, or total minutes when the 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 plan, logs, chart data, and JSON are calculated in the browser. Chart rendering may use network-loaded charting code, and private exercise notes can still appear in copied text, downloads, screenshots, or URLs you share.

Worked Examples:

Strength skill sample with repeatable rest

The Strength sample loads a 12-minute plan with pull-ups, push-ups, goblet squats, and a hollow hold. The tightest Rest buffer is 22 seconds, average rest is about 28 seconds, and Work density is about 54%. Readiness status stays Ready, and Coach Checks should show a ready rest buffer plus a varied rotation.

Conditioning plan with shorter rests

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

Tight custom plan that needs scaling

A 10-minute Custom coaching plan with rows such as 12 burpees | 48s | engine and 10 thrusters | 50s | legs leaves 12 and 10 seconds of rest. With an 18-second Rest buffer floor, the affected rows read Tight, the summary changes to Scale targets, and Coach Checks tells you to reduce 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 estimated work is longer than 60 seconds. The warning box reports minutes that estimate more than 60 seconds of work, the readiness status becomes Fix timing, and Start remains unavailable until the target is shortened.

FAQ:

What does EMOM mean?

EMOM means every minute on the minute. In this timer, each row starts at the top of a 60-second minute, and the remaining seconds become the planned rest buffer.

Why is Start disabled?

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

Can I still run a plan with Tight rows?

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

How should I format movement rows?

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 my category change after Normalize?

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 the timer measure actual finish time?

Only when you press Log finish. The planned Finish estimate comes from the movement row or default finish target, while Session Log records finish marks, pauses, skips, and completion events from the live run.

Are my workout rows uploaded?

The plan, timer, logs, tables, charts, and JSON are handled in the browser. Charts may use network-loaded charting code, and anything you copy, download, screenshot, or share can include your movement text.

Glossary:

EMOM
Every minute on the minute, a workout format where a new target starts at each 60-second boundary.
Rest buffer
The planned seconds left in a minute after the estimated work is finished.
Finish target
The estimated work duration 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 result, such as Ready, Scale targets, or Fix timing.
Prep countdown
An optional setup countdown before minute one starts.

References: