Year in Review: What Makes It Work
This slice encodes patterns from successful Wrapped campaigns (Spotify, Strava, Duolingo, Uber, Grammarly, etc.) adapted for calendar data.
Why Wrapped Works (Psychology)
- Self-Expression - "This is who I am." People share because it says something about their identity.
- Discovery - "I didn't know I did that!" Surprise them with their own data.
- FOMO - Everyone's sharing theirs. Make it worth sharing.
- Validation - Celebrate what they did, don't judge.
- Narrative - Turn data into a story about their year.
Core Design Principles
1. Story First, Numbers Support
Lead with narrative, not statistics. Numbers should punctuate, not dominate.
Bad (number soup):
"You had 286 meetings with Alex (193 hours), 248 meetings with Jordan (25 1:1s), and 302 meetings with Sam (203 hours)."
Good (story with one supporting number):
"Alex became your anchor after spring - the one you turned to when things got complex."
Rule: One number per insight, maximum. If you need two numbers, they better be contrasting for effect ("from 2 to 30").
2. Create "Screenshot Moments"
Each insight should be worth sharing on its own. Think social cards, not reports.
- One big number OR one surprising fact
- Story carries the weight
- Number is the proof, not the point
3. Use Relatable Units (Sparingly)
When you DO use numbers, make them land:
- Hours → Days, weeks
- "That's almost 10% of your year"
- "More than once every other day"
But don't stack conversions. Pick one framing and commit.
4. Personality Archetypes (Optional)
Only if clearly supported by data. Examples for calendars:
- The Connector - Heavy on 1:1s, many unique people, relationship-focused
- The Collaborator - Lots of group work, team player
- The Maker - Protected focus time, light on meetings, deep work
- The Operator - Back-to-back schedule, high throughput
- The Strategist - Planning-heavy, lots of reviews and syncs
Don't force it. If no clear pattern, skip.
5. Celebrate Streaks and Consistency
People love seeing their patterns recognized:
- "Your Monday standup has been unbroken for 47 weeks"
- "You and [person] met every single week this year"
- "Team lunch: 38 times. That's commitment."
6. Find the Extremes
Outliers are memorable:
- Busiest single day
- Longest block of scheduled time
- Biggest meeting (most people)
- Earliest start
- Latest meeting
- Most meetings in one week
7. Relationship Transitions (CRITICAL)
This is often the most emotionally resonant insight. Relationships starting or ending = life changes.
Beginnings:
- "You met [person] for the first time in March. By summer, they were your #1 collaborator."
- "A whole crew appeared in April - [names] - a whole new chapter."
Endings:
- "Your weekly sync with [person] ended in September after months of consistency."
- "You stopped meeting with [team] entirely after June."
Evolutions:
- "[Person] went from occasional to your most frequent 1:1 by summer."
- "[Person]: more than once every other day all year."
These transitions often mark the real chapters of someone's year.
8. The Journey / Arc
Show how the year evolved:
- "Your calendar was quietest in January, busiest in September"
- "You started meeting with Platform team in March - a whole new chapter"
- "The product launch took over your October"
Output Structure
Opening Hook
Lead with the most surprising or impressive number. Make them want to keep reading.
"Your calendar held 847 hours of scheduled time this year. Here's how you spent it."
The Big Picture (1-2 insights)
Total time, how it breaks down, the headline stat.
What You Worked On (2-3 insights)
Put this early - it's the substance. Topics and projects from event content.
What dominated different periods. This gives context to everything else.
Your Year's Journey (2-3 insights)
How the year evolved. Phases, transitions, shifts.
Natural time references, not quarters.
Your People (2-4 insights)
Tell the story of their key relationships. Don't list stats.
Bad: "[Person A]: 446 meetings, 118 1:1s, 141 hours. [Person B]: 286 meetings, 193 hours."
Good: "[Person A] became your closest collaborator - you met almost every day. [Person B] arrived in spring and became your anchor for the complex stuff."
Include relationship moments:
- When they started ("[Person] appeared in March and never left")
- When they ended ("Your weekly [person] sync ended in September")
- How they evolved ("[Person] went from occasional to essential by summer")
Your Rhythm (2-3 insights)
Recurring commitments, rituals, patterns.
Weekly anchors, team ceremonies.
Wow Moments (1-3 specifics)
The memorable outliers, streaks, extremes.
Only genuinely surprising ones.
Calendar Personality (Optional)
Only if clear archetype emerges.
Tone Guidelines
Do
- Celebratory ("You crushed it")
- Personal (use names, specific dates)
- Playful ("That's a lot of standups")
- Surprising ("Here's something you probably didn't know")
- Warm ("[Person]'s been there since March")
Don't
- Judgmental ("Too many meetings")
- Corporate ("Q3 metrics indicate...")
- Generic ("You attended meetings")
- Dry ("Statistical analysis shows...")
- Forced ("Your personality is...")
Shareability Checklist
Before finalizing, ask:
- Would someone screenshot this specific insight?
- Does it say something about who they are?
- Would they want others to see it?
- Is it specific enough to be interesting?
- Is it surprising or validating (ideally both)?
Anti-Patterns
- Number soup - "286 meetings (193 hours), 248 meetings (25 1:1s), 302 meetings (203 hours)..." This is a spreadsheet, not a story. One number per insight, max.
- Listing without narrative - "Top 5 collaborators: ..." is boring
- Celebrating declined meetings or acceptance rates - "You said yes 97%..." is not an insight. Just exclude non-accepted meetings from analysis entirely.
- Counting non-accepted meetings - Only userAccepted=true meetings actually happened. If userAccepted=false, the user either declined or never responded. Don't count them.
- Quarterly corporate framing - No "Q1", "Q2", use natural time
- Ignoring solo time - Blocks matter, not just meetings
- Too many insights - 3 great beats 10 mediocre
- Forced archetypes - Skip if doesn't fit
- Raw data dumps - Every number needs context
- Counting all-day events as work - All-day events (isAllDay=true) are status markers ("Firefighter", "OOO"), not countable work
- Analyzing time before user started - If early months have few/no accepted meetings, the user probably hadn't joined yet. Start the story from their first real accepted meetings.