A barbell plate loading calculator tells you exactly which plates to put on each side of the bar to hit a target total weight. Instead of doing mental arithmetic under fatigue — or worse, loading the bar unevenly — you type in the target weight, choose your unit system, and read off the plate list in seconds. It covers both the Olympic kilogram set used internationally and the standard US pound set found in most commercial gyms.
How it works
The maths behind plate loading is straightforward but easy to get wrong in your head, especially when fatigue sets in mid-session.
Step 1 — calculate per-side load:
Per-side weight = (Target total − Bar weight) / 2
So for a 100 kg squat with a 20 kg bar:
Per-side = (100 − 20) / 2 = 40 kg per side
Step 2 — greedy plate assignment (largest first):
Starting from the heaviest available plate, the algorithm places as many of that plate as will fit without exceeding the per-side remainder, then moves to the next denomination:
| Plate | Fits? | Running subtotal |
|---|---|---|
| 25 kg | 1 × 25 = 25 kg (≤ 40) | 25 kg used, 15 kg left |
| 20 kg | 0 (20 > 15) | — |
| 15 kg | 1 × 15 = 15 kg (≤ 15) | 40 kg used, 0 left |
Result: 1 × 25 kg + 1 × 15 kg per side, giving 40 + 40 + 20 bar = 100 kg total.
This greedy approach always uses the fewest plates possible while keeping the heaviest weights innermost — exactly the loading convention used at Olympic Weightlifting and Powerlifting competitions.
Worked example — powerlifting total
A lifter working up to a 140 kg / 308 lb deadlift using a standard 20 kg bar:
Per side = (140 − 20) / 2 = 60 kg per side
Greedy assignment from the standard Olympic set:
- 2 × 25 kg = 50 kg — 10 kg remaining
- 1 × 10 kg = 10 kg — 0 remaining
Load: 2 × 25 kg + 1 × 10 kg per side — five plates total across both sides.
The same weight in pounds (308 lb with a 45 lb bar):
Per side = (308 − 45) / 2 = 131.5 lb per side
- 2 × 45 lb = 90 lb — 41.5 lb remaining
- 1 × 35 lb = 35 lb — 6.5 lb remaining
- 1 × 5 lb = 5 lb — 1.5 lb remaining
- 1 × 1.25 lb = 1.25 lb — 0.25 lb remaining (within tolerance)
Load: 2 × 45 + 1 × 35 + 1 × 5 + 1 × 1.25 lb per side.
Formula note
The core formula is:
plates_per_side = greedy_decompose((W_target − W_bar) / 2, plate_set)
where greedy_decompose iterates the plate set in descending order:
remaining = per_side
for each plate p (heaviest first):
count[p] = floor(remaining / p.weight)
remaining = remaining − count[p] × p.weight
if remaining > tolerance → "not achievable with this plate set"
A tolerance of ±0.01 kg is applied to absorb floating-point rounding. Targets that fall between achievable increments (e.g., 101 kg on a 20 kg bar, which needs exactly 40.5 kg per side but the smallest kg plate is 0.25 kg so 40.5 kg is achievable — 101 kg IS reachable with 1 × 25 + 1 × 15 + 2 × 0.25) are handled automatically. The calculator will report “not achievable” only when no combination from the standard set can build the exact per-side weight.
Plate colour conventions
International competition follows the IWF colour code:
- Red — 25 kg
- Blue — 20 kg
- Yellow — 15 kg
- Green — 10 kg
- White / grey — 5 kg and below
The barbell diagram in the calculator mirrors these colours so you can visually cross-check the loaded bar before lifting.