To export step counts already stored in Apple Health, authorize Health.md on your iPhone, enable Steps, select a date range, and save CSV or JSON files. Start with one known day, check the saved total, then export a longer range for a spreadsheet or daily journal.
Health.md includes 5 free export actions, followed by a single lifetime unlock. Manual export needs no Mac. For Apple's native XML archive and the broader format choices, see how to export Apple Health data.
Choose daily totals or source records
| Goal | Starting choice | What you get |
|---|---|---|
| Compare daily step counts | CSV, Summary | One Activity / Steps daily value with Unit count, when available. |
| Process steps in a script | JSON, Summary | The daily numeric value at activity.steps, when available. |
| Put steps beside a journal entry | Markdown or Obsidian Bases | A readable daily projection or structured note properties. |
| Inspect selected public HealthKit source records | JSON or CSV with Lossless Health Records | An Apple-only canonical archive with record identity, source intervals, provenance and capture diagnostics. |
Detailed Time-Series does not add step-sample or hourly-step rows to the current daily steps export. Other metrics support their own sample arrays; their behavior should not be assumed for Steps. Use the daily total for a daily trend, or review the canonical source-record path when you need more than that projection.
The archive represents selected public HealthKit API results, not Apple's private database. Read the format guide and canonical Apple Health records reference before treating it as a source-record dataset.
1. Select Steps and preview one day
- Confirm that steps appear in Apple Health on this iPhone. Health.md reads authorized HealthKit data; it does not create missing step measurements.
- In Health.md, authorize the relevant health categories. Open Health Metrics → Activity and enable Steps.
- Choose CSV or JSON, start with Summary, and select one known day. Use YYYY-MM-DD date formatting to make comparisons straightforward.
- Select a writable Files folder. Tap Preview and check the date and total, then run the export.
- Open the saved file in that folder and confirm its contents and location. Preview alone does not establish that writing succeeded.
Follow your first iPhone export for setup and folder selection. Apple's Health access instructions explain how to review app read permissions.
Choose a completed day for the first comparison. Today's count can change as the phone, watch, or another source writes more data. If records arrive later, re-export the affected date and keep the intended version rather than adding both exports together.
2. Verify the CSV and JSON fields
Download the synthetic daily CSV to test an import without personal records. It contains fictional values and metadata generated by the exporter. Its header is Date,Category,Metric,Value,Unit,Timestamp, and its steps row is:
2026-03-15,Activity,Steps,12500,count
That is 12500 steps for the daily summary, not one timed walking interval. The row has five fields and omits the final Timestamp; a CSV-aware importer should leave that last cell empty while keeping the first five aligned.
For steps analysis, filter exactly Category = Activity, Metric = Steps, and Unit = count. The full Value column is mixed-type and also contains metadata, text, and other metrics. Convert only the filtered values to numbers; a different metric that also uses count is not another step total.
The synthetic daily JSON represents the same total as activity.steps = 12500. JSON is nested rather than a CSV table. Its units dictionary labels steps as steps, while the compatibility CSV row uses count; inspect the format's actual metadata instead of expecting identical labels everywhere.
An omitted step field or row is unavailable data in that export, not automatically zero. Preserve any explicitly recorded numeric zero separately from missing data.
3. Make a daily or weekly spreadsheet view
A longer range produces one file per day, not one combined workbook. Import the daily CSV files into one source table with a single header, keeping the columns in order and checking that every intended date appears. Follow the Excel walkthrough or Google Sheets walkthrough for the import and combination steps.
After applying the exact Steps filter:
- Keep one intended daily total per Date. Investigate duplicates from overlapping exports before calculating.
- Parse Date using the selected export format and inspect it against the original file. Formatting text as Date alone does not parse it.
- Convert the selected Value cells to numbers and keep Unit visible. Inspect conversion errors; do not replace errors or missing dates with zero.
- For a daily chart, sort by Date and chart the numeric Steps value. A line between dates does not prove that the missing dates were recorded.
- For a weekly report, use SUM for recorded totals or AVERAGE for average daily steps over recorded numeric days. Report the recorded-day count, missing dates, and partial weeks.
Do not mix daily summaries with weekly/monthly rollups, duplicated exports, or source records. They can describe overlapping activity. Seven daily files also do not establish seven recorded step values if some dates have no Steps row.
Why steps can differ between views
Health.md's daily Steps value comes from a HealthKit cumulative-sum query for the selected calendar day. It is a statistic, not a manual sum of every row visible in a source-record list.
Apple documents that Health can receive data from several sources and prioritizes sources for a data type. The HealthKit step-count type uses cumulative count samples, which HealthKit can condense or coalesce. A source record is not necessarily one physical footstep.
If two views disagree, compare the same completed date, timezone/calendar, source availability, and synchronization state. Inspect the data sources contributing to Steps in Apple Health. Do not assume that a raw sum across phone, watch, and app records reproduces a displayed daily total, or that this guide guarantees equality with every third-party app's reduction.
For canonical source records, preserve the original UUID, type, exact start/end intervals, source information, units, capture status and warnings. Repeated copies of the same source UUID are different from two independently recorded objects that overlap in time. Do not deduplicate different source records merely because a value or timestamp matches, and do not add the canonical records to the daily total.
Daily statistics and source-record ownership also use different query semantics. Check the archive's ownership/time context and the selected range before attempting to reconstruct a total. A record spanning a boundary is not a reason to copy the full value into both days yourself.
Troubleshooting
- No Steps row: check the source records, selected day, Steps toggle, source synchronization, and read authorization. Absence does not establish zero or identify a particular permission-denial state.
- No hourly rows after enabling detail: the current daily Steps output remains a total; Detailed Time-Series does not create an hourly series for it.
- A recent total changed: source data may have arrived since the earlier export. Inspect the original records and keep the intended replacement file.
- Weekly total looks too high: check duplicate dates, repeated headers, other count metrics, rollups, and raw records mixed with summaries.
- Preview works but no file is saved: reselect the folder and check its provider's availability. See export troubleshooting.
Keep control of the exported files
The core local folder workflow requires no Health.md account and creates no Health.md server copy by default. Synced folders, recipients, online spreadsheets, and model providers follow their own storage and privacy rules. Source archives can preserve exact timestamps, identifiers, and provenance; inspect them before sharing.
The separate opt-in, single-owner Health.md Cloud pilot retains only API exports intentionally uploaded to it, has no public signup and no automatic device sync, and is not generally available. This folder workflow does not upload to that pilot. See retention and destination boundaries.
For a non-synced folder and backup checks, follow export health data without the cloud. For exact row contracts, use Apple Health to CSV. Android readers should follow the Health Connect export guide and its documented aggregation behavior rather than assume identical source semantics.