{
  "id": "puppy-weight",
  "version": "fbdf50e8177a",
  "status": "published",
  "name": "Puppy Weight Calculator",
  "question": "What will my puppy’s weight be?",
  "summary": "Estimates a puppy’s adult weight from its current weight, age and size class with a logistic growth curve from a study of puppy growth, and draws the expected growth by age.",
  "category": "biology",
  "subcategory": "animals",
  "url": "https://www.acalculator.org/biology/puppy-weight-calculator",
  "markdown": "https://www.acalculator.org/biology/puppy-weight-calculator.md",
  "kind": "formulas",
  "method": "adult weight = current weight ÷ f, where f = 1 ÷ (1 + exp(−(age in weeks − x0) ÷ b)) and b = (T99 − x0) ÷ ln 99, with x0 and T99 set per size class (Hawthorne et al. 2004).",
  "assumptions": [
    "Growth follows a logistic curve, the form Hawthorne et al. (2004) fitted to puppies of 12 breeds. Real puppies vary a lot around any curve.",
    "x0 (weeks to half of adult weight) and T99 (weeks to 99%) per size class: toy 11.1 and 39, small 14.05 and 41, medium 17 and 43.5, large 19.95 and 52, giant 22.9 and 65. The toy and giant x0 are the Papillon and English Mastiff values from the study; the other x0 are equal steps between them, and each T99 is inside the ranges the study reports (about 9 to 10 months for toy to medium breeds, 11 to 15 months for large and giant breeds).",
    "The age is from 8 weeks to 2 years, and weights are at most 150 kg (331 lb). Mixed breeds: pick the size you expect the adult to be."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "w": {
        "title": "Current weight",
        "description": "The puppy’s weight today.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "mass",
        "exclusiveMinimum": 0,
        "maximum": 150
      },
      "age": {
        "title": "Age",
        "description": "The puppy’s age today, from 8 weeks to 2 years.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "time",
        "minimum": 4838400,
        "maximum": 62899200
      },
      "adult": {
        "title": "Estimated adult weight",
        "description": "The weight the growth curve predicts once the dog is fully grown.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "mass",
        "exclusiveMinimum": 0,
        "maximum": 150
      },
      "size": {
        "title": "Size of breed",
        "description": "The size class of the breed, by typical adult weight.",
        "type": "string",
        "enum": [
          "toy",
          "small",
          "medium",
          "large",
          "giant"
        ]
      }
    }
  },
  "solve": {
    "fillAny": 2,
    "variables": [
      "w",
      "age",
      "adult"
    ],
    "inputsOnly": []
  },
  "outputs": {
    "current": {
      "label": "Current weight",
      "description": "The puppy’s weight today.",
      "format": "quantity"
    },
    "age": {
      "label": "Age",
      "description": "The puppy’s age today, from 8 weeks to 2 years.",
      "format": "quantity"
    },
    "adult": {
      "label": "Estimated adult weight",
      "description": "The weight the growth curve predicts once the dog is fully grown.",
      "format": "quantity",
      "unit": "lb"
    },
    "grown": {
      "label": "Grown so far",
      "description": "The current weight as a share of the estimated adult weight.",
      "format": "percent"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "size": "medium",
      "w": 9.071847400000001,
      "age": 9676800
    },
    "outputs": {
      "adult": 19.861382314064603,
      "grown": 45.6758107595355
    },
    "text": "A Medium (10 to 25 kg / 22 to 55 lb) puppy weighing 20 lb at 16 wk should grow to about 43.8 lb."
  },
  "examples": [
    {
      "given": {
        "size": "medium",
        "w": 9.071847400000001,
        "age": 9676800
      },
      "expect": {
        "adult": 19.861382314064603,
        "grown": 45.6758107595355
      },
      "source": "hand calculation in content.mdx: b = (43.5 − 17) ÷ ln 99 = 5.767; f = 1 ÷ (1 + e^((17 − 16) ÷ 5.767)) = 0.45676; 9.0718 kg ÷ 0.45676 = 19.86 kg (43.8 lb) (Hawthorne et al. 2004 logistic form)"
    },
    {
      "given": {
        "size": "toy",
        "w": 1.1,
        "age": 6713280
      },
      "expect": {
        "adult": 2.2,
        "grown": 50
      },
      "source": "Hawthorne et al. (2004): Papillons reach 50% of their 2.2 kg adult weight at 11.1 weeks; at t = x0 the logistic fraction is exactly 1/2, so 1.1 kg ÷ 0.5 = 2.2 kg",
      "tolerance": 1e-12
    },
    {
      "given": {
        "size": "giant",
        "adult": 66.9,
        "age": 13849920
      },
      "expect": {
        "w": 33.45
      },
      "source": "Hawthorne et al. (2004): English Mastiffs (66.9 kg adult) reach 50% at 22.9 weeks; 66.9 × 0.5 = 33.45 kg",
      "tolerance": 1e-12
    },
    {
      "given": {
        "size": "large",
        "w": 30,
        "adult": 30.303030303030305
      },
      "expect": {
        "age": 31449600
      },
      "source": "definition of T99 in content.mdx: at 99% of adult weight the curve gives the class T99, 52 weeks for large breeds",
      "tolerance": 1e-9
    }
  ],
  "sources": [
    "Hawthorne, A. J., D. Booles, P. A. Nugent, J. Wilkinson, and G. Gettinby (2004). Body-weight changes during growth in puppies of different breeds. Journal of Nutrition 134(8), 2027S–2030S. https://doi.org/10.1093/jn/134.8.2027S",
    "Salt, C., P. J. Morris, A. J. German, D. Wilson, E. M. Lund, T. J. Cole, and R. F. Butterwick (2017). Growth standard charts for monitoring bodyweight in dogs of different sizes. PLoS ONE 12(9), e0182064. https://doi.org/10.1371/journal.pone.0182064",
    "NIST Special Publication 811 (2008), Appendix B.8: 1 lb = 0.45359237 kg exactly. https://www.nist.gov/pml/special-publication-811"
  ],
  "related": [
    "dog-age",
    "bmi"
  ],
  "changelog": []
}
