Weight week by week
Starting at 60 kg with a normal BMI, the expected weight is 65.25 kg at week 20 and 73.75 kg at week 40. You get one expected weight for every week from 0 to 40, ready to print or compare with your scale. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Pre pregnancy weight
- 60
- Bmi category
- Normal
- Pre pregnancy kg
- 60 kg
- Category label
- Normal weight
- Guideline
- IOM/NRC 2009
- Pregnancy type
- singleton
A weight week by week calculator turns a known pre-pregnancy body weight and a BMI category into a complete series of expected kilograms for every gestational week from zero through forty. People who search for that phrase want a table, not a single recommended range at one age: they want to see how an expected singleton trajectory unfolds each week so they can plot, print, or compare a measured weight against a published schedule. This capability uses the Institute of Medicine and National Research Council 2009 midpoint of the full-term gain band and the midpoint of the second- and third-trimester weekly rate for underweight, normal, overweight, and obese categories, ramps the first thirteen weeks linearly, then adds the weekly rate so week forty matches the midpoint total.
How expected weight is built week by week from IOM midpoints
Recommended gestational weight gain is published as a band that depends on pre-pregnancy body mass index, not as a single target kilogram.
The Institute of Medicine and National Research Council 2009 report for singleton pregnancies assigns underweight women a total gain of twelve point five to eighteen kilograms, normal-weight women eleven point five to sixteen kilograms, overweight women seven to eleven point five kilograms, and women with obesity five to nine kilograms, with approximate second- and third-trimester weekly rates of about zero point four four to zero point five eight, zero point three five to zero point five zero, zero point two three to zero point three three, and zero point one seven to zero point two seven kilograms per week respectively.
A week-by-week expected-weight table needs one number per week rather than a min–max pair, so this calculator takes the midpoint of each published total and the midpoint of each published weekly rate: fifteen point two five kilograms and zero point five one per week when underweight, thirteen point seven five and zero point four two five when normal, nine point two five and zero point two eight when overweight, and seven and zero point two two when obese.
Expected body weight at a given week is pre-pregnancy kilograms plus that cumulative midpoint gain. The result is a forty-one-row array covering weeks zero through forty, where week zero echoes the starting weight and week forty is the expected term weight. The tool does not diagnose, prescribe diet, or replace clinical judgment for twins, multiples, or medical conditions that change targets.
Always feed true pre-pregnancy weight and the BMI category that belonged to that weight, never a mid-pregnancy weight dressed up as a starting value.
Where a week-by-week expected-weight table earns its keep
Prenatal education worksheets need a printable expected-weight column for every gestational week so learners can compare a case vignette against a published trajectory instead of a single range at one age. Content sites that rank for weight week by week benefit from a focused landing whose slug, title, and examples match the query people type—distinct from a pregnancy weight-gain calculator that returns a min–max range at one supplied week, and distinct from a BMI calculator that never emits a weekly table.
Use true pre-pregnancy kilograms, not a mid-pregnancy weigh-in, when choosing the BMI category; mixing current weight into the starting field will shift the entire series. Prefer this capability when you already know the BMI band and want the full expected-weight array; if you only have height and current weight, compute BMI and the band first. Keep requests small, pin the rounded array in tests, and you get a reproducible week-by-week pregnancy weight table without standing up a clinical spreadsheet of your own.
What you can do with it
Prenatal education worksheets
Educators enter a vignette starting weight and BMI category and print the forty-one-row expected-kilogram column so learners can compare hand-drawn trajectories against a deterministic IOM midpoint series.
FAQ
How is expected pregnancy weight computed for each week?
The calculator takes the IOM 2009 midpoint total gain and midpoint 2nd/3rd-trimester weekly rate for the BMI category, ramps the first thirteen weeks linearly so week forty matches that total, and returns pre-pregnancy kilograms plus cumulative gain for weeks 0–40.
What happens if pre-pregnancy weight is zero or negative?
Pre-pregnancy weight must be a strictly positive finite number of kilograms; zero and negatives are not a physical starting mass and are not billed.
Which BMI categories are accepted?
Exactly four closed values: underweight, normal, overweight, and obese. Those labels select the IOM singleton band; unknown strings are rejected rather than guessed.
Why does the table show one weight per week instead of a range?
Because a week-by-week table needs a single number. The calculator takes the middle of each published range, such as a 13.75 kg total gain and 0.425 kg a week for a normal BMI.
Does the table work for twins?
No. It follows the guideline for single pregnancies only. Twins, multiples or medical conditions that change the targets need advice from your care team.
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/weight-week-by-week \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pre_pregnancy_weight":60,"bmi_category":"normal"}'const res = await fetch("https://api.kit.forhosting.com/health/weight-week-by-week", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pre_pregnancy_weight": 60,
"bmi_category": "normal"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/weight-week-by-week",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pre_pregnancy_weight": 60,
"bmi_category": "normal"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/weight-week-by-week", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pre_pregnancy_weight":60,"bmi_category":"normal"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pre_pregnancy_weight":60,"bmi_category":"normal"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/weight-week-by-week", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"pre_pregnancy_weight": 60,
"bmi_category": "normal"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.weight_week_by_week",
"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.
Limits
max_weight_kg | 500 |
term_weeks | 40 |
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
Pre-pregnancy weight that is not a strictly positive finite number is rejected with invalid_input.
How expected weight is built week by week from IOM midpoints
Early pregnancy contributes a smaller first-trimester segment; the first-trimester endpoint is derived so that week-forty cumulative gain matches the midpoint total, then the series ramps linearly from zero gain at week zero through that endpoint at week thirteen and applies the weekly rate afterward.
Input contract, the weekly array, and validation errors
Weights above five hundred kilograms are rejected as outside the supported range. An unknown BMI category is rejected rather than silently mapped. Failed validation is not billed. Send a JSON body with two required fields: pre_pregnancy_weight, a strictly positive finite number of kilograms (aliases weight, pre_weight, weight_kg, pre_pregnancy_kg, prepregnancy_weight), and bmi_category, one of the closed values underweight, normal, overweight, or obese (aliases category, bmi_band, band). Numeric strings are accepted for the weight; empty strings, NaN, Infinity, booleans, and non-numeric types fail with invalid_input naming the field. Zero and negative weights are rejected because they are not a physical pre-pregnancy mass—the error message states that pre_pregnancy_weight must be a positive number. On success the body echoes pre_pregnancy_kg and bmi_category, sets category_label to a human English band name, guideline to IOM/NRC 2009, pregnancy_type to singleton, term_weeks to forty, week_count to forty-one, total_expected_gain_kg and weekly_rate_kg to the midpoint total and rate, first_trimester_gain_kg to the derived week-thirteen endpoint, expected_term_kg to starting weight plus midpoint total, unit to kg, formula to the interpolation identity, message to a short English summary, and weekly_weights to the array of weekly records. Each record has week (zero through forty), expected_kg (starting weight plus cumulative midpoint gain), and gain_kg (that cumulative gain alone). Pricing is a flat $0.002 per successful request with unit item. Pair the array with your own charting code if you need a plot; this endpoint returns the expected kilogram series only and does not emit calorie targets, ultrasound estimates, or twin schedules.
Where a week-by-week expected-weight table earns its keep
Charting pipelines fetch the series first, then plot measured clinic weights against expected_kg only when the starting weight and category pass validation. Round-trip checks are easy: week zero expected_kg equals the starting weight, week forty expected_kg equals starting weight plus the midpoint total for that band, and gain_kg at week forty equals that midpoint total within the same twelve-decimal rounding.
Integration use cases
Unit tests for maternity apps
Generate known-good underweight, normal, overweight, and obese weekly fixtures plus deliberate zero or negative starting weights that must raise invalid_input.
Charting expected versus measured weight
Pipelines fetch weekly_weights first, then overlay clinic weigh-ins on expected_kg only after the starting mass and category pass validation.
Technical questions
Does the array include a range or a single expected kilogram?
Each week returns one expected_kg (the midpoint trajectory) plus gain_kg. It is a week-by-week expected-weight table, not a min–max range at a single gestational week.
What does the weight week by week calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.