Skip to content

Audit trail explorer

Every track traces back to one sealed physiological session

Append-only rows in Postgres map a physiological_prescription_id to the rendered audio, its watermark payload and its Content ID asset. Rows are hash-chained: altering one breaks every row after it.

AI-GENERATED AUDIOComposed by a generative model from your physiological data. Not a medical device — fitness guidance only.

FTC 16 CFR §255 · EU AI Act Art. 50
5 of 5 recordsappend-only
physiological_prescription_idgenerated_at (UTC)sessionzonechannel
rx_14611c3157a52026-08-12T07:32:00.000Zses_4f7c3547Zone 2 — Aerobic baseUC_vo2max_lab
rx_7ddf2cf6deac2026-08-12T14:34:00.000Zses_e94ef7dcZone 4 — ThresholdUC_vo2max_lab
rx_4a957e3ca9b72026-08-12T19:55:00.000Zses_7027b97aZone 1 — RecoveryUC_cardiac_rehab
rx_677cc6e2404a2026-08-12T11:09:00.000Zses_1e152eacZone 5 — VO₂maxUC_vo2max_lab
rx_8152cb036fd42026-08-13T03:34:00.000Zses_9f90c4ddZone 3 — TempoUC_sleepfm_clinical

Session → audio mapping

physiological_prescription_id
rx_14611c3157a5
session_id
ses_4f7c3547
generated_at
2026-08-12T07:32:00.000Z
source_device
Apple Watch S10
hr_target_range_bpm
132–144
audio_object
s3://vo2max-renders/rx_14611c3157a5.flac
watermark_payload
RX_14611C3157A5:SES_4F7C3547
content_id_asset
A-VO2-14611C3157A5
youtube_channel
UC_vo2max_lab

Immutability proof

prev_row_hash

00000000000000000000000000000000

chained

row_hash

aa8e370febe1422aeae14097e9e13f04

Row 1 of 5 in the chain. Writes are INSERT-only; UPDATE and DELETE are revoked at the role level, and a nightly job re-verifies the chain.

verify chain
select verify_audit_chain(
  prescription_id => 'rx_14611c3157a5'
);

-- row_hash = sha256(
--   prev_row_hash || prescription_id ||
--   session_id || generated_at ||
--   audio_sha256 || watermark_payload
-- )
-- => chain_valid: true

Want to generate your own record? Run the prescription demo →