Getting started
Sleep Tally reads the SD card from your CPAP machine. You'll need the card, a way to read it (a computer with a card reader, or a phone with a USB-C reader), and a browser. Chrome or Edge on a desktop gives you every feature, including folder import and automatic import. Safari and Firefox work for everything else.
- Open the app. It starts with sample nights so you can look around; these are labeled "Sample data".
- Go to Import. Pick your machine and mask. If the card carries an Identification file, the model and serial fill in by themselves.
- Add the card (next two guides), press Import, and go to Nights. Your latest night is selected and labeled "From your card".
Nights run from noon to noon, so "Wednesday night" is the evening of Wednesday into Thursday morning. That's how the machine records them too.
Import from a computer
- Take the SD card out of the machine and put it in your computer.
- In Import, click Select the SD card and choose the card itself, or the folder you copied it to. Or drag the whole card onto the drop area.
- Check the list: STR.edf, Identification, DATALOG and SETTINGS should all say found. The note below tells you how many nights were found and what file types are present.
- Click Import. The log shows each night as it's read. The first import of a year's card takes a minute or two; every one after that takes seconds because unchanged nights are skipped.
What the files are
STR.edf: one line per night. Hours, AHI breakdown, leak and pressure percentiles, the settings that night. Required.DATALOG/YYYYMMDD/*_BRP.edf: your breathing flow, 25 times a second. The breathing chart.*_PLD.edf: pressure, leak, flow limitation, snore and breathing rate every two seconds. Those charts and the exact statistics.*_EVE.edf: the machine's event log. Exact event counts and the colored markers.*_SA2.edf: oxygen and pulse, when an oximeter is connected to the machine.
Import the whole card rather than picking files, so nothing is missing.
Moving from OSCAR or SleepHQ
Your history is not stuck anywhere. Both tools keep the card's own files, and Sleep Tally reads those.
From OSCAR
- OSCAR keeps a copy of every card it has read inside its profile folder: on Windows
Documents\OSCAR_Data\Profiles\<your name>\, on a Mac ~/Documents/OSCAR_Data/Profiles/<your name>/. Inside is one folder per machine, named after the machine and its serial number. - In Sleep Tally's Import, click Select the SD card and pick that machine folder (the one that contains
Backup). Or drag it onto the drop area. - OSCAR stores one
STR copy per month in Backup/STR_Backup. Sleep Tally reads all of them, so nights older than the card itself holds come along too. The import log says how many older nights were recovered.
Recent nights get their full waveforms; older nights keep the machine's nightly summaries (hours, AHI, leak, pressure), which is what trends, insights and reports use.
From SleepHQ
SleepHQ uploads the same card files. Import the SD card itself into Sleep Tally, or the folder its uploader app watches. Nights you tracked before the card was last wiped are only in SleepHQ; export them there if you need them, and keep importing the card from now on.
Keeping a copy
Settings → Export everything writes a backup file with every member's nights, notes, equipment and settings history. Restore from a backup file brings it back on any device. Nothing you type into Sleep Tally is locked in.
Import from a phone
Phones can read a card with a USB-C or Lightning card reader, but their browsers can't pick a folder. Zip the card instead.
- Plug in the reader with the card. Open the Files app and find the card.
- Long-press the card's folder and choose Compress. A .zip appears next to it.
- In Sleep Tally, tap Import then Select a zip of the SD card, and choose the archive.
- Tap Import. The zip is unpacked in your browser; nothing is uploaded.
Large cards: the phone keeps the most recent 120 nights' raw files for charts and the statistics for everything older, so a 600 MB card doesn't need to fit in memory at once.
Automatic import with a Wi-Fi card
An ez Share Wi-Fi SD card sits in the machine and broadcasts its own Wi-Fi network. A small script on a computer near the bedroom copies new files from it into a folder each morning. Sleep Tally watches that folder.
One-time setup
- Put the ez Share card in the machine. Its network is called
ez Share, password 88888888. - On the computer, download
ezshare_sync.py from the Help menu in the app. Join the card's Wi-Fi and run:python3 ezshare_sync.py ~/CPAP
Then rejoin your normal Wi-Fi. (Community tools such as ezshare_cpap do the same job.) - In Sleep Tally, go to Import, find Automatic import from a folder, click Choose folder to watch and pick
~/CPAP. Chrome or Edge on desktop.
Every morning
Run the script (or schedule it). Open Sleep Tally, or leave it open: it rechecks the folder on open and every fifteen minutes, imports the new night, and shows "1 new night imported from your card folder". If the browser asks to confirm folder access after a restart, click Check now once.
The ez Share card can't reach the internet on its own, so the computer has to do the join-copy-rejoin step. A Raspberry Pi with Ethernet and Wi-Fi can do it unattended.
Reading a night
- The headline is one of four: great, good, okay, rough. It comes from breathing events, mask seal and time on therapy.
- The sentence says why, in numbers.
- Events recorded lists each event type that occurred, with a count. Exact when the night's event log was on the card; marked ≈ when estimated from hourly rates.
- Breathing events (AHI): apneas and hypopneas per hour. Under 5 is the usual treatment goal. Clear, Elevated or High.
- Mask seal (Leak): average leak, with the 95th percentile in the statistics table. Sealed well under 8 L/min at the 95th; Large leak above 24.
- Time on therapy: hours the mask was on. 4 hours is the common insurer minimum; 6 or more is a full night.
- Pressure: average set pressure, with your prescribed range beside it.
- Arrows compare with the previous night that has data. Green is the direction you want.
Event types
- Clear airway (CA): airway open, but breathing paused.
- Obstructive (OA): airway blocked.
- Hypopnea (H): shallow breathing.
- Unclassified (UA): the machine couldn't tell.
- Effort-related arousal (RERA): breathing effort that briefly woke you. Shown, not counted in AHI.
Charts and zooming
- Drag across any chart to zoom into that stretch. Do it again to go deeper. Every chart follows.
- Scroll over a chart to zoom at the pointer. Shift-scroll to pan. Double-click for the whole night.
- The overview strip above the charts shows the whole night with your window as a band. Drag the band to move; click elsewhere to jump.
- The toolbar stays pinned while you scroll. It shows the visible window and its length, zoom buttons, Whole night, and chips to show or hide charts.
- Hover to read the exact value in each chart's header. When zoomed under twenty minutes the axis shows seconds.
- Markers: colored lines on the breathing chart are flagged events. The legend above the chart names them; zoom in and each one is labeled.
Arranging the charts
The chart stack is yours to order. Some people want leak right under breathing; others want sleep stages on top of everything.
- Find the grip (six dots) at the top right of any chart.
- Drag it up or down. The chart lifts, the others move out of the way, and it drops where you let go. This works with a mouse or a finger.
- Prefer the keyboard? Click or tab to the grip, then use the arrow keys to move one step, or Home and End for the top and bottom.
The order is remembered on that browser and applies to every night. Reset order, next to the chart chips, puts everything back. Hiding a chart with its chip doesn't change the order; it just skips it until you turn it back on.
Trends and the calendar
Pick a range at the top: 7, 30 or 90 nights, this year, or all. The calendar colors each night green, amber or red by how it went; empty squares are nights without data. Tap a square to open that night. Below are trends for events per hour, event types, hours on therapy against the 4-hour line, pressure and leak.
Sharing with a clinician
Share links work at the account level, so you can give each person their own. Press Share on any night or on Trends, or open Settings → Share links.
- Name the link after who it's for: "Link for Dr Patel", "Sleep clinic follow-up", "Forum helper".
- Choose what it shows: all nights, the last 90 or 30, or just the night on screen. Untick machine settings if you'd rather not share them.
- Choose when it stops working: never, or after 7, 30 or 90 days or a year. Good for a one-off appointment.
- Create link. It's copied to your clipboard; paste it into an email or message.
Whoever opens it sees a read-only report with no login: nights at a glance, trends, each night's verdict, event breakdown, statistics and settings, and a night-by-night table. It carries no name, email or serial number.
Managing your links. Every link you have made is listed under Settings → Share links with who it's for, what it shows and when it expires. For each one you can preview it, copy it again, rename it, change or remove its expiry, update it with your latest nights, or revoke it so it stops working immediately. Revoking one link never affects the others. Expired links stay in the list marked expired until you delete them, so you can see what you handed out.
Hosted links update themselves after every import, so a clinician who keeps the link always sees your latest nights. Each member of the account has their own set of links.
Members on one account
One subscription covers everyone in your household who uses CPAP. Each member has their own machine, nights, trends, settings, Apple Health data and share links, kept completely separate. There is no limit on members and no extra charge.
- Open Settings → Members (or click your name at the bottom of the sidebar) and choose Add a member.
- Enter their name. An email is optional; it's for their own sign-in later.
- Sleep Tally switches to the new member and opens Import. Put their SD card in and import it as usual.
Switching. Click the name at the bottom of the sidebar (the avatar in the header on a phone) to see everyone on the account and switch with one tap. Every page, from the night view to Trends to share links, then shows that member's data.
Managing. Under Settings → Members you can rename a member, add an email, or remove them. Removing a member deletes their imported nights and turns off their share links; nobody else on the account is affected.
Other apps charge extra for this. SleepHQ only lets you add people on its higher-priced plan; Sleep Tally includes everyone in your household in the one price. Fair use applies: an account is for one household, with room for up to six members and six machines. Bigger household, or a clinic? Write to support@sleeptally.com. A machine can belong to one account at a time.
Reports for insurers and doctors
Reports in the left menu builds three documents from your nights, each previewed on screen and saved as a PDF through your browser's print dialog.
Compliance report. What insurers, equipment suppliers and clinics ask for: days used, nights with 4 hours or more, the percentage, hours per night, a usage chart against the 4-hour line, average AHI, leak and pressure, the settings in force, and a night-by-night table. A 90-day report also picks out the best consecutive 30 days, which is the window most insurers look at.
Therapy summary. For a doctor's visit: a plain-language overview, then trends for AHI, usage, leak and pressure, the event mix with what each type means, the settings and mask changes in the period with the effect on AHI, and a summary of your morning notes (feelings and tags; the text itself only if you tick the box).
One night in full. The verdict, every metric and statistic, the settings and mask, breathing-event positions, and printable charts for breathing, pressure, leak, flow limitation, snore, breathing rate and, when a watch or oximeter recorded them, oxygen and pulse.
Name and date of birth appear on reports because insurers expect them; set them under Settings → Account. Nothing in a report is sent anywhere until you choose to share the PDF.
Morning notes
Under the night's verdict there is a Morning notes card. Pick how you feel (Exhausted to Great), tap what was different (alcohol, a late meal, a cold, a new cushion, travel, or a tag of your own), and write anything worth remembering. It saves as you type; there is nothing to submit. Nights without machine data get a notes card too, so you can record why the machine stayed off.
Settings → Morning notes lists every note newest first, with search and your most-used tags, and each one opens its night. Notes are private to your account and are never included in share links.
Machines, masks and reminders
Open Devices and tap your machine or mask, or go straight to Machines & masks from Settings. It keeps four things for each member.
Machine. Model and serial number come from the SD card. Add a nickname and the date you bought it. Its card shows nights, total hours, hours per night and the first night on record.
Settings changes. Every night on the card records the settings the machine was running, so Sleep Tally notices when they change and lists each change on a timeline: the date, what changed (say, Min pressure 6.0 → 7.0 or EPR Off → 2), and what happened next. For each change it compares up to two weeks of nights before with two weeks after and shows AHI, leak and hours per night side by side, with a one-line read such as AHI came down by 0.4 or No real difference. The strip at the top shows the settings in place right now and how long they have been there. Nothing here changes your machine; it only reports what your machine already did, so you and your clinician can see whether a tweak actually helped.
Masks. Add a mask by picking the brand, type (full face, nasal, nasal pillows) and model from the list, or type one that isn't listed, then the size, when you started using it, and an optional nickname and purchase date. Every night is matched to whichever mask was in use, so each mask card shows its own average AHI, average leak, average pressure, time per night, time in large leak and total time. When you switch masks, press Switched to a new mask: the old one is retired the day before and its numbers stay put, so you can compare the two honestly.
Consumables and reminders. Cushions, filters, tubing, water chambers and headgear wear out on a schedule. Add each one with the date you bought it and how often to replace it (the usual intervals are filled in), and Sleep Tally shows Due in 12 days or 3 days overdue. Press Replaced today when you swap it.
Your account
Signing up. Press Start free for 30 days, enter your name, email and a password, and confirm the email we send. There is no card to enter. From then on your nights, equipment, Apple Health days and share links sync to your account, so you can open Sleep Tally on your phone, laptop or a clinic computer and see the same thing. You can also sign in with a one-time link sent to your email if you prefer not to type a password.
Plans. After the free 30 days, Sleep Tally is $8 a month or $60 a year, with everything included and unlimited members. Open Billing & plan from Settings, or by pressing your email in the sidebar. It shows the plan in force and lets you choose monthly or yearly, switch between them (the unused part of the current period is credited), update your card, download invoices or cancel; after cancelling you keep access until the period you paid for is over. Payment is handled by Stripe and Sleep Tally never sees your card number. Subscribe during the trial and you are not charged until it ends. When a trial or subscription ends you can still look at everything you imported; only importing new nights waits for a plan.
Under Settings → Account you can change the name and email of the member you are viewing, the timezone nights are labelled in, and whether weight shows in pounds or kilograms.
Deleting the account. At the bottom of Settings, Danger zone → Delete account removes every member, every imported night, Apple Health data, equipment and share links from your account and this browser, turns off every share link, and deletes your sign-in. You type delete to confirm, and there is no undo. Cancel any subscription first under Manage billing. Your SD card and the Health app are untouched, so you can start again later if you change your mind.
Apple Health and sleep stages
Sleep stages from an Apple Watch sit on the same time axis as the breathing chart, so you can see whether a run of events fell in REM, or whether the awake stretch at 2 AM matched a leak. Steps, weight and resting heart rate appear in the Daytime card, and sleep stages join the Trends page.
Why an export? Apple only lets apps on the phone read Health data. The Sleep Tally iOS app will sync automatically when it ships; until then the Health app's own export does the job in about two minutes.
- On your iPhone open Health, tap your picture (top right), then Export All Health Data and confirm.
- Share the export.zip to the device you use Sleep Tally on: AirDrop to a Mac, save to iCloud Drive or Files, or email it to yourself. If you use Sleep Tally on the phone itself, just save it to Files.
- In Sleep Tally open Devices, tap Apple Health, then Choose export.zip and pick the file.
- Wait for Imported. Big exports (years of heart-rate readings) take a minute; the file is read as a stream, only sleep, steps, weight and resting heart rate are kept, and nothing is uploaded anywhere.
Every night the Watch recorded now shows a Sleep stages chart, above Breathing by default: deep, core, REM and awake as coloured bars, the in-bed span shaded behind, totals in the header, and the stage under your pointer named as you hover. Zoom, scroll and drag work like any other chart, and you can move it wherever you like.
Keeping it current. Repeat the export whenever you want recent nights added. Nights already imported are kept, so a fresh export only fills in what's new. Remove Health data in the same dialog takes it all out again.
Automating it. A CSV of start,end,stage rows imports the same way (stages: awake, core, deep, rem, asleep, inBed), so an iOS Shortcut using Find Health Samples → Sleep, or an app such as Health Auto Export, can write one every morning into the folder you already watch for card files. A second layout, date,steps,weight_kg,resting_hr, covers the daytime numbers.
The Watch needs Sleep Focus (or a sleep schedule) turned on and must be worn overnight to record stages. Nights without stages simply show no chart.
Devices and services
Apple Health works today through the Health app's export. The step-by-step is in Apple Health and sleep stages.
Health Connect, Fitbit and Oura are planned, and Bluetooth pairing for Wellue and Viatom O2 rings. Their rows on the Devices page show the intent and don't sync anything yet.
Your data and privacy
- Card files are decoded in your browser. What they contain is stored on the device and in your private account, so the same nights open on your phone, laptop or a clinic computer.
- Charts download on demand: a night imported on one device fetches its session files from your account the first time you open it elsewhere, then keeps a local copy.
- Settings → Export everything writes a full backup you can restore on any device; Export CSV writes every night's summary. Delete account removes everything from your account and this browser.
- Sample nights are labeled "Sample data". Nights decoded from your card say "From your card". The app never generates data for a real night that's missing; it tells you what happened and what to do.
Troubleshooting
"STR.edf is required"
You picked a sub-folder or a handful of files. Pick the card root, the folder that contains STR.edf and the DATALOG folder, or zip the whole card.
Some charts are missing for a night
The note under the charts says which file is missing. Leak, flow limitation, snore and breathing rate need that night's PLD file; event markers need the EVE file. Import the full DATALOG folder to get them.
A night says it is fetching, never uploaded, or not on this device
Your imports are recorded in two parts: the record of which nights a card covered, and the nights themselves. When the app finds the record but not the night, it asks your account for it first. Couldn't reach your account means the night is there but the download failed; check your connection and press Try again. Never finished uploading means the device that imported the card was closed before the night went up; import the card again on any device and it syncs everywhere. Not on this device only appears when you are not signed in, because without an account a night lives only in the browser that imported it.
My numbers differ slightly from another app
Different apps report different statistics. Sleep Tally shows average leak and average set pressure on the tiles and the median and percentiles in the table. AHI is computed from the event log when it's present and otherwise from the machine's one-decimal daily figure.
I can't pick a folder on my phone
Phone browsers don't allow it. Zip the card in your Files app and choose the zip.
Automatic import stopped
Browsers sometimes ask again for folder access after a restart. Open Import and click Check now. If the folder moved, choose it again.
FAQ
Which machines are supported?
ResMed AirSense 10 and 11 and AirCurve 10 and 11 today. Philips DreamStation 1 and 2 are next, then Löwenstein Prisma and Fisher & Paykel SleepStyle. The import screen lists current support.
Is this medical advice?
No. Sleep Tally shows you what your machine recorded, in plainer language. Decisions about your therapy belong with your clinician; the share link exists to make that conversation easier.
How is this different from my machine's app?
Manufacturer apps show a score built mostly from hours used. Sleep Tally shows the events, the leak, the pressure and the breathing itself, and explains them.
How is this different from OSCAR?
OSCAR is free desktop software with great depth and a clinical interface. Sleep Tally runs in a browser on any device, opens with a plain-language verdict, and keeps the depth underneath. Many people use both.
Does it work offline?
Once loaded, yes: decoding and charts don't need a connection. Loading the app and creating share links do.
Can I use it for two people?
Yes. One account includes two profiles, each with their own machine and nights.
Can I change the order of the charts?
Yes. Drag any chart by the grip at its top right, or focus the grip and use the arrow keys. See Arranging the charts.
Where's the Apple Watch data?
Import the Health app's export under Devices → Apple Health (see Apple Health and sleep stages). Sleep stages then appear as a chart next to the breathing chart on every night the Watch recorded, and steps, weight and resting heart rate sit in the Daytime card. The iOS app will sync this automatically when it ships.
What about oxygen?
If an oximeter is connected to the machine, its SA2 file already imports. Bluetooth pairing for O2 rings is coming, and will add oxygen and pulse charts plus an Oxygen status word.