BP Calculator Validation Report
Version 3.1 • AAP 2017 / Rosner model • Implementation and automated test suite reviewed August 3, 2026; not independent clinical certification
The clinical risk being tested is a plausible-looking wrong answer. The suite therefore checks numerical agreement, category boundaries, explanatory text, and user-interface behavior in a real browser.
Reference-table validation
The regression engine is compared with every printed numeric BP value in AAP 2017 Tables 4 and 5:
| Dimension | Coverage | Count contribution |
|---|---|---|
| Sex | Male and female reference models | 2 |
| Age | Every whole year from 1 through 17 | 17 |
| Height | 5th, 10th, 25th, 50th, 75th, 90th, and 95th percentiles using the printed centimeter heights | 7 |
| BP component | Systolic and diastolic | 2 |
| Printed row | 50th, 90th, 95th, and 95th + 12 mmHg | 4 |
| Total comparisons | 2 × 17 × 7 × 2 × 4 = 1,904 | |
The frozen comparison result is 1,016 exact matches and 1,883 of 1,904 cells (98.9%) within 1 mmHg; all cells are within 2 mmHg. The automated acceptance criterion is no cell beyond 2 mmHg and no change to that distribution without clinical review.
The calculator retains the continuous Rosner model for smooth month-by-month age and measured-height output, matching Baylor’s implementation. The AAP tables are an independent integer-valued reference at rounded printed heights, so a small number of model-versus-table cells differ by 2 mmHg. Category logic uses the model’s rounded 90th and 95th thresholds exactly as shown to the user; it does not apply this validation tolerance to an individual reading.
Boundary and behavior coverage
| Area | What is asserted |
|---|---|
| Category edges | Normal, elevated, stage 1, and stage 2 boundaries; percentile versus absolute “whichever is lower” rules; independent SBP/DBP drivers. |
| Age 13 transition | Fixed adolescent thresholds begin at 13 years and the visual scales agree with the reported category. |
| Height reference | Official monthly CDC LMS values, length under age 2, stature from age 2, and height-percentile display checks. |
| Age, units, and dates | Age-years/months versus DOB equivalence; centimeter versus feet/inches equivalence; drift-free unit toggling; completed-month age calculation; month-end dates; required measurement date; and timezone-safe date-only parsing. |
| Repeat readings | Two- and three-reading arithmetic means, individual-value display, decimal means, classification of the mean, and copy-result fidelity. |
| Invalid inputs | All invalid fields reported together, inline error association, aria-invalid, first-invalid focus, missing dates, unsupported ages, implausible heights, BP input ranges, and DBP greater than or equal to SBP. |
| Presentation | No stale results after edits, percentile and normal-equivalent z-score output, explicit distance to thresholds, reading-not-diagnosis language, driver text, category-specific next steps, copy, print, and interactive chart rendering. |
| Accessibility/layout | Labels, keyboard controls, live status regions, focus indicators, semantic controls, pattern-distinguished/directly labeled chart lines, dark-mode rendering, no horizontal overflow at 375 px, and no external runtime dependencies. |
Independent comparisons
- The same Rosner coefficient implementation was cross-checked against Baylor College of Medicine’s age-based reference calculator across childhood, adolescence, both sexes, and category-boundary cases.
- Official AAP Table 6 values are reproduced only as a clearly labeled screening reference; they are not used as diagnostic thresholds.
- CDC length/stature percentiles use the official monthly LMS data files rather than nearest-year approximations.
Known limits
- This validates faithful implementation of the cited references; it does not validate the underlying guideline as a clinical trial.
- The tool does not diagnose hypertension, assess symptoms, select cuff size, interpret ABPM, provide hypotension limits, or cover children under 1 year.
- The age curves project the entered child’s current length/height-for-age percentile across ages. They are explanatory reference curves, not a forecast of an individual child’s future BP.
- BP z-scores are normal-equivalent transforms interpolated from the 1st–99th Rosner quantile curves. Values outside that range are bounded rather than extrapolated.
- Institutional policies and newer guidance should take precedence if they differ.
Reproducibility
The browser tests, reference fixture provenance, and calculator source are versioned with the website. The main acceptance command is npm run test:bp; the full site regression command is npm test.
View the test suite on GitHub • AAP guideline • CDC growth data