Example

Health trends

Years of Apple Health data, and no way to see a whole year.

01 · The choreYears of Apple Health, exported as one file: export.xml, 2 GB.The Health app shows a week at a time, never a whole year.

02 · One readUnzip the export next to the app.It reads the file 8 MB at a time, so 2 GB never has to fit in memory.

03 · A yearEvery day becomes three numbers: steps, sleep and resting heart rate.A dot per day, and a line for the month around it.

04 · Best and worstYour best and worst weeks of the year, and each year against the ones before.

05 · YoursThe app has no internet, so your health data stays on your computer.The next open is instant, from health.json.

~/Health/apple_health_export/export.xml 2.14 GB
<?xml version="1.0" encoding="UTF-8"?><HealthData locale="en_US"> <ExportDate value="2026-01-04 09:12:44 +0100"/> <Record type="HKQuantityTypeIdentifierStepCount" sourceName="iPhone" unit="count" startDate="2025-03-14 08:02:11 +0100" value="412"/> <Record type="HKQuantityTypeIdentifierStepCount" sourceName="Apple Watch" unit="count" startDate="2025-03-14 08:02:40 +0100" value="436"/> <Record type="HKQuantityTypeIdentifierHeartRate" sourceName="Apple Watch" unit="count/min" value="71"/> <Record type="HKCategoryTypeIdentifierSleepAnalysis" sourceName="Apple Watch" startDate="2025-03-13 23:41:00 +0100" endDate="2025-03-14 00:27:00 +0100" value="HKCategoryValueSleepAnalysisAsleepCore"/> <Record type="HKQuantityTypeIdentifierRestingHeartRate" sourceName="Apple Watch" unit="count/min" value="54"/> <Record type="HKQuantityTypeIdentifierHeartRate" sourceName="Apple Watch" unit="count/min" value="68"/> …
Health trends

Health trends

Reading export.xml. This happens once; the next open is instant.

0 MB of 2,140 MB · 0 records so far512 MB of 2,140 MB · 1,104,880 records so far1,070 MB of 2,140 MB · 2,316,212 records so far1,605 MB of 2,140 MB · 3,471,906 records so far2,140 MB of 2,140 MB · 4,630,415 records so far

Health trends

3,912 days, 2015 to 2025 · from export.xml, 2,140 MB

Steps7,357a day+377 on 2024

Sleep6 h 52a night+7 min on 2024

Resting heart rate54.2bpm−1.4 on 2024

Year over year

YearSteps a daySleep a nightResting heart rateDays
20257,3576 h 5254.2365
20246,9806 h 4555.6366
20237,3126 h 3856.9365
20226,1046 h 5158.2365
20215,8716 h 57–365

Best and worst weeks of 2025

StepsBest

23 Jun – 29 Jun10,170

5 May – 11 May10,133

2 Jun – 8 Jun9,575

Worst

17 Nov – 23 Nov4,450

8 Dec – 14 Dec4,732

15 Dec – 21 Dec4,870

SleepBest

29 Sep – 5 Oct7 h 28

13 Jan – 19 Jan7 h 24

1 Dec – 7 Dec7 h 19

Worst

21 Apr – 27 Apr6 h 13

5 May – 11 May6 h 22

4 Aug – 10 Aug6 h 27

Resting heart rateBest

22 Dec – 28 Dec52.0

15 Dec – 21 Dec52.6

1 Dec – 7 Dec52.7

Worst

10 Mar – 16 Mar55.7

5 May – 11 May55.4

14 Apr – 20 Apr55.4

~/Health/health.json 112 KB
{"size":2140118016,"mtimeMs":1767514364000,"days":{"2015-04-02":[3120,null,null],"2015-04-03":[6904,null,null], … ,"2025-12-31":[5210,447,52.8]}}

Try it.

Put the app in a folder with your files, and double-click it.

Your files. The Health app’s export, unzipped next to the app as apple_health_export/export.xml. On your iPhone, open Health, tap your picture, then Export All Health Data. The app keeps its daily totals in health.json.

It asks for one thing. <meta name="papp-write" content="./health.json">

See the code for yourself

Or ask your AI for your own version. That’s the point.

More examples