Shopify size chart apps and the measurement alternative
A chart widget puts your size table on the product page. It does not answer the shopper's actual question — which row is me — and that is the question fit returns come out of.
Last verified: 26 August 2026
A Shopify size chart app is a rendering layer. It stores a size table, attaches it to a product or collection, and shows it on the product page — usually a modal behind a "Size guide" link, injected as a theme app extension so nobody edits Liquid. That is worth having — a buried chart helps no one. It is also the ceiling: the chart hands the shopper back the problem they arrived with, deciding which row is them.
This page sits on the ShirtMath for Brands shelf, next to reducing fit returns and returns management. Below: what these widgets do, where the approach stops, and what you can and cannot integrate with ShirtMath today.
What a Shopify size chart app does
Stores a table. You paste in rows and columns, one chart per product type. The chart is content, not data: the app cannot tell whether the "20" in a cell is a flat chest width or a body circumference.
Attaches it to products. Rules match charts by collection, tag or product type. Most of the setup labour goes here, and so does the drift: a rule written in March serves the wrong chart to a style added in June.
Renders it at the decision point. An app block puts a link beside the variant selector and opens a modal. A minority also ask for height and weight and suggest a size — still off the same chart.
All of it is presentation. None of it changes the data underneath, where the fit problem lives.
Where a chart hits its ceiling
The chart rarely says what it measured. Body circumference and flat garment width are different numbers, and a column headed "Chest" can honestly be either. A shopper who measures around their chest and reads a flat width off your chart is out by roughly a factor of two.
The row is still a guess. A letter is not a measurement — it is the name a brand gives a set of numbers, and different brands give the same name to different numbers. One letter, across the eight blank tee styles ShirtMath holds specs for:
| Style | Chest at M (in) | Length at M (in) |
|---|---|---|
| Bella+Canvas 3001C | 20.0 | 29.0 |
| Champion T525C | 20.0 | 29.0 |
| Comfort Colors C4017 | 20.5 | 29.5 |
| Gildan 5400 | 20.0 | 29.0 |
| Gildan G500 | 20.0 | 29.0 |
| Gildan G500L (ladies) | 17.5 | 26.0 |
| Hanes 5250T | 20.0 | 29.0 |
| Next Level 3600 | 20.5 | 29.0 |
The seven unisex styles agree within 0.5" at Medium. The ladies' cut is 17.5" — a 3.0" gap on the same letter, 3.5" at Large (19.0" against 22.0–22.5"). A shopper who knows they wear a Medium knows nothing useful about which of these fits, and no modal can tell them: the fact is in the data, not the presentation. The letter drifts within one brand over the years too — the separate problem vanity sizing documents.
Under both sits the tolerance the brands state on these specs: ±0.3–0.8". An engine promising quarter-inch precision on top of a chart promises more than the chart holds.
Garment-to-garment matching, mechanically
The alternative does not ask the shopper to describe their body. It asks for a garment they already own and already like, then subtracts.
- The shopper supplies a reference garment — a shirt from their own drawer, measured with a tape or photographed and read by the scanner.
- The engine compares it to your published per-size specs — point by point, for every variant you publish.
- The output is a signed difference in inches — this shirt is 0.5" wider in the chest and 0.5" longer than yours. Not a letter, and not a score in place of the numbers.
- The shopper picks a direction — closer to the body, or roomier. A judgement they can make, because they know the reference shirt.
The comparison runs over eight points of measure for tops, weighted by how much each decides whether a shirt fits. Bottoms have a separate eight, waist through outseam, and a top is never scored against them.
| Point of measure (tops) | Weight |
|---|---|
| Chest, pit to pit | 0.28 |
| Body length, HPS to hem | 0.20 |
| Shoulder, seam to seam | 0.16 |
| Sleeve length | 0.12 |
| Hem width (sweep) | 0.08 |
| Bicep | 0.08 |
| Sleeve opening | 0.04 |
| Neck opening | 0.04 |
Where those numbers come from matters, and the methodology page states it plainly: a tape is exact, the photo scanner is experimental. About half of readings land within an inch of a real tape, so treat them as a guide and check anything that matters; sleeve opening and bicep are the least reliable — both carry the lowest weights above.
What a brand has to supply
Nothing exotic: the per-size flat measurements already on the spec sheet your manufacturer sends, keyed to the variant, with the unit stated. The standard is one line — flat, in inches, on a hard surface, seams smoothed, nothing stretched — and it has to be one standard, or the numbers do not compare. How to measure a shirt is that procedure for a person.
| What you publish per variant | Share of top-fit weighting | What it supports |
|---|---|---|
| Letters only, no measurements | 0.00 | No match; excluded rather than estimated |
| Chest and body length | 0.48 | The working minimum |
| Plus shoulder and sleeve | 0.76 | Catches long-torso and short-arm mismatches |
| All eight top points | 1.00 | Full comparison, sweep to neck |
The cost of stopping short is visible in ShirtMath's own catalog. Of 677 garment rows, 601 carry a chest and a length, but only 53 — eight styles — come from published spec sheets. Those rows carry a data confidence of 60 to 68, against 20 to 24 for the 476 rows built from category priors, a prior being a projection rather than a measurement. Bottoms are starker: 74 of them, 17 rows anywhere with a waist figure, the rest excluded from matching rather than given invented numbers.
What you do not need: new photography, 3D body scanning, a proprietary format, or shopper body data. For the finished shape, the t-shirt size chart is eight styles published exactly this way.
What integration actually looks like today
Plainly, before anyone spends a procurement cycle: there is no ShirtMath listing in the Shopify App Store. Nothing to install from it, and no partnership with Shopify. ShirtMath for Brands is pre-launch, and integration there means your published size data plus either a hosted widget or an API call your own front end makes — both reading the same per-variant measurement table, neither a one-click install.
Which makes the vendor decision and the data work separable, and the data work carries the long lead time: that measurement table is the asset a chart app can only render, never create.
One limit before anyone builds a business case: matching numbers are necessary, not sufficient. Two shirts can publish identical chest and length and still wear differently, because taper, drape and fabric weight are not on a spec sheet. Measurement matching removes the guesswork letters create. It does not remove the part of fit that lives in the cloth.
Questions from store owners
Do size charts reduce returns?
What works better than a size chart?
What data does ShirtMath need from my catalog?
Is there a ShirtMath Shopify app?
The shopper half of this is already running. Scan a shirt to see the comparison a brand integration would run against your catalog, one garment at a time.
Scan a shirt