# Free alternatives to Neue Haas Grotesk

Neue Haas Grotesk is a commercial neo-grotesque sans from Linotype / Monotype (Christian Schwartz) (https://www.myfonts.com/collections/neue-haas-grotesk-font-linotype). Commercial; licensed from Monotype. The name is used only to identify the typeface; BrandSweets does not host or embed it. Below: the 8 closest free, open-licensed families, ranked by a published deterministic score (https://brandsweets.com/fonts/alternatives/methodology).

## Reference profile

- Slug: `neue-haas-grotesk`
- Category: sans · Class: neo-grotesque
- Traits: neutral, classic, refined, clean, monoline
- Roles: heading, body, display
- Metrics: x-height 0.52, cap height 0.72, normal width, low contrast (approximate, publicly documented)
- Languages: latin, latin-ext · Variable: no
- Page: https://brandsweets.com/fonts/alternatives/neue-haas-grotesk

## Score

`score = 0.35·classification + 0.25·metrics + 0.20·traits + 0.10·useCase + 0.05·language + 0.05·variable`; every axis in [0, 1]. A family gate runs first: specialist families (blackletter, script, glyphic, stencil, monospace, pixel) only list same-family fonts; elsewhere a cross-family mismatch is capped at 0.2. Curated picks are listed first, then pure formula; ties break on popularity, then slug.

## Ranked alternatives

### 1. Inter — 83% (curated)

- Slug: `inter` · sans · OFL-1.1 · Rasmus Andersson · static
- Page: https://brandsweets.com/fonts/inter · font.md: https://brandsweets.com/fonts/inter/font.md
- Why (curated): The neutral neo-grotesque skeleton; Inter Display gets close to Neue Haas Grotesk's tight display cuts.
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.93 — x-height 0.55 vs 0.52 for Neue Haas Grotesk (close); cap height 0.73 vs 0.72 for Neue Haas Grotesk (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.50 — Shares clean, monoline, neutral (3 of 6 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Inter is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 2. Arimo — 81% (curated)

- Slug: `arimo` · sans · Apache-2.0 · Steve Matteson · static
- Page: https://brandsweets.com/fonts/arimo · font.md: https://brandsweets.com/fonts/arimo/font.md
- Why (curated): Arial-metric neo-grotesque with the same closed apertures and even colour.
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.90 — x-height 0.53 vs 0.52 for Neue Haas Grotesk (near-identical); cap height 0.69 vs 0.72 for Neue Haas Grotesk (close); both normal width; both low stroke contrast.
- Traits (×0.20): 0.40 — Shares monoline, neutral (2 of 5 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Arimo is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 3. Hanken Grotesk — 79% (curated)

- Slug: `hanken-grotesk` · sans · OFL-1.1 · Alfredo Marco Pradil, Hanken Design Co. · static
- Page: https://brandsweets.com/fonts/hanken-grotesk · font.md: https://brandsweets.com/fonts/hanken-grotesk/font.md
- Why (curated): A 'plain' grotesque with the slightly narrower, older-Helvetica proportions Neue Haas revives.
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.89 — x-height 0.49 vs 0.52 for Neue Haas Grotesk (close); cap height 0.70 vs 0.72 for Neue Haas Grotesk (close); both normal width; both low stroke contrast.
- Traits (×0.20): 0.33 — Shares monoline, neutral (2 of 6 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Hanken Grotesk is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 4. Manrope — 83%

- Slug: `manrope` · sans · OFL-1.1 · Mikhail Sharanda · static
- Page: https://brandsweets.com/fonts/manrope · font.md: https://brandsweets.com/fonts/manrope/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.96 — x-height 0.54 vs 0.52 for Neue Haas Grotesk (near-identical); cap height 0.72 vs 0.72 for Neue Haas Grotesk (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.43 — Shares clean, monoline, neutral (3 of 7 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Manrope is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 5. Mona Sans — 82%

- Slug: `mona-sans` · sans · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/mona-sans · font.md: https://brandsweets.com/fonts/mona-sans/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.97 — x-height 0.53 vs 0.52 for Neue Haas Grotesk (near-identical); cap height 0.73 vs 0.72 for Neue Haas Grotesk (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.40 — Shares monoline, neutral (2 of 5 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Mona Sans is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 6. Hubot Sans — 82%

- Slug: `hubot-sans` · sans · OFL-1.1 · static
- Page: https://brandsweets.com/fonts/hubot-sans · font.md: https://brandsweets.com/fonts/hubot-sans/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.97 — x-height 0.53 vs 0.52 for Neue Haas Grotesk (near-identical); cap height 0.73 vs 0.72 for Neue Haas Grotesk (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.40 — Shares monoline, neutral (2 of 5 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Hubot Sans is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 7. Roboto Flex — 82%

- Slug: `roboto-flex` · sans · OFL-1.1 · Font Bureau, David Berlow, Santiago Orozco, Irene Vlachou, Ilya Ruderman, Yury Ostromentsky, Mikhail Strukov · static
- Page: https://brandsweets.com/fonts/roboto-flex · font.md: https://brandsweets.com/fonts/roboto-flex/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.96 — x-height 0.51 vs 0.52 for Neue Haas Grotesk (near-identical); cap height 0.71 vs 0.72 for Neue Haas Grotesk (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.40 — Shares monoline, neutral (2 of 5 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Roboto Flex is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

### 8. Heebo — 82%

- Slug: `heebo` · sans · OFL-1.1 · Oded Ezer · static
- Page: https://brandsweets.com/fonts/heebo · font.md: https://brandsweets.com/fonts/heebo/font.md
- Classification (×0.35): 1.00 — Same class: neo-grotesque.
- Metrics (×0.25): 0.96 — x-height 0.53 vs 0.52 for Neue Haas Grotesk (near-identical); cap height 0.71 vs 0.72 for Neue Haas Grotesk (near-identical); both normal width; both low stroke contrast.
- Traits (×0.20): 0.40 — Shares monoline, neutral (2 of 5 traits).
- Role (×0.10): 0.50 — Both suit body, heading; Heebo is not tagged for display.
- Language (×0.05): 1.00 — Covers all of Neue Haas Grotesk's subsets (latin, latin-ext).
- Variable (×0.05): 1.00 — Static instances, like Neue Haas Grotesk.
- Family gate: pass — Same family: sans.

## Self-host Inter (woff2)

- 100 normal: https://fonts.brandsweets.com/inter/inter-100.woff2
- 200 normal: https://fonts.brandsweets.com/inter/inter-200.woff2
- 300 normal: https://fonts.brandsweets.com/inter/inter-300.woff2
- 400 normal: https://fonts.brandsweets.com/inter/inter-400.woff2
- 500 normal: https://fonts.brandsweets.com/inter/inter-500.woff2
- 600 normal: https://fonts.brandsweets.com/inter/inter-600.woff2
- 700 normal: https://fonts.brandsweets.com/inter/inter-700.woff2
- 800 normal: https://fonts.brandsweets.com/inter/inter-800.woff2
- 900 normal: https://fonts.brandsweets.com/inter/inter-900.woff2
- 100 italic: https://fonts.brandsweets.com/inter/inter-100i.woff2
- 200 italic: https://fonts.brandsweets.com/inter/inter-200i.woff2
- 300 italic: https://fonts.brandsweets.com/inter/inter-300i.woff2
- 400 italic: https://fonts.brandsweets.com/inter/inter-400i.woff2
- 500 italic: https://fonts.brandsweets.com/inter/inter-500i.woff2
- 600 italic: https://fonts.brandsweets.com/inter/inter-600i.woff2
- 700 italic: https://fonts.brandsweets.com/inter/inter-700i.woff2
- 800 italic: https://fonts.brandsweets.com/inter/inter-800i.woff2
- 900 italic: https://fonts.brandsweets.com/inter/inter-900i.woff2

## Connect an agent

Point any MCP client at the BrandSweets fonts endpoint to get this list with scores, or search the catalog:

- Endpoint: https://mcp.brandsweets.com/fonts/mcp
- Tools: `find_alternatives` (e.g. `find_alternatives({ commercialFont: "neue-haas-grotesk", limit: 8 })`), `list_commercial_fonts`, `list_fonts`, `suggest_fonts`.
