# 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.

- Calculator id: `barbell-plate-loading` · Category: Sports & Fitness (`fitness`) · Tool name: `calculate_barbell_plate_loading`
- Canonical page: https://tttkmbb.com/fitness/barbell-plate-loading · This document: https://tttkmbb.com/fitness/barbell-plate-loading.md · JSON definition: https://tttkmbb.com/fitness/barbell-plate-loading.json

## Purpose

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.

**Use when:** 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).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `target_weight` | number |  | required | Total weight wanted on the bar, including the bar, in unit. (> 0, max 2000) |
| `unit` | enum: kg \| lb |  | optional, default "kg" | Unit of every weight; also selects the default bar weight and plate set. |
| `bar_weight` | number |  | optional | Weight of the empty bar in unit. Defaults to 20 kg or 45 lb (standard Olympic bar); use 15 kg for a women's bar. (min 0, max 100) |
| `available_plates` | number_list |  | optional | Plate 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. |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `plates_per_side` | list |  | Plate size and count for one side of the bar, largest first (plate, count). |
| `plates_per_side_text` | string |  | The same loading as text, e.g. '25 + 15' or '2 × 45'. |
| `weight_per_side` | number |  | (target_weight − bar_weight) / 2, in unit. |
| `loaded_weight` | number |  | Bar plus the plates actually loaded; equals target_weight when it is achievable. |
| `difference` | number |  | loaded_weight − target_weight; zero or negative because the bar is never over-loaded. |
| `total_plates` | integer |  | Number of plates on both sides together. |
| `bar_weight` | number |  | Bar weight applied, in unit. |

## 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.

## Data Sources

- IPF Technical Rules Book (bar 20 kg; discs 25, 20, 15, 10, 5, 2.5, 1.25 kg) — https://www.powerlifting.sport/rules/codes/info/technical-rules (standard, retrieved 2026-09-24)
- Wikipedia – Weight plate (standard Olympic plate denominations and bar weights) — https://en.wikipedia.org/wiki/Weight_plate (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/barbell-plate-loading?target_weight=…`
- `POST https://tttkmbb.com/api/v1/calculate/barbell-plate-loading` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/barbell-plate-loading · OpenAPI operationId `calculate_barbell_plate_loading` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "barbell-plate-loading", "inputs": {…}}`

## Example

- 100 kg on a 20 kg bar: inputs `{"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: inputs `{"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
```

## Limitations

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). 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. All values are computed from the formula above; no measurement or live data is involved.

## 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

- [One-Rep Max Calculator](https://tttkmbb.com/fitness/one-rep-max.md) — Estimate the maximum and training percentages that set the target weight.
- [Wilks and DOTS Score Calculator](https://tttkmbb.com/fitness/wilks-dots-score.md) — Score the lift relative to body weight.
- [Mass / Weight Converter](https://tttkmbb.com/conversion/mass.md) — Convert plate weights between kilograms and pounds.
