Annual report, first edition
The 2026 CPAP Data Report
Nobody publishes what CPAP machines people actually use, or what happens when someone tries to read their own therapy data. This is what 9,320 real import attempts looked like, from March 31, 2026 to August 31, 2026.
Every figure here is an anonymous count, and none of it is health data. How that is possible is explained at the end.
Finding one
Reading your own CPAP data works about six times out of seven
Of the 4,997 visits where someone started an import, 86.2% ended with their data on screen. The rest hit one of a short list of problems, almost all of them about which folder got picked rather than which machine they own.
The result that surprised us: 17.8% of those visits were on a phone or tablet, and they succeeded just as often as computers did. 86.4% on a phone against 86.2% on a computer. On this site, at least, a phone is not the harder way to read your own CPAP card.
| Platform | Visits | Share |
|---|---|---|
| Computer | 4,107 | 82.2% |
| Phone or tablet | 890 | 17.8% |
| Total | 4,997 |
Measured per visit, not per attempt. Someone who picks the wrong folder twice and the right one on the third try counts once, as a success, because they ended up with their data. Counting raw attempts instead would report that person as two thirds a failure and would put the success rate near 66.4%, which describes our funnel rather than anyone’s experience.
Finding two
What goes wrong is the folder, not the machine
55.7% of all recorded import errors are a single thing: nothing the site could recognize in the selected folder. Add the next few rows and the picture is consistent. Most failed imports are someone pointing at the wrong folder, exporting instead of copying, or handing over a settings subfolder without the therapy data beside it.
| What happened | Errors | Share |
|---|---|---|
| Nothing the site could recognize in the selected folder | 901 | 55.7% |
| Card recognized, but it held no therapy nights | 199 | 12.3% |
| Yuwell card recognized, firmware not readable yet | 114 | 7.0% |
| Only the SETTINGS subfolder was selected | 104 | 6.4% |
| Files were exported to another format instead of copied | 72 | 4.4% |
| Löwenstein bundle missing its configuration file | 54 | 3.3% |
| 35 more, withheld | 174 | 10.8% |
| Total | 1,618 |
Shares divide by the 1,618 errors that recorded a reason, and that is fewer than the number of attempts that did not succeed. Roughly 1,510 unsuccessful attempts recorded no reason at all, so this taxonomy describes the failures we can name rather than every failure there was. We do not know what happened in those, and this report does not guess. Two of our own counters disagree by about one and a half percent here, and we divide by the one that classifies the errors rather than the one that merely counts them. Classes are grouped from the error text a reader was shown, so two wordings of the same problem count together. If you are stuck on one of these, the fix is almost always to copy the whole SD card rather than a folder inside it.
Finding three
Which machines turn up
ResMed accounts for 88.0% of every import where the brand could be identified, and a single model, the AirSense 11 AutoSet, is 54.6% of all identified machines. The long tail is real but thin.
| Brand | Imports | Share |
|---|---|---|
| ResMed | 5,586 | 88.0% |
| Löwenstein | 305 | 4.8% |
| React Health Luna G3 | 130 | 2.0% |
| BMC | 127 | 2.0% |
| Yuwell | 125 | 2.0% |
| 2 more, withheld | 73 | 1.2% |
| Total | 6,346 |
Of the 7,757 attempts that got far enough to report a brand at all (the rest stopped before that point, which is why this is fewer than the 9,320 above), a further 1,411 (18.2%) held nothing identifiable at all and are excluded from the shares above rather than folded into them. Most of those are the wrong-folder problem from finding two.
By model
| Model | Imports | Share |
|---|---|---|
| AirSense 11 AutoSet | 2,198 | 54.6% |
| AirSense 10 AutoSet | 812 | 20.2% |
| Löwenstein Prisma Smart | 228 | 5.7% |
| AirCurve 11 VAuto | 158 | 3.9% |
| Luna G3 | 123 | 3.1% |
| AirCurve 10 VAuto | 73 | 1.8% |
| BMC G3 A20 | 71 | 1.8% |
| AirStart 10 APAP | 51 | 1.3% |
| 39 more, withheld | 308 | 7.7% |
| Total | 4,022 |
A card only names its model if its settings file came along, so a further 2,170 imports read their therapy data perfectly while telling us nothing about the machine. They are excluded from the shares rather than guessed at.
This is not market share, and it should not be cited as market share. It is the mix of machines whose owners found a free data tool and were able to use it. Two things bend it: who hears about this site, and which cards it can read at all. A machine we cannot read cannot appear here no matter how many people own one.
Finding four
When each brand became readable
The obvious chart to draw here would be brand share month by month, and it would be wrong. A brand appears in this data the month the site learned to read its card, so any apparent growth is our parser catching up, not anybody switching machines. What the dates below actually record is coverage.
- ResMedMarch 2026
- BMCApril 2026
- LöwensteinApril 2026
- React Health Luna G3April 2026
- YuwellJune 2026
First month an import of each brand was recorded. Brands the report withholds are not listed here either, because naming one would identify it as a withheld row and give away the count.
Finding five
At least one import in twelve brings an oximeter too
Of 4,519 visits that completed a CPAP import, at least 8.5% also brought a pulse oximeter and at least 7.3% brought a watch or ring. Both are floors rather than estimates.
A visit is a single browsing session, so somebody who imports their CPAP card tonight and their ring tomorrow counts as two visits and is invisible in these numbers. There is no account and no server-side identity here to join them with, and building one to improve this figure is not a trade this site makes. The true rate is higher than 8.5%; we cannot say how much higher, so we publish the floor.
Finding six
Where readers are
CPAP data help is overwhelmingly an English-language, North American and Australian conversation online. The page views below are a little broader than that, reaching 120 countries.
| Country | Pageviews | Share |
|---|---|---|
| United States | 35,537 | 67.5% |
| Canada | 3,117 | 5.9% |
| Australia | 2,960 | 5.6% |
| China | 1,455 | 2.8% |
| United Kingdom | 1,254 | 2.4% |
| India | 716 | 1.4% |
| Germany | 628 | 1.2% |
| Thailand | 513 | 1.0% |
| Singapore | 472 | 0.9% |
| Algeria | 434 | 0.8% |
| Spain | 407 | 0.8% |
| Israel | 342 | 0.6% |
| Sweden | 330 | 0.6% |
| Netherlands | 263 | 0.5% |
| France | 256 | 0.5% |
| Philippines | 243 | 0.5% |
| United Arab Emirates | 236 | 0.4% |
| Brazil | 203 | 0.4% |
| Poland | 194 | 0.4% |
| Croatia | 179 | 0.3% |
| Czechia | 172 | 0.3% |
| Hong Kong | 156 | 0.3% |
| South Africa | 149 | 0.3% |
| Malaysia | 140 | 0.3% |
| Morocco | 130 | 0.2% |
| Finland | 127 | 0.2% |
| Ireland | 113 | 0.2% |
| Japan | 113 | 0.2% |
| Greece | 112 | 0.2% |
| South Korea | 108 | 0.2% |
| Switzerland | 96 | 0.2% |
| Denmark | 94 | 0.2% |
| Belgium | 88 | 0.2% |
| Italy | 85 | 0.2% |
| Mexico | 81 | 0.2% |
| Chile | 77 | 0.1% |
| New Zealand | 71 | 0.1% |
| Romania | 62 | 0.1% |
| Argentina | 53 | 0.1% |
| 81 more, withheld | 877 | 1.7% |
| Total | 52,643 |
Counted in page views, not visits or people, because that is what the underlying figure actually is: one count per page loaded. It is the only section drawn from everyone who reads the site rather than from the smaller group who imported a card, so it is not comparable with the numbers above. Country is never crossed with machine brand or model. A handful of imports of an uncommon machine in a small country would describe a person rather than a population, and no finding here is worth that.
Method
How these numbers exist without health data
CPAP Clarity reads SD card files entirely inside the browser. Therapy data is never uploaded, so there is no server-side copy of anyone’s AHI, oxygen levels, pressures or waveforms, and there never has been. What the site does record is anonymous, aggregate usage: that an import started, that it succeeded or failed, which brand the card belonged to, and roughly where in the world the visit came from. No accounts, no cookies for tracking, no email addresses.
Any figure counting fewer than 50 is withheld. It is never rounded down to zero, which would be a lie a reader could not detect, and never quietly dropped, which would shrink the denominator and inflate everything above it. Withheld rows are pooled and drawn in each table, so you can always see how much of a total you are not being shown.
One consequence is worth stating plainly, because it means a withheld group can contain a figure that was not itself small. A group holding a single row publishes that row: its total is the row’s own count, and where the set of candidates is public, the name follows. So when only one row would be withheld, the next smallest row is withheld with it. The report does not say which rows those were, or which of them cleared the floor, because saying so would narrow the very figure the withholding protects.
Numbers are frozen. This page reads from a file generated once on September 2, 2026and committed alongside it. It will not change under a citation. Next year’s figures will be published as a separate edition at their own address, and this one will stay exactly as it is.
Reuse
Cite this report
The figures here are free to quote, republish and chart, with a link back. Published under CC BY 4.0.
CPAP Clarity. "The 2026 CPAP Data Report." Published September 2, 2026. https://cpapclarity.com/report/2026
Every figure on this page is also published as JSON and CSV, so you can chart it without retyping it. Both are the exact file this page renders from, including the withheld remainders.
Figures this report does not cover, including which wearables people pair with a CPAP and what joined nights actually show, are in the companion piece on what CPAP users import.
Questions about the method, or want a figure we did not publish? Ask on the about page. If you own a machine this report does not list, that is usually because the site cannot read it yet, and hearing from you is how that changes.
Want to see your own data this way? Read your CPAP card in the browser. It is free, and nothing you load leaves your device.