What the analytics engineering job market actually looks like.
Counted the same way every day, with the sample behind every figure stated next to it. Nothing is modeled, estimated, or filled in — and the whole dataset is free to download.
What this can say
Point-in-time only. 24 days of comparable history; 42 are needed before movement can be described.
| Role family | Open | Share of sample | Disclosed pay |
|---|---|---|---|
| Analytics engineersmall sample | 10 | 0.2% | — |
| BI developersmall sample | 2 | 0% | — |
| Data analyst | 32 | 0.5% | 40.6% |
| Data architectsmall sample | 1 | 0% | — |
| Data engineer | 32 | 0.5% | 37.5% |
| Data scientist | 64 | 1.1% | 42.2% |
| ML engineer | 89 | 1.5% | 42.7% |
Out of 5967 open postings observed. 3.9% of them are data roles at all; the rest are engineering, sales, and everything else these employers are hiring for, and they are counted in the denominator rather than dropped. 3 families are marked small: the count is exact, but the base is too narrow to compare or to read as a trend, so no rate is shown for it.
Stated ranges only, from the postings that published one. Never converted between currencies and never annualized, so each currency and pay period stands on its own. A median appears once five postings disclose; quartiles need thirty, because they are the fragile part.
| Role family | 25th | Median | 75th | Postings |
|---|---|---|---|---|
| Data scientistUSD annual | — | 236,000 | — | 25 |
| ML engineerUSD annual | 203,498 | 233,875 | 276,000 | 32 |
| Data engineerUSD annual | — | 213,750 | — | 7 |
| ML engineerCAD annual | — | 185,000 | — | 6 |
| Data analystUSD annual | — | 175,592 | — | 7 |
Postings that disclose pay are not a random sample of postings — pay transparency tracks jurisdiction and employer size — so these figures describe what gets published, which is not the same as what gets paid. 12 further combinations were computed and withheld for too few disclosing postings.
Release 2026-09-21.1, published September 21, 2026. Newest observation September 21, 2026.
Figures are pinned to this release, so the numbers on this page match the downloadable dataset exactly. Both change only when a new release is promoted.
Use the market as evidence, not a checklist.
This release supports claims about observed role families and disclosed pay. It does not yet publish reliable skill-frequency estimates. Use these learning paths to build role-relevant evidence—not as a claim that every observed posting requires the same tools.
SQL
Practice joins, aggregation, window functions, date logic, and validation against runnable data.
Open path →dbt
Build layered transformations with tests, documentation, deployment decisions, and reusable metric logic.
Open path →Data modeling
Define grain, facts, dimensions, keys, relationships, and history before building a reporting layer.
Open path →Project evidence
Turn the skills you practice into a brief, model, checked result, decision record, and walkthrough.
Open path →
Every figure is a count of postings observed open at a point in time, not a flow. It does not say how many roles opened or closed over a period, and a count that falls can mean fewer openings or a quieter week — the number alone cannot tell you which.
Nothing is estimated, modeled, or filled in. A posting whose salary cannot be read confidently counts with no salary rather than a guess, and a location that does not resolve to a real place stays unresolved rather than being filed under the nearest match. That makes some cells empty on purpose, and an empty cell is never a zero.
Figures appear only once the sample behind them is large enough to mean something, and only once there is enough history to support the kind of statement being made. Where a sample is too thin to report, the row stays visible and its value is withheld, so a gap is never disguised as a small number. The datasets are the same bytes this page renders from, column by column.
