Skip to content

About AirwayLab

PAP machines collect detailed breath-by-breath data every night — but most of it stays locked on an SD card, invisible to patients and ignored by clinicians who only check AHI. Millions of people are “treated” with AHI under 5 but still wake up exhausted because flow limitation, RERAs, and breathing pattern instability go undetected.

We believe your breathing data belongs to you. AirwayLab makes that data visible, understandable, and actionable — with open-source code you can audit, analysis that runs entirely in your browser, and a free tier that will always include the complete toolkit.

Four research-grade analysis engines process your ResMed SD card data client-side via Web Workers. No uploads, no accounts, no tracking — just the insights your machine already collected but never showed you.

100% client-side processing · Zero data upload · Your sleep data never leaves your device

Our Approach

Free Tier — Complete Analysis

AirwayLab's core analysis — Glasgow Index, WAT, NED, oximetry, insights, exports — is free and always will be. We believe everyone on PAP therapy deserves access to research-grade analysis, regardless of their budget or technical skill.

Open Source — Verifiable Trust

Every line of code is open source (GPL-3.0). In a space where you're asked to upload medical data to unknown servers, we think you should be able to verify exactly what happens with your data. Nothing leaves your browser. Ever.

Premium — Sustaining Development

Building and maintaining a tool like this takes time. Premium features like AI-powered therapy insights help fund continued development. They're genuinely useful additions — not features we removed from the free tier to charge for.

Our Vision

Your data, visible

Now

PAP machines collect rich breath-by-breath flow data every night, but most of it stays invisible — locked on an SD card, inaccessible to the people it belongs to. AirwayLab makes that data visible and understandable. Four research-grade engines analyse flow limitation, RERAs, and breathing patterns that standard AHI metrics miss. Everything runs in your browser, so your data stays yours.

Shared insights, collective intelligence

Next

Individual analysis is powerful, but the real potential is collective. With your explicit consent, anonymised breathing data could be contributed to an open research dataset — the largest of its kind. Patterns hidden in thousands of real-world therapy nights that no single sleep lab has the scale to find. Think of it as open-source science for airway therapy.

Smarter therapy for everyone

Future

Aggregated insights from thousands of real-world nights could help researchers, clinicians, and device manufacturers understand what truly effective therapy looks like — beyond AHI. Better data means better algorithms. Better algorithms mean better therapy. Better therapy means better sleep for millions of people.

Methodology

AirwayLab uses four independent analysis engines, each targeting a different aspect of sleep-disordered breathing. All algorithms are deterministic and reproducible — the same input always produces the same output.

New to flow limitation? Start here

Glasgow Index

Flow Limitation Scoring

A 9-component scoring system that evaluates each breath for flow limitation characteristics. Originally developed by DaveSkvn as an open-source analyzer (GPL-3.0), ported and validated for AirwayLab.

How it works

  1. 01Each inspiration is segmented from the raw flow signal using zero-crossing detection with minimum window filtering.
  2. 02Nine shape descriptors are computed per breath: Skew, Spike, Flat Top, Top Heavy, Multi-Peak, No Pause, Inspiratory Rate, Multi-Breath, and Variable Amplitude.
  3. 03Each component is scored 0–1 based on statistical thresholds derived from the breath population.
  4. 04The overall Glasgow Index is the sum of 8 components (Top Heavy is computed but excluded from the total), yielding a 0–8 scale where lower is better.

Based on Glasgow Sleep Centre flow limitation analysis methodology.

Deep dive

WAT (Wobble Analysis Tool)

Ventilation Pattern Analysis

Three complementary metrics that assess flow limitation severity, breathing regularity, and periodic breathing patterns from the flow signal.

How it works

  1. 01FL Score: Computes the ratio of top-half tidal volume variance to total variance across breath windows. Higher scores indicate more flow-limited breathing.
  2. 02Regularity Score: Uses Sample Entropy (SampEn) on minute ventilation to quantify breathing pattern regularity. Higher values indicate more stable, regular breathing.
  3. 03Periodicity Index: Applies FFT spectral analysis to minute ventilation, looking for power concentration in the 0.01–0.03 Hz band characteristic of periodic breathing (30–100 second cycles).

