1Listening level
iOS doesn't let apps listen to what other apps play, and we wouldn't want to. So we work with two sources, and every value says which one it comes from:
- Measured: Apple Health records headphone audio levels for supported earbuds. With your permission we read those samples. They are the reference, but they often arrive minutes or hours later.
- Estimated: instantly, from the volume setting and a loudness curve for the connected headphone model. An estimate is shown with an uncertainty band that starts at about ±6 dB.
Calibration
Whenever a measured sample arrives, we compare it with what we estimated for the same minutes and nudge your device's curve a little towards the measurement (at most 3 dB per sample). As matches add up, the uncertainty band narrows, down to about ±2 dB. Samples that disagree by more than 15 dB are ignored for learning, because they usually mean a different output device was used. Your personal calibration offset is backed up to your account, so a new phone starts from your curve rather than from scratch. New devices start from a typical curve for their headphone model.
Back-correction
When measured data arrives for a period we had estimated, the charts switch to the measured values and the dose is recalculated. You may see yesterday's chart change slightly; that is the estimate being replaced by a better number.
2Weekly sound dose
Loudness is combined over time as sound energy (the equivalent continuous level, Leq), never as a simple average: ten minutes at a very high level weigh far more than an hour at a quiet one. The weekly dose follows the WHO–ITU safe-listening standard ITU-T H.870 over a rolling seven days.
Profile Weekly budget (H.870) Alerts Adults 80 dB for 40 hours a week 50%, 80% and 100% Children and teens 75 dB for 40 hours a week 50%, 80% and 100% The budget uses a 3 dB exchange rate: every 3 dB louder doubles the sound energy, so the same budget lasts half as long. For an adult, 80 dB for 40 hours uses the same budget as 83 dB for 20 hours or 86 dB for 10 hours. If the current pace would use up the budget before the seven days are over, the app says so in advance, once it has at least five days of history.
Reports also show a daily dose in the style of NIOSH (85 dB over 8 hours, also with a 3 dB exchange rate) for context. Levels below 70 dB don't count towards it.
3Loud-listening alerts
- The level must be above the limit for most of the last three minutes (70% of the time) before anything happens, so a single loud moment doesn't trigger an alert.
- The listener is nudged first. Parents are told only if it is still loud about ten minutes after it started.
- Hysteresis: once an alert is active, the level has to drop 3 dB below the limit to end it, so a song hovering around the limit doesn't switch it on and off.
- The same alert doesn't repeat for 60 minutes; the existing event is updated instead.
- When data is missing, the alert state is frozen rather than reset or guessed.
4Posture
During a session, earbuds with head-motion sensors report the orientation of the head about 25 times a second. On the phone, we filter this signal and compare the head's forward tilt (pitch) with a short “sit up straight” calibration. Raw motion data never leaves the phone; only state changes (upright, slumped, tilted, not measurable) and the session summary are synced.
Rule Default Calibration About 2 seconds sitting still; repeated if the head moves too much Slump starts Head tipped forward more than 20°… …and counts …if it stays above 12° for at least 60 seconds Back to upright Below 12° for 5 seconds without interruption Short dips Under 5 seconds never count Gaming sessions More tolerant: slump starts above 25° Head tilted sideways More than 15° for 90 seconds Break reminder After about 45 minutes of an almost motionless head - Hysteresis: between 12° and 20° the timer keeps running, because real heads sway. Without this, genuine slumps were almost never counted.
- Drift correction: in long, calm sessions the upright reference is updated very slowly, so earbuds settling in the ear don't create false slumps. Real slumps of 20° or more are never absorbed.
- Not measurable: walking, being in a vehicle, lying down or loose earbuds pause measuring. That time doesn't count for or against anyone.
- Nudge budget: at most 3 reminders a day, at least 20 minutes apart, and only if a slump lasts more than a minute and isn't corrected within another 30 seconds.
5Dropped and left-behind earbuds
- Dropped: a sharp acceleration peak (above 2.5 g) from the earbud, followed within 3 seconds by the motion sensor disconnecting while audio is still routed to the earbuds. The listener is asked first. If nobody answers and the earbud doesn't reconnect within 2 minutes, parents get an alert with the location at that moment.
- Putting earbuds in the case looks different: low movement, then the connection drops a few seconds later. We use that pattern to avoid false alarms.
- Left behind: the earbuds disconnect, it doesn't look like they were put in the case, they don't reconnect within 10 minutes and the phone is moving away (walking, in a vehicle or more than 150 m away). The listener and parents get an alert with the last connected location.
6Limits we are open about
- Estimates can't know how loud the content itself is: a quiet podcast and a loud song at the same volume setting give the same estimate. That is why we show the uncertainty band and prefer measured values.
- When iOS fully suspends the app and nothing is playing, a drop can't be detected. Left-behind detection works only while the app is awake.
- Background updates arrive as often as iOS allows. The dashboard always shows how fresh the data is.
- Thresholds are tuned with real recordings, and they are defaults, not truths. We may adjust them and will update this page.
Nothing here is a hearing test, a posture assessment or a medical diagnosis. Earbunny builds awareness and habits.Questions about our methods? Ask us.
Trust
How we measure
Families should be able to check our numbers. This page explains in plain words how each value is calculated, how precise it is and where its limits are. The numbers below are our defaults.
