CLIENT: Vaarala Sport Labs Oy🇫🇮Finland

Latu - Wearable Data Dashboard for Endurance Athletes and Coaches

Wearable Data Dashboard for a Finnish Sports-Tech Company

Designed and built a clickable athlete app for a Finnish sports-tech company that joins heart rate, HRV, sleep and training load from several wearables: a daily readiness score that explains itself, training load and fatigue charts, every workout in one list with duplicates merged, and sleep trends against the athlete's own normal range.

Scope of Work
Product design, UI build and clickable demo
Industry
Fitness & Wearables / Wearable Data
HealthcareAISaaS
Compliance & Certifications
GDPRFinnish Data Protection ActEU MDREU AI Act

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Today with readiness, training load, workouts, workout detail and sleep. Each recent workout opens its own analysis with heart rate, speed and altitude, HR zones, laps and planned vs done.

5 Inputs
Behind every readiness score

Overnight HRV (35%), resting heart rate (25%), sleep (20%), acute:chronic load (15%) and the last check-in (5%), each compared with the athlete's 60-day normal in the Why? panel.

4 Sources
Joined in one view

Polar, Oura, Health Connect and Strava. Sessions recorded twice show a merged badge with the kept source, and Strava-only sessions are marked as visible only to the athlete.

345 Workouts
Realistic demo data

12 months of training across 6 sports, 120 nights of sleep, HRV and resting heart rate, 14 planned coach sessions and 3 races for one U21 cross-country skier.

The Problem

Vaarala's first product was a training diary for one watch brand, but athletes had moved on: a skier trains with a Polar watch, sleeps with an Oura ring and logs gym sessions on a phone, and a club coach with 25 juniors has athletes on four brands. Coaches collected screenshots in WhatsApp groups, copied numbers into spreadsheets and learned about an overreached athlete only after a bad race or an injury.

Our Solution

Latu pulls data from the watches, rings and apps athletes already use into one place and turns it into a daily readiness view, training load and fatigue charts, workout analysis and sleep trends. The spec adds a coach dashboard where each coach sees only the data scopes an athlete has chosen to share.

The Challenge: Health Data From Many Devices

Heart rate, HRV and sleep are health data under EU law, they arrive from several providers with their own terms, and the people who need them range from adult athletes to under-16 juniors and their coaches.

One Athlete, Many Devices

Garmin, Polar, Suunto, Oura, Apple Health, Health Connect and Strava each report workouts, sleep or HRV differently, and the same session often arrives twice. Athletes had no single, honest answer to whether they were recovered enough to train hard today.

Special Category Data and Consent

Health data is generally special category data under GDPR Article 9, so Latu relies on explicit consent per purpose, recorded with the text version shown. A coach sees nothing by default, and athletes under 16 need a verified guardian's consent before any data is collected.

Wellness, Not Medical

Software that diagnoses or monitors disease is generally a medical device under the EU MDR. Latu does not detect arrhythmias or make diagnostic claims, so readiness, HRV trends and flags have to read as training information, and AI-drafted suggestions must be labelled under the EU AI Act's transparency approach.

Provider Terms That Limit Display

Strava's API agreement generally restricts showing a user's data to anyone else and using it for AI or machine learning. Strava-sourced activities have to stay visible only to the athlete, out of coach views and AI features, while the same session from a watch can be shared.

Our Approach: From Consent Rules to a Clickable Athlete App

01

Spec and Rules Research

Mapped 9 roles, from athlete, junior and guardian to head coach, assistant coach and Vaarala's support, integration and privacy staff, and 34 screens across the athlete app, magic-link pages, coach dashboard and admin console. Defined the data model for devices, workouts, daily metrics, readiness, load, sharing grants, consent records and flags, and wrote down the rules: GDPR, Finland's Data Protection Act, the EU MDR, the EU AI Act and each provider's API terms.

02

Clickable Demo on a Production UI Kit

Built 5 athlete screens on a production dashboard kit: Today with the readiness card, explanation panel, input tiles, today's plan, load gauge, labelled recovery suggestions and check-in; training load with fitness, fatigue, form and the acute:chronic ratio; workouts with source filters and merged sessions; workout detail; and sleep with goal, stages, consistency and HRV trends. Marking sessions done, skipping with a reason, marking nights unusual and replying to the coach all run on local state.

03

What a Production Build Adds

Integrations with Garmin, Polar AccessLink, Suunto, Oura, Apple HealthKit, Google Health Connect and Strava, plus FIT, TCX and GPX import, push notifications and EU-region email. Guardian consent with Finnish strong electronic identification, per-scope coach sharing, an append-only audit log, data export and deletion, the coach dashboard and admin console, and the Finnish and Swedish versions.

Why It Works: Training Information Athletes Can Trust

Readiness That Explains Itself

The score comes with a band and a one-line reason, such as HRV 12% below the 60-day normal. Why? opens every input against its normal range with its weight and the nights of baseline behind it, and each tile names the device it came from.

Duplicates Merged, Sources Kept Visible

A session recorded by a Polar watch and Strava appears once with a merged badge and the kept source. Strava-only sessions carry an Only you label and coaches cannot comment on them, so provider terms hold without the athlete losing their data.

Guidance Labelled for What It Is

Recovery suggestions are marked General guidance and, when drafted by a language model, AI-generated, with a Not helpful button. Every readiness and recovery screen carries the line that Latu gives training information, not medical advice.

Load and Sleep in Context

The acute:chronic ratio shows the 0.8 to 1.3 typical band with anything above 1.5 marked and a note that the ratio is debated, planned load for the next 14 days is drawn dashed, and nights marked unusual for travel, illness or altitude are left out of the baseline.

Related case studies

View all: Fitness & wearables
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab