Growth Chart Plotter App

2014 WHO Growth Charts for Canada

In 2014, the Public Health Agency of Canada (PHAC) and their Collaborative Committee on national growth charts released the revised 2014 WHO Growth Charts for Canada. Both Set 1 and Set 2 were intended to address concerns raised by Canadian chart users. Weight-for-age reference curves were extended to ages 10–19 years based on re-analysis by the Canadian Pediatric Endocrine Group (CPEG) of the ‘core data’ from the US National Center for Health Statistics, collected by NCHS from 1963–1975 and used by the WHO to develop their 2007 reference curves. In the Set 2 charts, granularity was added in the normal range (−2 to +2 SD) through restoration of the 7 centiles familiar to long-time CDC Growth Chart users, important in the application of conventional diagnostic criteria for failure to thrive and hypertension. Potentially misleading extreme centiles were also dropped or de-emphasized, consistent with the published CPEG re-analysis.

We have therefore created a number of on-line plotting tools to prepare hi-resolution JPEG images for publication or presentation of growth trajectories with these new charts. Detailed instructions follow the links. For optimal viewing, you may wish to widen the browser window so that you can see each data entry line separately, with two adjacent plots. An HTML5-compliant browser is required to use this plotter, which takes advantage of the HTLM5 canvas graphics. Chrome, Firefox, or Safari are recommended.

Set 2 Charts (released by PHAC in September, 2014):
Set 1 Charts (released by PHAC in March, 2014):
Other links:

For those of you needing batch calculations, we also provide a number of on-line and stand-alone tools. For details, see the links for our WHO macros and Shiny apps below.


Instructions for using web plotter, ages 2–19 years

Instructions for using the infant plotter (ages 0–2 years) are similar. Click here for a list of major differences and implementation details.

Quick-start instructions (requires an HTML5-compliant browser, e.g. Chrome, Firefox, or Safari):
  • Enter date of birth: In Safari and Firefox, dates are entered as yyyy/mm/dd, e.g. 2000/01/15. Chrome also uses a slightly different date format (yyyy-mm-dd, e.g. 2000-01-15).
  • Enter date of visit using the same date format.
  • Enter height in centimeters (cm).
  • Enter weight in kilograms (kg).
  • Click “Plot Visit”, the button to the right of the data entry fields.
Detailed instructions

The plotting application is intended to be fairly intuitive to use. In the production of publication quality versions of the 2014 WHO Growth Charts for Canada issued by the PHAC, it makes extensive use of HTML5 canvas graphics, which require an HTML5-compliant web browser (Firefox, Chrome, Safari). Internet Explorer is NOT supported. The application uses both HTML5 and JavaScript code, available in any HTML5-compliant browser ‘out of the box’. If you have turned off JavaScript in your browser preferences, you will need to turn it back on. For optimal viewing, you may also wish to widen your browser window so that both the height–weight and body mass index charts are visible at the same time.

To plot height, weight, and body mass index (BMI), you will need to provide some data, including date of birth, date of visit (when the measurements were taken), height, and weight. To respect patient privacy laws, none of these data are shared with the server hosting this application, and all calculations are done locally in your browser.

  • Date of birth: In Safari and Firefox, dates are entered as yyyy/mm/dd, e.g. 2000/01/15 for January 1, 2000. In some browsers (e.g. Chrome), a calendar date picker may also be used. Chrome also uses a slightly different date format (yyyy-mm-dd, e.g. 2000-01-15 for January 1 2000), which will be specified in the data entry field.
  • Date of visit: Using the same date format, this refers to the date on which the measurements were actually made.
  • Height should be entered in centimeters (cm) and weight in kilograms (kg).
  • Once you have entered these data, click on “Plot Visit”, the button to the right of the data entry fields.

Clicking on this button instructs your browser to calculate the following results, which appear to the right of the data entry fields:

  • Height Z-score HZ
  • Weight Z-score WZ
  • Body mass index Z-score BMIZ

In addition, height, weight, and body mass index are plotted on the 2014 WHO Growth Charts for Canada, using a Set 2 or Set 1 template. Several additional buttons allow you to further modify or save these plots.

  • “Toggle Size”: Prepares large, high-resolution versions of the height–weight and BMI charts for viewing. The “Save/Get” button (below) allows you to save these images to your local hard drive.
  • “Clear Plot”: Clears the plots, but retains the data you've entered.
  • “Plot All”: Re-plots all of the data you've entered.
  • “Plot Options”: Brings up a panel of options that allow you to change the color and size of the plot symbol. After changing the symbol, you can re-plot all visits by clicking the “Plot All” button or revise a single visit clicking the adjacent “Plot Visit” button.
    • “Color”: Select a different color for the plot symbol.
    • “Radius”: Select a different size for the plot symbol.
    • “Hide Options”: Hide this panel again.
  • “Reset”: Erases both the plots and all data you've entered.
  • “Save/Get”: Brings up a panel of options for saving plots and data (for subsequent re-use).
    • “Save Data”: Current HTML5 security standards prohibit web browsers from saving data to your local hard drive. To respect these ‘best practices’ while still allowing you to revisit your work, this button will save the data to your local browser cache, a secure area where browsers are allowed to store ‘cookies’. This allows you to temporarily save all the data you've entered in the secure browser cache, where it will remain until the cache is emptied, typically once a year unless you've changed your browser defaults (preferences). You will be given the opportunity to specify a name for the data file e.g. the hospital chart number, etc. Again, these data are not shared with the server hosting the application and are accessible only to the browser used to create the cookie in the first place.
    • “Get Data”: This will cause another panel to appear. From the drop-down list on the right, choose a data file previously saved to the local browser cache. The “Retrieve” button will allow you to retrieve these data (re-plotting them in the process). The “Delete” button can be used to delete this particular cookie, and the “Hide” button will conceal the panel again.
    • “Save Plot 1” and “Save Plot 2”: These buttons produce high-resolution, publication-quality JPEG images of the height/weight-for-age (Plot 1) or the BMI-for-age charts (Plot 2). These can be saved on your own hard drive, where they can be viewed, edited, printed or added to a presentation in applications like Word or PowerPoint. For security reasons, web browsers are not allowed to save images to your hard drive without permission. So when you click this button, you will be given instructions on how to save the JPEG file for future use (right-click and save).

