If you wanted to pick two mainstream brands that size as differently as possible, H&M and Old Navy would be a strong pairing. H&M runs small — bottoms by one to two sizes — with loose item-to-item consistency. Old Navy is the high street's best-known generous sizer: garments frequently measure a size or more over the label, especially in women's tops, dresses, and jeans.
The twist is that their published charts don't look that far apart. Old Navy's smallness shows up in the garments, not the chart — vanity sizing means the finished clothes measure bigger than the printed numbers — while H&M's garments tend to measure under its chart in bottoms. Since H&M labels in EU numerics and Old Navy in US alpha sizes, the tables below align rows by body measurement.
The short answer
H&M runs smaller by a wide margin — Old Navy runs large
On paper the brands nearly meet: Old Navy's S (bust 34–35" · 86.5–89 cm) lines up with H&M's EU 38, its M (36–37" · 91.5–94 cm) with H&M's EU 40, its L (38.5–40.5" · 98–103 cm) with H&M's EU 44. But the charts are where the agreement ends. Old Navy's finished garments often measure a size or more over the label — independent tests have found pants inches larger than marked — while H&M's bottoms fit one to two sizes under theirs.
Stack those tendencies and the same person can plausibly span three label sizes between the stores: sizing down at Old Navy for a fitted look and sizing up at H&M for jeans. The exceptions keep it honest — Old Navy basics like plain tees and sweats stay close to true to size, and H&M tops and knitwear are nearer the label than its denim — but the overall direction of travel is the same every time you cross between them.
H&M vs Old Navy at a glance
| H&M | Old Navy | |
|---|---|---|
| Sizing system | EU numeric with letters; M spans EU 40–42 | US alpha sizes (XS–XXL) |
| Overall fit | Runs small — bottoms worst, by one to two sizes | Runs large — garments often measure over the label |
| Jeans | Size up one to two | Size down — big in waist and hip, stretch relaxes further |
| Where the label is truest | Tops and knitwear | Basics: plain tees, sweats, activewear |
| Chart vs garment | Garments run under the chart in bottoms | Garments run over the chart — vanity sizing |
Women's sizes aligned by bust
Rows matched by body bust measurement, not label — the brands use different systems. This is the chart-to-chart view; real garments diverge further, with Old Navy measuring over its chart and H&M bottoms under. H&M's published chart tops out at EU 44.
| Old Navy size | Old Navy bust | Closest H&M size | H&M bust |
|---|---|---|---|
| XS | 31–33" · 78.5–84 cm | EU 34 (XS) | 78–82 cm · 30.7–32.3" |
| S | 34–35" · 86.5–89 cm | EU 38 (S) | 86–90 cm · 33.9–35.4" |
| M | 36–37" · 91.5–94 cm | EU 40 (M) | 90–94 cm · 35.4–37" |
| L | 38.5–40.5" · 98–103 cm | EU 44 (L) | 98–102 cm · 38.6–40.2" |
Women's waist side by side
Same bust-based row alignment as above. At the same bust, Old Navy's chart assumes a smaller waist than H&M's — its chart is more hourglass — so check the measurement that matters for the garment you're buying.
| Old Navy size | Old Navy waist | H&M size | H&M waist |
|---|---|---|---|
| XS | 23–25" · 58.5–63.5 cm | EU 34 (XS) | 62–66 cm · 24.4–26" |
| S | 26–27" · 66–68.5 cm | EU 38 (S) | 70–74 cm · 27.6–29.1" |
| M | 28–29" · 71–73.5 cm | EU 40 (M) | 74–78 cm · 29.1–30.7" |
| L | 30.5–32.5" · 77.5–82.5 cm | EU 44 (L) | 82.5–87.5 cm · 32.5–34.4" |
Men's tops aligned by chest
Body chest measurements, rows matched by chest. Old Navy's published men's chart starts at S and H&M's ends at EU 54, so the L row is approximate. Note the letter offset: an Old Navy S covers the same chest as an H&M M.
| Old Navy size | Old Navy chest | Closest H&M size | H&M chest |
|---|---|---|---|
| S | 37–38" · 94–96.5 cm | EU 48 (M) | 94–98 cm · 37–38.6" |
| M | 39–41" · 99–104 cm | EU 50 (M) | 98–102 cm · 38.6–40.2" |
| L | 43–45" · 109–114.5 cm | EU 54 (L) | 106–110 cm · 41.7–43.3" |
Switching between H&M and Old Navy
- Don't trade letters between the stores — match your body measurements against each chart, then apply each brand's correction: down at Old Navy for fitted pieces, up at H&M for bottoms.
- Coming from Old Navy to H&M: your Old Navy size already runs generous, so an H&M garment at the chart-matched size will feel noticeably closer — and H&M jeans will need one to two sizes more than that.
- Coming from H&M to Old Navy: forget the size-up reflex entirely. Take your chart-matched size for basics and one below it for fitted tops, dresses, and jeans.
- Each brand has a true-to-label corner — Old Navy basics and H&M tops/knitwear. Keep your matched size there and save the adjustments for fitted pieces and denim.
Measurements are based on each brand's published size charts and may vary by garment, fabric, and region. For the full charts and fit notes, see the H&M size guide and the Old Navy size guide.
H&M vs Old Navy sizing FAQs
Which runs smaller, H&M or Old Navy?
H&M, decisively. H&M runs small overall — bottoms by one to two sizes — while Old Navy is one of the most consistently generous-sizing mainstream brands, with garments often measuring a size or more over the label. They're close to opposite ends of the high-street fit spectrum.
Is an H&M medium the same as an Old Navy medium?
By the charts they're close — Old Navy's M (36–37" bust) lines up with H&M's EU 40, the lower half of H&M's M. In real garments the Old Navy medium will fit looser, because its pieces tend to measure over the chart while H&M's cut runs close.
I size up at H&M — should I size up at Old Navy too?
No, usually the opposite. Old Navy's fitted pieces — tops, dresses, jeans — are typically safer one size down, and its stretch denim relaxes further with wear. Only its basics (plain tees, sweats, activewear) warrant your true matched size.
How do the jeans compare?
They're mirror images. H&M jeans run one to two sizes small and are the brand's least label-accurate category. Old Navy jeans run big in the waist and hip and stretch out further with wear — when between sizes there, take the smaller. The same person can wear labels two sizes apart in the two stores' denim.
Why do their size charts look similar if the fits are so different?
Because charts describe bodies, not garments. Aligned by bust, Old Navy's S–L map closely onto H&M's EU 38–44. The divergence is in manufacturing: Old Navy's vanity sizing means finished garments measure over the chart, while H&M's bottoms measure under it.


