The formula
The calculator uses a single linear relationship between daily oral cholecalciferol intake and steady-state serum 25-hydroxyvitamin D. The literature calls this the Heaney serum-dose response. At a 70 kg reference body weight, an additional 100 IU/day raises serum 25(OH)D by approximately 1 ng/mL once the system has plateaued (8–12 weeks, set by the ~3-week half-life of 25(OH)D).
The dose to bridge a baseline to a target is:
required IU/day = (target ng/mL − baseline ng/mL) × 100 × (weight kg / 70)
The body-weight term is the only adjustment: heavier people distribute the dose into a larger volume, so they need a proportionally larger input to land at the same serum concentration. The slope itself (1 ng/mL per 100 IU/day) is held constant.
Worked example. A 75 kg adult with a measured 22 ng/mL baseline aiming for 45 ng/mL: delta is 23 ng/mL; weight factor is 75/70 ≈ 1.071; required dose is 23 × 100 × 1.071 ≈ 2,464 IU/day. The calculator rounds to the nearest IU and flags magnesium and vitamin K2 cofactors once the daily dose crosses 1,000 and 2,000 IU/day respectively.
Why those specific numbers
The 100 IU per 1 ng/mL slope traces to Heaney et al., Am J Clin Nutr 2003 (PMID 12499343), the dose-finding study where 67 men in Omaha received controlled cholecalciferol doses for ~20 weeks of winter and serum 25(OH)D was measured at steady state. The reported slope was roughly 0.70 nmol/L per 1 mcg/day input, which converts to approximately 1 ng/mL per 100 IU/day at the cohort's mean body weight. That coefficient has been replicated, with mild variation, across subsequent cohorts and is the working model used by clinicians who titrate by serum.
The 4,000 IU/day ceiling the calculator clamps to is the Institute of Medicine tolerable upper intake level: the dose below which adverse events have not been reliably observed in the general adult population. Doses above that are not necessarily harmful, but they leave the territory the calculator is willing to recommend without serum monitoring.
The threshold conventions baked into the bracket labels reflect a real disagreement in the field. The 2024 Endocrine Society Clinical Practice Guideline (PMID 38828931) declines to define an "optimal" 25(OH)D for healthy adults and recommends against routine testing, while a 2025 review by Grant, Wimalawansa, Pludowski, and Cheng (PMID 39861407) argues that observational cohort data support targets of 40–70 ng/mL. The calculator surfaces both the 30 ng/mL "sufficient" and 40+ ng/mL "optimal (many clinicians)" brackets so users can pick the convention they trust.
Assumptions and limits
The model assumes daily oral cholecalciferol (vitamin D3) in healthy adults with normal absorption. Specifically, it does not apply when:
- Ergocalciferol (vitamin D2) is used. D2 has a shorter serum half-life and a lower potency-per-IU than D3 in most head-to-head trials, so the slope shifts.
- Fat malabsorption is present (celiac disease, post-gastric-bypass anatomy, cystic fibrosis, chronic pancreatitis, or ileal resection). Oral D3 needs intestinal fat absorption to reach circulation.
- Granulomatous disease is present, especially sarcoidosis, tuberculosis, or some lymphomas. Granulomatous tissue can convert 25(OH)D to 1,25-dihydroxy outside the kidney's regulatory loop and produce hypercalcemia at otherwise unremarkable serum 25(OH)D concentrations.
- The user is on thiazide diuretics or has a calcium-rich diet plus chronic high-dose D3. The combination raises hypercalcemia risk.
- The user is pregnant, lactating, an infant, or under 18. The slope and ceiling differ in those populations and the calculator does not target them.
The calculator does not replace serum 25(OH)D testing. Steady state takes 8–12 weeks; the right cadence is to measure at baseline, dose, retest at 8–12 weeks, and retitrate. Body-weight scaling is an approximation; body fat percentage matters more than total mass, and obese patients often need higher inputs than the linear weight term predicts.
Unit conventions
Two conversions cause most of the confusion in this dose space.
International Units to micrograms. The pharmacopoeia conversion is 40 IU = 1 mcg of cholecalciferol. A 2,000 IU softgel is 50 mcg; a 5,000 IU softgel is 125 mcg. European product labels often use mcg; U.S. labels almost always use IU.
ng/mL to nmol/L. Multiply ng/mL by 2.5 to get nmol/L (or divide nmol/L by 2.5 to get ng/mL). U.S. labs report 25(OH)D in ng/mL; European, Australian, and most Canadian labs report in nmol/L. So 30 ng/mL = 75 nmol/L and 50 ng/mL = 125 nmol/L. The Endocrine Society guideline and most European literature you will encounter speak in nmol/L; the calculator and U.S.-centric literature speak in ng/mL. The numbers are not different, only the units.
Why this is documentary, not prescriptive
The calculator is a research-first tool, not a prescription. The Heaney slope is a population average, not a personal coefficient. Your actual response can vary by 30–50% depending on body fat, baseline status, polymorphisms in the vitamin D receptor and binding protein, and seasonal sun exposure you may not be tracking. The only way to know your personal response is to dose, retest at 8–12 weeks, and retitrate against the measured serum 25(OH)D. Use the calculator to get into the right order of magnitude. Use the lab to calibrate it. Discuss the result with a clinician before acting on it, particularly if your baseline is below 20 ng/mL (where loading-dose protocols apply) or if any of the contraindications above describe you. Every PMID on this page was verified live against PubMed before publication by the same INT-01 citation guardrail that gates the calculators on this site.