Sinclair Meltzer-Faber masters calculator
A 40-year-old man weighing 81 kg with a 305 kg total gets a Sinclair coefficient of about 1.269 and an age factor of 1.135, which together turn his total into an SMF score. Enter weight, total, sex and age. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Total
- 305
- Bodyweight
- 81
- Sex
- Male
- Age
- 40
- Bodyweight kg
- 81 points
- Total kg
- 305
- Age (years)
- 40
- Age for lookup
- 40
Masters Olympic weightlifting needs a fair way to compare lifters who differ in bodyweight and age. The classic Sinclair coefficient rescales a snatch-plus-clean-and-jerk total so lighter athletes are not systematically under-ranked against heavier ones, using sex-specific A and b constants published by the International Weightlifting Federation for each Olympic cycle. Masters events then multiply that Sinclair score by a Meltzer-Faber age factor for men or a Huebner-Meltzer-Faber factor for women so that age-related decline after about thirty is reflected in best-lifter rankings. This Sinclair Meltzer-Faber masters calculator accepts bodyweight in kilograms, competition total, sex, and age in years, returns the Sinclair coefficient and score, the age factor with its table name, and the combined SMF score.
What Sinclair and Meltzer-Faber measure for masters lifters
The Sinclair model asks how strong a lifter is relative to bodyweight by multiplying the competition total by a coefficient derived from world-class performance curves. With the 2021 through 2024 International Weightlifting Federation constants, men use A equal to 0.722762521 and reference bodyweight b equal to 193.609 kilograms, while women use A equal to 0.787004341 and b equal to 153.757 kilograms.
When bodyweight is at or above b the coefficient is one, so the Sinclair score equals the raw total; when bodyweight is below b the coefficient is ten raised to A times the square of the base-ten logarithm of bodyweight over b, which gives lighter lifters a multiplier greater than one. That bodyweight-adjusted score alone still favours younger athletes in open competition.
Meltzer and Faber, later extended with Huebner for women, tabulated age coefficients from decades of masters championship results so that a performance at age fifty can be compared with one at age thirty-five. Ages under thirty use an age factor of exactly one. Ages thirty and above look up the whole-year factor from the male Meltzer-Faber table through age ninety or the female Huebner-Meltzer-Faber table through age eighty, clamping to the last published year if the athlete is older.
The Sinclair-Meltzer-Faber or SMF score is simply the Sinclair score multiplied by that age factor. Meet directors and best-lifter awards historically relied on this product; some federations have since moved toward Q-Masters points, but SMF remains widely cited in training logs, historical rankings, and club software. This capability implements only the arithmetic definition with fixed published constants and tables—it does not call external services, estimate lifts, or award medals.
Where the SMF score is used today
Masters clubs and open-platform meet software need a deterministic oracle so every client—mobile check-in, results board, or spreadsheet import—agrees on SMF for the same bodyweight, total, sex, and age. Coaches tracking seasonal progress after a bodyweight change can recompute Sinclair and SMF without re-deriving logarithms by hand. Historical result digitisers can batch-score archived totals against the 2021 through 2024 Sinclair constants and the classic Meltzer-Faber tables without standing up a full federation stack.
Failed validation does not consume balance. Keep requests small, pin the rounded coefficient and SMF score in tests, and you get reproducible masters scores for club dashboards, LMS modules, and edge workers without hosting custom coefficient tables of your own. When a governing body switches best-lifter math to Q-Masters or another system, treat this calculator as the SMF reference implementation rather than a substitute for the current official rulebook.
What you can do with it
Masters meet scoring and best-lifter boards
Convert each lifter’s bodyweight, total, sex, and age into Sinclair and SMF points so multi-class masters sessions share one ranking scale.
Training logs after weight-class changes
Recompute Sinclair and age-adjusted SMF when bodyweight or age band changes so progress is not lost in raw-kilogram noise.
Historical result digitisation
Batch-score archived snatch and clean-and-jerk totals with fixed IWF Sinclair constants and Meltzer-Faber age tables for research or club archives.
FAQ
How is the Sinclair-Meltzer-Faber (SMF) score calculated?
SMF equals the Sinclair score times the age factor. Sinclair score is total × coefficient, where coefficient is 10^(A×(log10(BW/b))²) when bodyweight is below b, or 1 when bodyweight is at or above b. Age under 30 uses factor 1.0; age 30+ uses Meltzer-Faber (men) or Huebner-Meltzer-Faber (women).
Which Sinclair constants does this calculator use?
Constants are fixed in the pure module for reproducible scores.
What happens if the lifter is under 30 years old?
The age factor is 1.0, so SMF equals the plain Sinclair score. Bodyweight adjustment still applies; only the masters age multiplier is neutral.
Does this replace Q-Masters or Robi points?
No. Some federations now use Q-Masters or Robi for best lifter. Use your federation’s current rulebook for official awards.
What if a lifter weighs more than the reference body weight?
At or above the reference weight, 193.609 kg for men and 153.757 kg for women, the Sinclair coefficient is exactly 1. The Sinclair score then equals the raw total, and only the age factor changes it.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/health/sinclair-masters \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bodyweight":81,"total":305,"sex":"male","age":40}'const res = await fetch("https://api.kit.forhosting.com/health/sinclair-masters", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bodyweight": 81,
"total": 305,
"sex": "male",
"age": 40
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/sinclair-masters",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bodyweight": 81,
"total": 305,
"sex": "male",
"age": 40
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/sinclair-masters", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bodyweight":81,"total":305,"sex":"male","age":40}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bodyweight":81,"total":305,"sex":"male","age":40}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/sinclair-masters", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"bodyweight": 81,
"total": 305,
"sex": "male",
"age": 40
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.sinclair_masters",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Input contract, response shape, and error behaviour
Numeric results are rounded for stable cross-runtime comparison. Example: a male lifter at eighty-one kilograms with a three hundred five kilogram total and age forty receives a Sinclair coefficient near 1.269, a Sinclair score near three hundred eighty-seven, an age factor of 1.135, and an SMF score near four hundred thirty-nine. POST a JSON body with four required fields. bodyweight is the lifter mass in kilograms and must be a finite number strictly greater than zero; aliases such as bodyweight_kg, bw, weight, weight_kg, and kg are accepted. total is the competition total in kilograms, meaning best snatch plus best clean and jerk, and must be a finite non-negative number; aliases include total_kg, lifted, and total_lifted. sex selects the Sinclair constants and age table and accepts male, m, man or female, f, woman; gender is an accepted alias. age is age in years for the masters factor; fractional ages are floored to whole years for the table lookup, and the value must be between zero and one hundred twenty inclusive. Missing fields, empty strings, non-finite numbers, non-positive bodyweight, negative total, or unrecognised sex fail with invalid_input naming the problem; those validation failures are not billed. On success the body echoes cleaned bodyweight_kg, total_kg, sex, and age_years; reports age_for_lookup used in the table; returns sinclair_A and sinclair_b for the chosen sex; sinclair_coefficient; sinclair_score as total times coefficient; age_factor; age_factor_table as meltzer_faber or huebner_meltzer_faber; smf_score as Sinclair score times age factor; unit points; a formula string; and method sinclair_meltzer_faber. Pair the numbers with your own ranking rules if your federation uses Q-points or Robi instead of SMF; this endpoint computes Sinclair and SMF only and does not emit medals, bodyweight classes, or medical advice.
Technical questions
What does the Sinclair Meltzer-Faber masters calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.