Sample Entropy method per Richman & Moorman (2000). FFT periodicity per established sleep medicine practice.

NED Analysis

Negative Effort Dependence

Breath-by-breath analysis of flow limitation using the ratio of peak inspiratory flow to mid-inspiratory flow, with automated RERA event detection.

How it works

  1. 01NED = (Qpeak − Qmid) / Qpeak, where Qpeak is peak inspiratory flow and Qmid is flow at 50% of inspiratory time. Higher NED indicates more flow limitation.
  2. 02Flatness Index (FI) measures how flat the inspiratory flow plateau is. FI ≥ 0.85 indicates significant flow limitation.
  3. 03M-shape detection identifies breaths with a characteristic mid-inspiratory dip suggesting upper airway oscillation.
  4. 04RERA detection: sequences of ≥3 breaths with progressively rising NED slope, terminated by a recovery breath with sudden NED drop. Reported as events per hour.

NED concept from Tamisier et al. RERA detection adapted from clinical scoring criteria.

Oximetry Pipeline

17-Metric SpO₂ & Heart Rate Framework

Comprehensive pulse oximetry analysis for Viatom/Checkme O2 Max data, computing desaturation indices, heart rate surge patterns, and coupled cardio-respiratory events.

How it works

  1. 01ODI-3% and ODI-4%: Oxygen Desaturation Index at 3% and 4% thresholds, computed as events per hour of recording.
  2. 02Time below threshold: Percentage of recording time with SpO₂ < 90% and < 94%.
  3. 03HR surge detection: Clinical surges (>8, >10, >12, and >15 bpm above 30-second baseline) and rolling mean surges (>10 and >15 bpm above 5-minute rolling mean).
  4. 04Coupled events: Simultaneous SpO₂ desaturation + HR surge within a time window, suggesting respiratory arousal.
  5. 05First-half vs second-half night comparison to detect positional or REM-related patterns.

ODI methodology per AASM scoring manual. Double-tracking artifact correction applied.

Deep dive

Frequently Asked Questions

AirwayLab currently supports ResMed AirSense 10 and AirCurve 10 series machines (CPAP, AutoSet, VPAP, ASV). These machines store detailed flow waveform data in EDF format on the SD card.

AirSense 11 / AirCurve 11: ResMed’s newer generation machines use an updated EDF format with different signal names. AirwayLab may partially work with AirSense 11 data, but full support is in development and results are not yet validated. If you have an AirSense 11, you’re welcome to try — please report any issues to help us improve compatibility.

Philips Respironics and other manufacturers use different data formats and are not currently supported.

Remove the SD card from your ResMed machine and insert it into your computer (you may need an SD card reader). When uploading to AirwayLab, select the DATALOG folder — this contains the EDF files with your flow waveform data. AirwayLab automatically finds and groups the relevant files by night.
Yes. All core analysis runs entirely in your browser using Web Workers — your sleep data never leaves your device by default. No cookies are used. We use Plausible for privacy-first, cookie-free page-view analytics that collect zero personal data. Optional features like AI-powered insights or cloud storage require your explicit consent before any data is sent to a server, and raw waveform data is never transmitted. The source code is open for inspection.
AirwayLab supports CSV exports from the Viatom/Checkme O2 Max wrist pulse oximeter. The CSV should contain SpO₂ and heart rate columns with timestamps. Oximetry data is optional — all four analysis engines work with SD card data alone, and the oximetry pipeline activates only when oximetry CSVs are provided.
The Glasgow Index scores each breath on 9 flow limitation characteristics, producing an overall score from 0 to 8 (lower is better). Generally: below 2.0 is considered good therapy, 2.0–3.0 suggests moderate flow limitation worth discussing with your clinician, and above 3.0 indicates significant flow limitation that may warrant pressure or settings adjustment.
These are three independent methods of detecting flow limitation, each with different strengths. Glasgow scores breath shapes holistically (9 descriptors). WAT analyzes population-level patterns (regularity, periodicity). NED measures the specific ratio of peak-to-mid flow that indicates airway narrowing, plus automated RERA event detection. Using all three together gives a more complete picture than any single metric.