Instructions for using the web plotter, ages 0–2 years

Operation of the infant plotter is nearly identical with the some minor exceptions. Unlike the charts for older children, the flip side of the length- and weight-for-age chart does not plot BMI-for-age, but instead displays head circumference and weight-for-length. Although the WHO provides BMI charts for infants and many national health agencies use them routinely, Canadian authorities prefer weight-for-length, in part to mitigate inaccuracies in the measurement of length at this age. This may be particularly relevant in a clinical setting, since height (length) is squared in the denominator of the BMI calculation. Other differences include:

  • The data entry form includes an additional slot for head circumference in cm (optional).
  • For the infant plotter, standing height is replaced by recumbent length. According to the WHO, if standing height is measured instead, it should be converted to length = height + 0.7 cm before Z scores are calculated.
  • As for older children, the output data form calculates Z-scores for length (LZ), weight (WZ), and BMI (BMIZ). In addition, Z-scores are displayed for head circumference (HCZ) and weight-for-length (WfLZ).

WHO macros

It is worth noting that JavaScript was never intended for serious scientific applications, as opposed to animated hamster GIFs. As a result, it lacks standard features, like a normal probability density function or a look-up function for matching age and sex with the tabulated LMS parameters. For the web plotter, age is therefore rounded to the nearest month before matching to the corresponding row in the LMS look-up table. In contrast, the WHO statistical macro packages use linear interpolation to estimate the ‘exact’ LMS parameters before calculating the Z-scores. In general, the difference is trivial (a wobble of 0.01 or 0.02 in the second decimal point). The same is true of length, which is rounded to the nearest whole centimeter before weight-for-length Z-scores are calculated. For this reason, statistical purists may prefer to use the WHO macro packages for R, SAS, Stata and SPSS, which come in three flavors:

  • igrowup: for ages 0–5 years according to the WHO Standard
  • who2007: for ages 5–19 years according to the WHO Reference
  • CPEG revisions (2016) of both macros packages for R, SAS, and Stata.

Any of these macro packages can be used to analyze batch files in an appropriate statistical package. Please note that the who2007 macro packages calculate weight-for-age for ages 5–10 years only. If you wish to extend the range to include ages 10–19 years, you should use the CPEG revisions (2016) available from our website. These revised macro packages return WHO calculations where WHO LMS tables are available, but will also calculate weight-for-age Z-scores based on our 2014 re-analysis of the WHO data for ages 10–19 years (BMC Pediatrics 2014;14:32). Please note that the original WHO macro packages for SAS, Stata, and SPSS have not been updated since 2007. In contrast, the R macros were updated in 2013. While I revised the SAS and Stata packages in 2016, I will probably not continue to maintain them.

So you may want to follow the WHO example and use the R macros. More information about R and free downloads for various platforms can be found at The Comprehensive R Archive Network.


Shiny apps

There is also an option for those wanting the WHO macros without the bother of a statistical package. We have created an online application (Zapps™) running the WHO macros on an R server (aka Shiny).

  • igrowup: a Shiny app for ages 0–5 years according to the WHO growth standards
  • who2007: a Shiny app for ages 5–19 years according to the WHO growth reference
  • quickZ_WHO: a Shiny app which combines the data from igrowup and who2007 for calculating Z-scores for height, weight and BMI for children from 0–19 years of age using a single application
  • quickZ_CDC: a Shiny app for calculating Z-scores for height, weight and BMI for children from 0–20 years of age according to the US CDC growth reference
  • WCz: a Shiny app for ages 5–19 years based on NHANES III waist circumference reference data
  • Shiny apps for ages 1–18 years, based on blood pressure reference data from the American Academy of Pediatrics, 2017:
    • BPz: for batch calculations
    • BPz_DDE: for direct data entry (mobile version)
  • preterm: a Shiny app for preterm infants 22–45 weeks, based on data from Fenton, 2013
  • DownZ: a Shiny app for children with Down syndrome aged 0–20 years, based on data from Zemel et al, 2015
  • PWSZ: a Shiny app for children with Prader–Willi syndrome (non–GH-treated) aged 0–18 years, based on data from Butler et al, 2011 and 2015

On the Shiny server, batch data may be uploaded in the form of a comma separated variable (.csv) spreadsheet, from Excel or similar. An Excel calculator is also available for processing batch files (Windows only).

For those who prefer to create growth charts by uploading anthropometric data in spreadsheet (.csv) format, we have also created a Shiny plotter for this purpose. Unlike this web plotter (which is written in HTML5 and JavaScript), the Shiny host is capable of serving results from the statistical package R, which makes it easier to support experimental features, such as joining lines, symbol and colour choices, etc. Please let us know what you think.

Or if you prefer to combine direct data entry with the versatility of Shiny:


If you have questions, comments or suggestions, please contact Dr. Atul Sharma or Dr. Dan Metzger.