Pashosh
Pashosh
homeHomehistory_eduLogstrending_upGrowthbedtimeSleep
groupsMy TribesettingsSettings

Loading…

Loading…

How we calculate

How Pashosh estimates growth percentiles and typical sleep and feeding ranges.

Educational estimates only — not a diagnosis, a clinic growth chart, or a care plan. Always follow your pediatrician.

ℹ️

ℹ️What “typical” / “usual for this age” means

On sleep and feed cards, that line is not a percentile. We are not ranking your baby against other babies. It is an educational range for this age — a usual band many babies fall in, not a target you must hit.

Growth still uses percentiles (what share of same-age babies are smaller). Sleep and feeds use lookup tables by age, then the formulas below.

🎂

🎂Age

Age in months comes from the baby's date of birth. Public calculators also let you type age in months if you have not signed in. Missing date of birth in the tracker defaults age to 6 months for these lookups.

Formula

ageMonths = (now.year − dob.year) × 12
           + (now.month − dob.month)
           + (now.day − dob.day) / 30
if no date of birth: ageMonths = 6
📈

📈Growth percentiles (weight, height, head)

Weight, length/height, and head circumference are compared to simplified P3 / P50 / P97 points. US/FDA settings use WHO to 24 months, then CDC. WHO and Israel (Tipat Halav / Ministry of Health) settings use WHO Child Growth Standards from 0–60 months — not CDC.

We interpolate between table ages, then estimate a percentile with piecewise linear interpolation between those three points. Values below the 3rd or above the 97th are clamped to about 1–99. This is an approximation — not the full WHO LMS z-score method clinics use. If gestational week at birth is saved and is before 40, the size chart starts corrected: those weeks (and extra days, if set) are subtracted from age. Uncheck it on the chart to use calendar age. Sleep and feeds stay on calendar age.

Head circumference uses the same method as weight and height.

Formula

u = (age − ageA) / (ageB − ageA)
p3  = p3A  + u × (p3B  − p3A)
p50 = p50A + u × (p50B − p50A)
p97 = p97A + u × (p97B − p97A)

if value ≤ p3:
  percentile = max(1, round(3 × value / p3))
else if value ≤ p50:
  t = (value − p3) / (p50 − p3)
  percentile = round(3 + t × 47)
else if value ≤ p97:
  t = (value − p50) / (p97 − p50)
  percentile = round(50 + t × 47)
else:
  percentile = min(99, round(97 + (value − p97) / p97 × 2))
🎨

🎨The growth chart band

The shaded band is the typical range between the 3rd and 97th percentiles. The unshaded area is below the 3rd or above the 97th — not missing data. The dashed line is the median (50th). Your baby's measurements are the solid line.

😴

😴Sleep

Sleep cards show the total-sleep band for the baby's age from the same table as the sleep calculator. Naps and night sleep are counted together.

Ranges are wide on purpose. They are not a sleep-training plan.

Formula

napHoursMin = max(0, totalHoursMin − nightHoursMax)
napHoursMax = max(napHoursMin, totalHoursMax − nightHoursMin)
AgeTotal sleepNight sleepNap hours
Newborn (0–1 month)14–17 h8–10 h4–9 h
1–4 months12–16 h9–11 h1–7 h
4–6 months12–15 h10–12 h0–5 h
6–12 months12–14 h10–12 h0–4 h
12–24 months11–14 h10–12 h0–4 h
2+ years10–13 h10–12 h0–3 h
🧸

🧸Tummy time

Home shows today’s tummy minutes against a simple daily goal by chronological age: about 15 minutes under 1 month, 30 minutes from 1–3 months, and 60 minutes after 3 months (AAP-style ramp). WHO 2019 physical-activity guidance for infants under 1 year also recommends at least 30 minutes of tummy time across the day when awake.

The goal is a soft target for supervised floor play, not a medical prescription. Live sessions count toward today while running.

Formula

if ageMonths < 1: goalMinutes = 15
else if ageMonths < 3: goalMinutes = 30
else: goalMinutes = 60

todayMinutes = sum(tummy log durations on local day)
             + live elapsed (if tummy session active)
AgeGoal (min/day)
0–115
1–330
3+60
🍼

