HomeSports & Fitness › Barbell Plate Loading Calculator

Barbell Plate Loading Calculator

Works out which plates to put on each side of a barbell to reach a target weight from the bar weight and the plate sizes available, loading the largest plates first, and reports the achievable weight and any shortfall.

When to use

You have a target barbell weight and need the plate combination per side, or want the closest weight you can load with the plates you own.

Do not use when: You want to estimate a one-rep max or training percentages (use one-rep-max) or a body-weight-adjusted strength score (use wilks-dots-score).

Formula

weight_per_side = (target_weight − bar_weight) / 2; for each plate size p from largest to smallest: count_p = floor(remaining / p), remaining −= count_p × p; loaded_weight = bar_weight + 2 × Σ count_p × p; difference = loaded_weight − target_weight

Largest-first (greedy) loading matches how plates are racked and yields the exact combination with the fewest plates whenever each plate size is a multiple of the next smaller one, which holds for the standard kg and lb sets. Plates are assumed available in unlimited pairs; collars are not included.

Inputs

ParameterTypeUnitRequiredDescription
target_weightnumberyesTotal weight wanted on the bar, including the bar, in unit. Range: > 0, ≤ 2000
unitenum: kg | lbdefault kgUnit of every weight; also selects the default bar weight and plate set.
bar_weightnumbernoWeight of the empty bar in unit. Defaults to 20 kg or 45 lb (standard Olympic bar); use 15 kg for a women's bar. Range: ≥ 0, ≤ 100
available_platesnumber_listnoPlate sizes you can use (one plate, in unit), assumed available in unlimited pairs. Defaults to 25, 20, 15, 10, 5, 2.5, 1.25 kg or 45, 35, 25, 10, 5, 2.5 lb.

Outputs

OutputTypeUnitDescription
plates_per_sidelistPlate size and count for one side of the bar, largest first (plate, count).
plates_per_side_textstringThe same loading as text, e.g. '25 + 15' or '2 × 45'.
weight_per_sidenumber(target_weight − bar_weight) / 2, in unit.
loaded_weightnumberBar plus the plates actually loaded; equals target_weight when it is achievable.
differencenumberloaded_weight − target_weight; zero or negative because the bar is never over-loaded.
total_platesintegerNumber of plates on both sides together.
bar_weightnumberBar weight applied, in unit.

Example

100 kg on a 20 kg bar: {"target_weight":100,"unit":"kg"}{"weight_per_side":40,"plates_per_side":[{"plate":25,"count":1},{"plate":15,"count":1}],"plates_per_side_text":"25 + 15","loaded_weight":100,"difference":0,"total_plates":4,"bar_weight":20}

225 lb on a 45 lb bar: {"target_weight":225,"unit":"lb"}{"weight_per_side":90,"plates_per_side":[{"plate":45,"count":2}],"plates_per_side_text":"2 × 45","loaded_weight":225,"difference":0,"total_plates":4,"bar_weight":45}

GET https://tttkmbb.com/api/v1/calculate/barbell-plate-loading?target_weight=100&unit=kg

Machine access

Sources

FAQ

Does the target include the bar?

Yes. target_weight is the total on the bar; the calculator subtracts bar_weight before splitting the rest between the two sides.

What if the weight cannot be made exactly?

The nearest lower weight is loaded and difference shows the shortfall (e.g. 102 kg with 1.25 kg smallest plates loads 100 kg, difference −2). Add smaller change plates to available_plates to close the gap.

Can I use a 15 kg women's bar or a 35 lb bar?

Yes: set bar_weight explicitly; unit only changes the defaults.

Related calculators