This is one of the most common questions, and it makes sense once you understand that each metric detects flow limitation using a different method:

  • Glasgow Index scores 9 breath-shape characteristics (skew, spikes, flat tops, multi-peaks, etc.). It catches a wide range of waveform abnormalities, not just classic flow limitation.
  • FL Score (WAT engine) measures how much of the tidal volume variance is concentrated at the flow peaks across all breaths. It’s a population-level flatness measure — it looks at the overall distribution, not individual breath shapes.
  • NED Mean measures the per-breath ratio of peak flow to mid-inspiratory flow. It specifically targets the pattern where the airway narrows during inhalation, causing mid-flow to drop below peak flow.

A high FL Score with low Glasgow can happen when breaths are moderately flat-topped (the WAT flatness detector picks this up) but don’t show the specific shape distortions Glasgow targets (abnormal skew, spikes, multi-peaks). The breathing is restricted but uniformly so.

A low NED with high Glasgow can occur when breath shapes are abnormal in ways that don’t affect the peak-to-mid flow ratio — for example, variable amplitude or unusual timing patterns. These are real abnormalities, just not the specific “negative effort” pattern NED looks for.

The Estimated Arousal Index (EAI) estimates how many times per hour your brain briefly wakes up during sleep, based on breathing pattern changes. True arousals can only be measured with EEG (brain wave monitoring), but respiratory pattern changes correlate well with cortical arousals.

AirwayLab detects arousals by looking for sudden spikes in respiratory rate (>20% above a 120-second rolling baseline) or tidal volume (>30% above baseline). Each spike suggests a micro-awakening — your brain briefly wakes up, takes a few deeper or faster breaths, then returns to sleep. A 15-second refractory period prevents double-counting closely spaced events.

An EAI below 10/hr is generally considered normal. Above 15/hr suggests significant sleep fragmentation that may be worth discussing with your clinician, even if your AHI looks fine.

The FL Score is computed by the WAT (Wobble Analysis Tool) engine. For each window of breaths, it calculates the ratio of tidal volume variance in the top half of the signal versus the total variance.

In normal breathing, airflow ramps up smoothly and rounds off naturally — the variance is distributed across the full waveform. In flow-limited breathing, the airflow hits a ceiling (the airway is partially narrowed), creating a flat-topped pattern where most of the variance is concentrated at the peaks.

A higher FL Score means more of your breaths show this flat-topped pattern. It’s reported as a percentage: an FL Score of 60% means 60% of your breath windows showed significant flow limitation characteristics.

Yes. Use the export buttons in the dashboard to download your results as CSV (for spreadsheets), JSON (raw data), or open a print-ready PDF report you can save and share. You can also copy a forum-formatted summary for posting on ApneaBoard or Reddit. Many users share their AirwayLab results alongside OSCAR data when consulting with sleep physicians.
OSCAR is an excellent tool for detailed session-by-session review with interactive waveform browsing. AirwayLab complements OSCAR by providing automated flow limitation analysis (Glasgow Index, WAT, NED) that OSCAR does not compute. AirwayLab is also browser-based (no installation needed) and privacy-first (no data leaves your browser). Many users benefit from using both tools together.

Contributing

AirwayLab is open source under the GPL-3.0 license. Contributions are welcome — whether that's code, bug reports, feature requests, or documentation improvements.

Privacy

Privacy by default

  • All core analysis runs in your browser via Web Workers — your sleep data never leaves your device by default.
  • No cookies, no fingerprinting. Optional privacy-first analytics (Plausible) collect zero personal data. AirwayLab does not know who you are.
  • Optional server features (AI insights, cloud storage, data contribution) require your explicit consent. Raw waveform data is never transmitted — only aggregate metrics.
  • Source code is open for inspection — verify the privacy claims yourself.

Medical Disclaimer

AirwayLab is not a medical device and is not FDA-cleared or CE-marked. It is provided for educational and informational purposes only. The analysis results should not be used as a substitute for professional medical advice, diagnosis, or treatment. Always consult qualified healthcare providers regarding your sleep therapy and any changes to PAP settings.

AirwayLab is licensed under the GNU General Public License v3.0. Glasgow Index engine based on GPL-3.0 code by DaveSkvn.