🍼Feeds

“Usual feeds/day” is the span covering both bottle-feeding and nursing tables, because the feed chart counts every feed (bottle, nursing, solids).

“Usual bottle ml/day” uses the bottle table only: smallest per-feed × fewest bottle feeds, through largest per-feed × most bottle feeds. Solids and nursing have no milliliter target.

Under six months, a logged weight replaces per-feed milliliters with a 150–200 ml per kg per day split across the midpoint of bottle feeds/day, rounded to 5 ml.

Formula

usualFeedsMin = min(bottleFeedsMin, nursingFeedsMin)
usualFeedsMax = max(bottleFeedsMax, nursingFeedsMax)

dailyBottleMin = perFeedMlMin × bottleFeedsMin
dailyBottleMax = perFeedMlMax × bottleFeedsMax

if weightKg > 0 and age < 6 months:
  midFeeds = (bottleFeedsMin + bottleFeedsMax) / 2
  perFeedMlMin = round(weightKg × 150 / midFeeds / 5) × 5
  perFeedMlMax = round(weightKg × 200 / midFeeds / 5) × 5
AgeBottle feeds/dayNursing feeds/dayShown as usual feeds/dayUsual bottle ml/day
0m8–128–128–12240–1080
1m6–87–96–9540–960
3m5–76–85–8600–1260
6m4–65–74–7720–1260
9m3–55–73–7540–1200
12m3–53–53–5540–1200
⚖️

⚖️Units

Calculations use kilograms, centimeters, and milliliters internally. We convert to pounds, inches, and ounces when you choose imperial units.

🛡️

🛡️Immunity (Health tab)

The Immunity tab shows illustrative kinetics, not antibody titers. Maternal serum IgG uses an exponential decay with time constant 2.1 months (Leuridan-style mean passive duration). Infant “active” uses a logistic curve with midpoint at 6 months.

Due-dose coverage counts non-optional schedule items whose recommended age is ≤ current age, excluding vitamin K. RSV due age follows the baby’s first-winter rule. Active shown = activeBase × (0.4 + 0.6 × coverage). Missing country leaves coverage null and treats the active line as typical (ratio 1).

Breast-milk status looks at feed logs in the last 7 days: nursing and bottled breast milk count as milk; formula counts as not milk; solids are ignored. Exclusive → mucosal 0.25, mixed → 0.12, none/unknown → 0. Immunity score is round(100 × combined), where combined is 1 − (1−passive)×(1−active)×(1−mucosal). When the last 7 days include breast milk, that factor lifts the total line through today, so the chart sits higher. After today it splits: without breast milk drops the factor; with breast milk keeps it. If that week had no breast milk, the past total has none and the with-milk future uses 0.25. The maternal line is serum IgG through today. Milk does not change serum IgG.

Formula

passive = exp(−ageMonths / 2.1)
activeBase = 1 / (1 + exp(−0.6 × (ageMonths − 6)))
active = activeBase × (0.4 + 0.6 × coverageRatio)
mucosal = 0.25 exclusive | 0.12 mixed | 0
totalThroughToday = 1 − (1−passive)×(1−activeBase)×(1−mucosal)
combined = 1 − (1−passive)×(1−active)×(1−mucosal)
score = round(100 × combined)
futureWithoutMilk = 1 − (1−passive)×(1−activeBase)
futureWithMilk = last-week mucosal when breastfed, else ×(1−0.25)

phases: <3 maternal | 3–6 vulnerability | 6–12 building | ≥12 established

Immunity

⚠️

⚠️What this is not

We do not diagnose faltering growth, dehydration, or sleep disorders. If gestational week is set and is before 40, growth percentiles default to a simple corrected age (weeks and days before 40 subtracted). Uncheck that on the size chart for calendar age. That is still an approximation — not a clinic premature-adjusted method. Clinic measurements and your clinician's judgment always come first. Feed and sleep charts sum what you logged — they have no percentile overlay.

Growth · Growth calculator

TermsPrivacyHow we calculateDelete account
homeHomehistory_eduLogstrending_upGrowthbedtimeSleephealth_and_safetyHealthgroupsMy TribesettingsSettings