Puppy Growth Curve: The Model Behind This Calculator
The percentage-of-adult-weight method estimates a puppy's adult weight by dividing its current weight by the fraction of adult weight typical for its age and size class. This page publishes the actual curve this site uses, the adjustments applied on top of it, the error band attached to each result, and an honest account of what has and has not been checked. Every number below is generated from the running model, not transcribed.
Model version 2026.07 · last updated 28 July 2026 · curve data published under CC BY 4.0
The growth curve, in full
Percentage of adult bodyweight reached at each age, by size class. These are the numbers the calculator actually runs on. Blank cells mean the class is already at its adult weight by that age.
| Age | Toy | Small | Medium | Large | Giant |
|---|---|---|---|---|---|
| 8 weeks 1.8 months | 28% | 23% | 19% | 15% | 12% |
| 12 weeks 2.8 months | 40% | 36% | 31% | 27% | 23% |
| 16 weeks 3.7 months | 52% | 49% | 45% | 41% | 35% |
| 20 weeks 4.6 months | 63% | 60% | 56% | 53% | 47% |
| 26 weeks 6 months | 74% | 73% | 70% | 68% | 63% |
| 34 weeks 7.8 months | 83% | 82% | 81% | 80% | 78% |
| 39 weeks 9 months | 87% | 86% | 86% | 85% | 84% |
| 44 weeks 10.1 months | 92% | 89% | 88% | 87% | 86% |
| 52 weeks 12 months | 100% | 92% | 90% | 89% | 89% |
| 65 weeks 15 months | adult | adult | adult | 97% | 96% |
| 78 weeks 18 months | adult | adult | adult | 100% | 96% |
| 91 weeks 20.9 months | adult | adult | adult | adult | 100% |
Adult weight ranges per class: Toy 3-12 lb (1.4-5.4 kg), Small 12-25 lb (5.4-11.3 kg), Medium 25-50 lb (11.3-22.7 kg), Large 50-90 lb (22.7-40.8 kg), Giant 90-180 lb (40.8-81.6 kg).
Download the curve data
The full model, including the anchor points and every interpolated weekly value, is published as open data under CC BY 4.0. Attribution to puppyweightcalculator.co is all we ask. If you are building a tool of your own, please take these rather than guessing.
- puppy-growth-curve-anchors.csv: the anchor points, which are the model itself.
- puppy-growth-curve-weekly.csv: every week from 8 weeks to maturity, with expected weight ranges.
- puppy-growth-curves.json: the same, with class metadata and sources.
The same three files, plus the scripts that fit the curves and the checks that prove the CSVs agree with the JSON, are on GitHub at macebooks/puppy-growth-curves. If you want to reproduce the fit rather than take our word for it, start there.
Has this been validated?
Yes. Against 9.8 million veterinary weight records. There are two separate claims here and they deserve separate answers.
Is the implementation correct?
Yes, and it is checkable. The model is covered by an automated test suite that asserts the curves rise monotonically, that every class reaches exactly 100%, that bigger breeds are a smaller fraction of their adult weight at every week from 8 to 52, and that the figures published on this site match what the model computes. The worked examples below are generated by the same function the calculator calls, so the arithmetic shown is the arithmetic performed.
Is the curve itself right?
The curves are fitted to measured data, not reconciled from other people's charts. The source is the dataset supporting Salt et al. 2017, deposited openly under CC BY 4.0: 14,957,947 visit records from a network of primary care veterinary hospitals, mostly in the United States, covering purebred dogs under three years old between 1994 and 2013. About 9.8 million records survived filtering to healthy visits.
For each visit we take the dog's weight as a fraction of the mean adult weight of its own breed in the same database, bin by size class and by week of age, and take the median. That is exactly what our curve claims to predict, so the two are directly comparable. Across all five classes the fitted curves sit within a mean absolute error of 1.07 percentage points of the observed medians.
This exercise also corrected us. An earlier version of these curves was calibrated by choosing between published sources that disagreed with each other. Measured against the data, that choice was wrong for four of the five size classes: toy, small and medium were too fast and giant was too slow, by as much as nine percentage points. The mean absolute error across all classes fell from 5.95 points to 1.07 when the curves were refitted. We are recording that here rather than quietly shipping the fix, because a page about method should show its corrections.
What is still not measured
The curve is validated. The error bands are not. The ±18%, ±12% and ±10% figures describe how much the estimate narrows as the model is given more information; they are not yet a measured prediction error. Producing that requires following individual dogs from puppyhood to maturity rather than comparing population medians, which is the next piece of work. Three further limits are worth stating plainly:
- "Adult weight" here means settled adult weight in a real clinic population, which includes some middle-aged weight gain, not an idealised lean weight.
- The source contains purebred dogs only. Mixed-breed estimates rest on size class alone and are not validated by this work.
- Maturity ages were not refitted, only the shape of each curve, so what residual error remains is concentrated at the very top of each curve.
Where the numbers come from
A note on a claim we will not make: several competing tools imply that canine growth data is proprietary or locked away. It is not. The primary sources below are free, and two of them are openly licensed. What does not exist publicly is the processed output, the actual completion fractions by size class, which is why this page publishes ours.
- Salt C, et al. (2017), "Growth standard charts for monitoring bodyweight in dogs of different sizes", PLOS ONE 12(9): e0182064. The underlying dataset is deposited at doi:10.17638/datacat.liverpool.ac.uk/377 under CC BY 4.0, openly downloadable, roughly 15 million weight records. The paper's fitted centile parameters are not published, only the charts.
- FEDIAF Nutritional Guidelines (2021), Table VII-8a, which publishes closed-form growth-completion equations by adult weight band, valid from 8 weeks to one year. This is the only published closed-form completion function by size class we have found, and it is compared against ours below.
- Hawthorne AJ, et al. (2004), Journal of Nutrition 134:2027S, which publishes logistic growth parameters for 12 breeds, from which percentage of adult weight at any age can be computed directly.
- WALTHAM Petcare Science Institute puppy growth charts, and breed size standards from recognised kennel clubs including the AKC and the FCI.
How our curve compares to FEDIAF's equations
Our curve is fitted to the Salt data rather than to FEDIAF, so this is an independent check rather than a circular one. FEDIAF's Table VII-8a is the most useful comparison available because it is a closed-form function rather than a rendered chart. Its bands are defined by adult weight in kilograms, so each of our size classes is matched to the band its adult midpoint falls in.
| Size class | FEDIAF band | 2.8 mo | 4 mo | 6 mo | 9 mo | 12 mo |
|---|---|---|---|---|---|---|
| Toy | up to 7 kg | 40% FEDIAF 48% | 56% FEDIAF 62% | 74% FEDIAF 77% | 87% FEDIAF 92% | 100% FEDIAF 102% |
| Small | over 7 to 15 kg | 36% FEDIAF 43% | 53% FEDIAF 57% | 73% FEDIAF 72% | 86% FEDIAF 87% | 92% FEDIAF 97% |
| Medium | over 15 to 27.5 kg | 31% FEDIAF 38% | 49% FEDIAF 53% | 70% FEDIAF 69% | 86% FEDIAF 85% | 90% FEDIAF 97% |
| Large | over 27.5 to 47.5 kg | 27% FEDIAF 36% | 45% FEDIAF 49% | 68% FEDIAF 64% | 85% FEDIAF 79% | 89% FEDIAF 90% |
| Giant | over 47.5 kg | 23% FEDIAF 29% | 40% FEDIAF 42% | 63% FEDIAF 57% | 84% FEDIAF 72% | 89% FEDIAF 82% |
Bold is this model; below it is FEDIAF's equation for the matching band. FEDIAF declares itself valid only from 8 weeks to one year, and being logarithmic its curves exceed 100% beyond that, so it is not shown past 52 weeks.
The two are close through mid-growth, mostly within a few points, which is worth something because they were derived independently: ours from roughly 9.8 million measured visits, FEDIAF's from German work of 1989 and 1992. They part company in two places, and we would rather point at that than smooth over it. At 12 weeks FEDIAF runs 6 to 9 points higher than the measured medians in every size class, and for giant breeds at 9 months it runs about 12 points lower. Where a closed-form fit from thirty-year-old work disagrees with millions of measured weights, we follow the measurements, but the disagreement is real and we have not resolved why it exists.
How much do healthy puppies of the same age actually differ?
Every growth chart, including ours, gives an expected weight, which quietly invites owners to read it as a target. The more useful number is how far apart healthy puppies of the same size class and age really are. The same 9.8 million records answer that, and as far as we can tell nobody has published it.
Below, the middle 80% of dogs at each age, as a plus or minus percentage of the median for that same age and class. A figure of ±30% means the 10th percentile dog weighs about 30% less than the median and the 90th percentile dog about 30% more.
| Size class | 8 wk | 12 wk | 16 wk | 20 wk | 26 wk | 39 wk | 52 wk |
|---|---|---|---|---|---|---|---|
| Toy adult range spans 4x | ±46.8% | ±47.6% | ±48.7% | ±49.8% | ±52% | ±52.6% | ±51% |
| Small adult range spans 2.1x | ±40.6% | ±38% | ±36% | ±35.1% | ±36.4% | ±36% | ±37.7% |
| Medium adult range spans 2x | ±40.9% | ±36.5% | ±34.2% | ±32.2% | ±32.7% | ±32% | ±33.5% |
| Large adult range spans 1.8x | ±40.7% | ±34.4% | ±30.4% | ±28.4% | ±29.2% | ±26.7% | ±28.1% |
| Giant adult range spans 2x | ±41.9% | ±33.9% | ±29.5% | ±26.9% | ±27.8% | ±25% | ±25.9% |
This is not our prediction error, and it should not be read as one. It is how much real dogs inside one size class differ from each other, which is dominated by breed rather than by anything the calculator does.
Two patterns are worth naming, and one of them we cannot fully explain. Every class starts at roughly the same width at 8 weeks, about ±40 to ±47%. After that they separate: the giant and large classes tighten markedly with age, giant from ±41.9% down to ±25%, while toy does not tighten at all and drifts slightly wider, from ±46.8% to around ±51%. Toy's persistent width is at least consistent with its adult range covering 3 to 12 lb, a 4-fold span. The remaining four classes all span only about 1.8 to 2.1-fold, so their steady decline from small through to giant is not explained by class width, and we do not have an account of it. We are showing it rather than tidying it away.
That is the case for asking about breed and parents rather than size class alone. Knowing the breed replaces a class that spans a 4-fold range with one that usually spans well under half that, and the parents' adult weights narrow it again. It is also why the reported band tightens from ±18% to ±12% to ±10% as you tell the calculator more.
Published under CC BY 4.0 alongside the curve data: observed-spread.json.
How a single estimate is produced
Five steps, applied in this order.
Step 1: Look up growth completion for the age and size class
- Formula: completion% = the curve above, linearly interpolated between anchor points.
- Age is clamped to between 3 weeks and the class's maturity age, because the curves do not describe anything outside that.
Step 2: Divide current weight by that fraction
- Formula: raw adult estimate = current weight ÷ (completion% ÷ 100).
- This single step is the whole method. Everything after it is refinement.
Step 3: Pull toward the breed's typical adult weight, if the breed is known
- Formula: adjusted = raw × 0.7 + breed midpoint × 0.3.
- Then clamped to between 0.85× the low end and 1.15× the high end of that breed's adult range, so a mis-typed weight cannot produce an absurd answer.
- With no breed, only the much looser size-class bounds apply: 0.6× to 1.6× the class range. 44 breeds carry their own ranges.
Step 4: Blend toward the parents' adult weights, if known
- Formula: blended = adjusted × 0.5 + parents' average × 0.5.
- Equal weighting is deliberate. Parent adult weight is the strongest predictor an owner can actually supply, and it is the one input that most improves the answer.
Step 5: Apply the sex adjustment and the error band
- Sex: the estimate is multiplied by 1 ± the class premium, giving a male-to-female gap of about 11% for medium breeds and 20% for large ones. Breed pages use sourced per-breed figures instead, because the real gap varies far more by breed than by class.
- Band: ±18% with size class only, ±12% with a known breed, ±10% with parent weights.
- Not applied: neutering status. See the FAQ for why we collect it and ignore it.
Worked examples
Each example below is computed by the same function the calculator calls, so the working shown is the working done.
A 12-week Labrador Retriever weighing 25 lb
| Step | Working | Result |
|---|---|---|
| Growth completion at this age | Large class at 12 weeks | 27.3% |
| Divide current weight by that fraction | 25 lb ÷ 0.273 | 91.6 lb |
| Pull 30% toward the breed's typical adult weight | 91.6 × 0.7 + 67.5 × 0.3 | 84.4 lb |
| Apply the ±12% band for this level of information | breed known, parents unknown | 74 lb to 94 lb |
The same puppy, with both parents’ weights known (60 lb and 75 lb)
| Step | Working | Result |
|---|---|---|
| Growth completion at this age | Large class at 12 weeks | 27.3% |
| Divide current weight by that fraction | 25 lb ÷ 0.273 | 91.6 lb |
| Pull 30% toward the breed's typical adult weight | 91.6 × 0.7 + 67.5 × 0.3 | 84.4 lb |
| Blend 50% toward the parents' average | 84.4 × 0.5 + 67.5 × 0.5 (parents average 67.5 lb) | 75.9 lb |
| Apply the ±10% band for this level of information | breed and both parents known | 68 lb to 84 lb |
A 16-week mixed breed weighing 15 lb, expected to be medium
| Step | Working | Result |
|---|---|---|
| Growth completion at this age | Medium class at 16 weeks | 44.7% |
| Divide current weight by that fraction | 15 lb ÷ 0.447 | 33.6 lb |
| Apply the ±18% band for this level of information | size class only | 28 lb to 40 lb |
Why not the formula everyone else uses?
Most puppy weight calculators, including the ones currently ranking first for this topic, use adult weight = (current weight ÷ age in weeks) × 52. It treats growth as a straight line. Growth is not a straight line, so the error is not random, it is systematic and it changes direction with age. Because the rule multiplies up to exactly 52 weeks, it overshoots through most of puppyhood, shrinks toward zero error near one year, and then begins to undershoot. The same large-breed dog at four ages:
| Puppy | Linear formula | This model | Difference |
|---|---|---|---|
| 8-week large-breed puppy at 13 lb | 84.5 lb | 85 lb | -0.5 lb |
| 6-month large-breed puppy at 46 lb | 92 lb | 67.7 lb | +24.3 lb |
| 10-month large-breed puppy at 66 lb | 78 lb | 75.7 lb | +2.3 lb |
| 14-month large-breed puppy at 72 lb | 62.4 lb | 76.6 lb | -14.2 lb |
Both columns use the same puppy weights. Note that the error changes sign: no single correction factor can fix a formula that is too high at four months and too low at fourteen. That is what a curve is for.
What this method gets wrong
- It is not validated against measured outcomes. Stated above, repeated here because it is the most important limitation on the page.
- Four of five curves are extrapolated from the one that is anchored to evidence.
- Very young puppies are unreliable. Below about 8 weeks, weight depends heavily on litter size and weaning, and the curve is extrapolated rather than anchored.
- Mixed breeds of unknown parentage get the widest band the tool produces, and it is still probably too narrow if the parents differed greatly in size.
- Size class is a blunt instrument. The large class spans a Labrador and a Rottweiler. Breed pages exist because of this.
- An overweight puppy produces an overweight prediction. The model has no way to know the difference between a big frame and excess condition, which is why body condition score matters more than the number on the scale.
- Illness, poor nutrition and growth disorders are outside the model entirely. It describes healthy growth.
Method FAQ
At what age do puppies reach 50% of their adult weight?
It depends on the size class, which is the point of using curves rather than one rule. On this model a toy breed passes half its adult weight at about 13 weeks, a small breed at 14, a medium breed at 15, a large breed at 17 and a giant breed at 22. As a general benchmark, most puppies are halfway to their adult weight somewhere between three and five months, with bigger breeds later.
How accurate is a puppy weight calculator?
As a general benchmark, published consumer estimates for purebred puppies cluster around 10 to 20% of true adult weight, and wider for mixed breeds. This calculator reports ±18% when it only knows a size class, ±12% when it knows the breed and ±10% when it also knows the parents' adult weights. Those bands describe how much the model narrows as it is given more information. They are not a measured error rate, and we say so plainly in the validation section above rather than implying they have been tested.
How do you predict a puppy’s full grown size?
Divide the puppy's current weight by the fraction of adult weight typical for its age and size class, then adjust for what else you know. Breed narrows it, because breeds have known adult ranges. The parents' adult weights narrow it further and are the single strongest predictor an owner has access to. Age and current weight alone will get you a usable range; guessing from paw size will not.
Why does the calculator ask about neutering and then ignore it?
Because the honest answer is that it should not change the estimate. Neutering before maturity slightly delays growth-plate closure, which affects final height more than final weight, and the effect on healthy adult bodyweight is small. Weight gain after neutering is usually body fat rather than frame, and predicting obesity is not what this tool does. We collect the field because owners expect to be asked and because it may matter for a future version; today it does nothing, and that is a better answer than quietly applying a factor we cannot justify.
Can I use these numbers in my own work?
Yes. The curve values are published on this page and downloadable as CSV and JSON under CC BY 4.0. Attribution to puppyweightcalculator.co is all we ask. If you are building something similar, we would rather you started from the same open sources we did, which are linked in full below.
Cite this page
Model version 2026.07, last updated 28 July 2026.
puppyweightcalculator.co. Puppy Growth Curve: The Model Behind This Calculator. Model version 2026.07. Updated 28 July 2026. https://puppyweightcalculator.co/methodology/
Curve data is CC BY 4.0. The page text is not; please quote and link rather than republishing it wholesale.
Changelog
- 2026.07 (28 July 2026): all five curves refitted to measured data, the Salt et al. 2017 supporting dataset, reducing mean absolute error from 5.95 to 1.07 percentage points. This superseded an earlier same-day recalibration that had been derived by choosing between disagreeing published sources, and which the data showed was wrong for four of five size classes. Large-class sex premium raised from 7% to 9%. Weight display rounded to whole units at ten and above. This page first published.
These are estimates for healthy puppies and are not veterinary advice.