Playback
A monthly letter from Beacon about what happened, what improved, and what you logged that matters.
When to use this
Use Playback at the end of a month when you want to see the shape of the month instead of the day. Beacon reads everything you logged (behaviors, wins, journal entries, check-ins) and writes a structured letter you can read on the couch in 3 minutes. The structure forces context: not just 'here are the numbers' but 'here's what changed and why it matters'. Share it with a partner, a therapist, or your own future self.
How it works
Generate this month's Playback
Tap the button. Beacon pulls the last calendar month of your data, writes a 4-6 card letter (title + heading/body per card), and routes you to the read view. ~10-30 seconds depending on volume.
Card structure
Each card has a heading, a body paragraph, and a hidden why-it-works note. Headings are the month's themes (e.g., 'Bedtime turned a corner', 'School Wednesdays were rough'). Bodies are 2-4 sentences in plain language.
Save the past
Every Playback you've generated lives in the list, sorted newest first. Tap any to re-read. Useful when 'last month was a blur' is actually closer to 'last month had 3 distinct phases'.
Share via public link
Each Playback can be shared by toggling its share token. The link is public-read-only. Send to a partner or therapist who does not have a Beacon account.
What Beacon stores when you use it
playbacks: One row per generated Playback. Beacon writes the row; you read it. summary_json holds the structured letter.
| Column | Type | Example |
|---|---|---|
| id | UUID | 2a8d... Auto-generated; used in URLs. |
| user_id | UUID | your-user-id RLS-locked to you (or public via share_token). |
| period_start | date | 2026-04-01 First day the Playback covers. |
| period_end | date | 2026-04-30 Last day the Playback covers. |
| summary_json | jsonb | { "title": "Mia, April 2026", "cards": [{ "heading": "...", "body": "...", "whyItWorks": "..." }], "plainText": "..." } Structured letter. The plainText copy lives here for paste-ability. |
| share_token | UUID (nullable) | (null until shared) Public-read via /playback/share/[token] when set. |
| created_at | timestamp | 2026-05-01T08:14:00Z When you tapped Generate. |
A real example
April 2026 Playback for Avery. Beacon found 4 themes from 26 days of logged data.
| Card | Heading | Body |
|---|---|---|
| 1 | This month in one sentence | It was hard and it was real, and you stayed in the room. |
| 2 | Bedtime turned a corner | Wins logged on April 10, 18, 22: Avery brushed teeth without protest. Three times in two weeks is a pattern. |
| 3 | Wednesdays were the hard ones | 4 of 7 Drowning journal entries fell on Wednesday. Behaviors-day logs cluster Wed 14:00-17:00. Worth looking at the schedule. |
| 4 | Where you stayed steady | Despite the Wednesdays, 12 of 20 check-ins were 'coping' or 'steady'. That is not nothing. |
What Beacon auto-knows
- Counts: how many wins, journal entries, check-ins, behaviors days in the month.
- Themes: which days were hard, which days were good, which behaviors trended up or down.
- Cross-references: behaviors clusters vs schedule blocks, journal moods vs day-of-week.
What Discuss with Beacon adds
- When you Discuss from a Playback, the structured cards + plainText attach to chat.
- Beacon can expand any card: 'Tell me more about the Wednesday cluster.'
- Or compare to the last Playback: 'How was April different from March?'
Try these with Beacon
โTell me more about the Wednesday cluster.โ
Pulls the specific Wednesdays from behaviors + journal + check-ins. 'Wed Apr 3, 10, 17, 24: all logged 3+ behaviors. Journal mood Heavy or Drowning on 3 of 4. Schedule shows OT at 16:00. The cluster aligns with the post-OT decompression window.'
โCompare April to March.โ
Diffs the two Playbacks. 'Wins: April 14, March 9. Hard days (Heavy + Drowning journals): April 7, March 11. Trend: more wins, fewer crashes, more Wednesday-specific load. March was diffuse hard; April was Wednesday-shaped hard.'
โWrite this Playback as a 4-sentence text to my partner.โ
Condenses the 4 cards into a 4-sentence text. 'April was rough on Wednesdays but Avery brushed teeth without protest three times in two weeks. Most days I coped. The school days are the load. Mostly we are okay.'
โShare this Playback with my therapist.โ
Generates the share token, returns the URL. 'Send this: beacon.spectrumunlocked.com/playback/share/9c7f.... Public read-only. They do not need an account. Revoke from the Playback page anytime.'