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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

Designed and built a clickable trainer web app for a US coaching platform: a dashboard of who needs attention today, a client roster with adherence trends, a client record with PAR-Q+ screening and programming holds, a check-ins inbox against a 48 hour response target, and Stripe payments - keeping the product on the coaching side of the line with medical care.

Designed and built a clickable photo-first food diary for a Brisbane consumer health company: snap a meal, the AI finds each food and shows how sure it is, fix anything in two taps, and see kilojoules, macros, fibre and key micros against Australian reference values, with guidance tied to the Australian Dietary Guidelines.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
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
Enterprise Software Engineering - Human + AI
Contact Us
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