# macOS 27 IOReport Energy Model publication trace (M5 Pro)

Canonical: https://plottypus.com/data/macos27-energy-publication-trace

Last updated: 2026-09-24

[data](https://plottypus.com/data) · CC BY 4.0 · v1.0

Raw IOReport CPU Energy, DRAM0 and GPU Energy totals with driver timestamps: 22 publication gaps of 2.2 to 108.5 s, then a 363 s trace with no publication at all.

about

## What this is

Two traces of the IOReport "Energy Model" running totals on a MacBook Pro Mac17,8 (Apple M5 Pro) running macOS 27.0 (26A428), read without sudo. For CPU Energy, DRAM0 and GPU Energy, each row gives the raw counter value, its unit, the driver-side timestamp stored at byte 24 of the channel's RawElements (mach ticks, 125/3 ns each) and the age of that timestamp at the sample. The 5 s trace (2026-09-23, 170 samples, 847 s) holds 23 distinct CPU Energy timestamps, so 22 publication gaps between 2.2 and 108.5 s (median 29.0 s); the per-interval energy delta is exactly zero in 147 of 169 intervals. The 1 s trace (2026-09-24, 360 samples, 363 s) shows no CPU Energy publication at all: the timestamp was 1,398 s old at the first sample and 1,761 s old at the last, while the GPU Energy timestamp advanced on every read. Derived columns give what a per-interval sampler computes (delta over its own interval), the rate over the driver's own publication window, and whether that held rate is more than 10 s old. This is the primary data behind the plottypus post on why macOS 27 shows 0.00 W CPU power.

Captured 2026-09-23 to 2026-09-24. Method: IOReport (libIOReport) Energy Model group subscription, IOReportCreateSamples; IOReportElement driver timestamp at byte 24 of RawElements (mach absolute time); mach\_absolute\_time with mach\_timebase\_info 125/3. Full notes: [README.md](https://plottypus.com/data/macos27-energy-publication-trace/README.md).

Used by: [the macOS 27 post](https://plottypus.com/blog/macos-27-cpu-power-0w).

files

## Files

| File | Rows | Size | SHA-256 |
| --- | --- | --- | --- |
| [samples.csv](https://plottypus.com/data/macos27-energy-publication-trace/samples.csv) One row per sample per channel (CPU Energy, DRAM0, GPU Energy). | 1,590 | 253.5 KB | `0d119f5ea8f20d5156feaa179f1a563237ddbbba7a5369479eb7926903d38cef` |
| [samples.ndjson](https://plottypus.com/data/macos27-energy-publication-trace/samples.ndjson) The same rows as samples.csv, one JSON object per line. | 1,590 | 624.6 KB | `28ea86a3c1d93898c67d20b9970b76b5336df1a29d458ea1dd1fd280f27c7151` |
| [publications.csv](https://plottypus.com/data/macos27-energy-publication-trace/publications.csv) One row per CPU Energy or DRAM0 publication seen, with the rate over its window. | 44 | 4.1 KB | `d0e0bd0a3c98379198d6b83757aaf75687bfaab31eae0be0e286ac7fe1ec0029` |
| [publications.ndjson](https://plottypus.com/data/macos27-energy-publication-trace/publications.ndjson) The same rows as publications.csv, one JSON object per line. | 44 | 10.9 KB | `99f56c57b8a720c0a5c03246f02dbecbd52e31c6ea666aabece84336d5ae50f4` |

columns

## Variables

- **`energy_j` (J)**: Running energy total of the channel (raw mJ for CPU Energy and DRAM0, nJ for GPU Energy).
- **`driver_ts_ticks` (mach ticks)**: Driver-side publication timestamp of the channel value.
- **`age_s` (s)**: Seconds since the driver last published the value, at the sample.
- **`per_interval_w` (W)**: Energy delta divided by the sampler's own interval: what a per-interval sampler prints.
- **`held_rate_w` (W)**: Energy over the driver's last complete publication window divided by that window.

licence

## Cite and reuse

Licensed [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/): reuse it anywhere, with credit.

```
Sheth, L. (2026). macOS 27 IOReport Energy Model publication trace (M5 Pro) (Version 1.0) [Data set]. plottypus.com. https://plottypus.com/data/macos27-energy-publication-trace
```
