Private Oura export analysis

OpenOura

OpenOura turns your Oura Ring CSV export into a local dashboard for reviewing long-term sleep, heart, activity, stress, and oxygen patterns without uploading the export to a hosted service.

Local first Browser parsing, local storage, chart-ready summaries.

Purpose

Bring exported ring data back into view.

Oura's export gives you raw records, but raw CSVs are slow to inspect. OpenOura is built to make those exports useful: it surfaces trends, distributions, rolling averages, and plain-language readouts from data you already own.

Import

Choose an Oura data export ZIP from the membership portal.

Normalize

The app parses CSV files in the browser and builds daily health metrics.

Explore

Charts organize sleep, heart, activity, stress, and oxygen trends into a scannable dashboard.

How it works

Everything important happens on your device.

The dashboard reads the ZIP with browser APIs, parses CSV rows, derives daily metrics, and stores the normalized summary in IndexedDB so your next visit can reopen the same dashboard quickly.

  • ZIP parsing happens locally in the browser.
  • The raw export is not sent to a server by the app.
  • IndexedDB stores only the normalized summary used by the charts.

Data visualization source

Chart selection follows Aleksa Gordic's Oura analysis.

The dashboard's category structure and visualization selection are adapted from Aleksa Gordic's public Oura data analysis write-up.

Read the source blog

Open source

Source code and issues live on GitHub.

exosai/openouraring