Klaviyo & EmailApril 20, 2025

The Year-in-Review Email: How to Turn Data Into Your Best Performing Campaign

How to build a year-in-review email campaign in Klaviyo that drives engagement, reactivates dormant subscribers, and generates revenue — with templates, subject lines, and the exact data points to include.

Mark Cijo

Mark Cijo

Founder, GOSH Digital

The Year-in-Review Email: How to Turn Data Into Your Best Performing Campaign

Every December, Spotify drops Wrapped, and the entire internet loses its mind. People share their listening stats on every social media platform. The brand gets millions of dollars in free impressions. And Spotify's engagement numbers spike for weeks.

You can do the exact same thing for your eCommerce brand. Not at the same scale, obviously. But the same psychology applies: people love seeing personalized data about themselves. They love feeling like a brand actually knows them. And they love sharing things that make them look interesting.

The year-in-review email is one of the highest-performing campaigns you can send. And almost nobody in eCommerce does it. Which means the bar is on the floor. Let me show you how to pick it up.

Why This Campaign Works So Well

There are three psychological levers at play here.

The mirror effect. People are endlessly fascinated by themselves. Tell someone "here is what you bought this year, here is how much you spent, here is your favorite category" and they will read every word. Compare that to a generic "20% off everything" email that says nothing about the individual. Which one gets read?

Reciprocity. When a brand takes the time to compile personalized data for you, it creates a subtle feeling of obligation. "They put this together for me. That is kind of cool." This makes people more likely to engage, click, and buy.

Social proof (self-generated). When someone sees that they ordered from you 8 times this year, that is a powerful confirmation that they made good choices. It reinforces the relationship. They are essentially providing their own testimonial to themselves.

The Data Points That Matter

You do not need to show people every piece of data you have. You need to show them the data that makes them feel something. Here is what works:

Tier 1: Must Include

Total orders placed. Simple and powerful. "You placed 11 orders with us this year." That number validates the relationship.

Total amount spent. Be careful with this one. For luxury or premium brands, showing a high spend number can feel aspirational ("I have good taste"). For budget brands, it might feel accusatory ("I spent HOW MUCH?"). Know your audience. If in doubt, skip this or frame it positively: "You invested $847 in your skincare this year."

First order date. "You have been with us since March 2024." This triggers the endowment effect — they have a history with you. Leaving feels like losing something.

Most purchased product or category. "Your go-to product: The Classic Blend." This makes people feel seen and understood.

Tier 2: Nice to Have

Number of loyalty points earned (if applicable). And how close they are to a reward. Nothing drives action like "You are 50 points away from a free product."

Products they viewed but never bought. Subtle, but effective. "Something caught your eye this year..." with a link to their most-viewed product. This turns a nostalgia email into a revenue-generating one.

Their ranking among your customers. "You are in our top 5% of customers this year." People love feeling exclusive. This only works if you segment it properly — do not tell someone they are in your top 50%. That is not special.

A fun stat. Get creative. "If we stacked all the products you ordered, they would be 3 feet tall." "Your coffee orders this year contained enough caffeine to fuel a cross-country road trip." This is what makes the email shareable.

Tier 3: Only If Your Data Supports It

Environmental impact. "Your purchases supported 12 trees planted this year." Only include this if you actually have a sustainability program.

Community stats. "You left 4 product reviews that helped 237 other customers." This reinforces community behavior and encourages more reviews.

How to Build This in Klaviyo

Here is the practical part. Klaviyo makes this possible, but it requires some planning.

Step 1: Pull Your Data (Start in November)

You need to export and compile customer-level data. In Klaviyo, you can pull:

  • Total number of Placed Order events per profile (use metric filters)
  • Total revenue per profile (sum of Placed Order values)
  • First Placed Order date
  • Most frequent product purchased (this requires a custom query or export)

For the "most purchased product" stat, you will likely need to export your order data from Shopify and do some processing. A simple spreadsheet pivot table will get you there. Group by customer email, count by product, and take the top result.

Step 2: Create Custom Properties

Once you have the data, upload it back into Klaviyo as custom profile properties:

  • yr_review_total_orders (number)
  • yr_review_total_spent (number)
  • yr_review_first_order_date (date)
  • yr_review_top_product (text)
  • yr_review_top_category (text)
  • yr_review_customer_rank (text, e.g., "Top 5%")

Upload these via CSV or use Klaviyo's API if you have developer support.

Step 3: Design the Email

The layout should feel special. This is not a standard promotional email. It should feel like an event. Think:

  • Full-width design (not your standard template)
  • Bold typography for the numbers
  • Your brand colors used generously
  • A personal greeting using the first name
  • Each data point gets its own "card" or section

Subject line options:

  • "Your 2025 Year in Review"
  • "2025 wrapped: Here is your year with [Brand]"
  • "You had quite a year, [First Name]"
  • "Your [Brand] highlights from 2025"
  • "The numbers are in, [First Name]"

Preview text: "See your personal stats from the past year."

Step 4: Use Dynamic Content Blocks

In Klaviyo, use template variables to pull in the custom properties:

In your email template, reference properties like yr_review_total_orders and yr_review_top_product to dynamically populate each customer's data.

Important: Set fallback values for every dynamic field. If a property is empty (because a customer only placed one order and you could not calculate a "top product"), the email should still look good. Use conditional blocks in Klaviyo to show or hide sections based on whether the data exists.

Step 5: Add a Revenue Driver

The year-in-review email should not just be a feel-good message. It should drive revenue. But subtly.

Option A: "Start 2026 strong" CTA. At the bottom of the email, include a section like "Ready for another great year? Here is 15% off your first order of 2026." This turns engagement into action.

Option B: Product recommendation based on their data. "Based on your favorites this year, we think you will love..." and show 2-3 products they have not purchased yet. This is a soft cross-sell that feels personalized, not pushy.

Option C: Loyalty program push. "You earned 450 points this year. Redeem them now before they expire." If you have a loyalty program, this is the perfect moment to remind people.

The Campaign Calendar

Mid-November: Start pulling and compiling data. The earlier you start, the less stressful December becomes.

Early December (Dec 1-5): Upload custom properties to Klaviyo. Build the email template. Test with internal team members to make sure dynamic content is rendering correctly.

December 26-30: Send the campaign. Not before Christmas (people are busy and your email will get buried). Not in January (the moment has passed). The sweet spot is the last week of December, when people are reflective and scrolling their phones.

Segmentation: Send to anyone who placed at least 2 orders in the past year. One-order customers do not have enough data to make the email interesting, and showing them "You placed 1 order and spent $34" is more depressing than engaging.

For one-order customers, send a different version: "We met in 2025. Here is to a great 2026." Include a discount and a product recommendation. Shorter, simpler, still personal.

Real Results from Year-in-Review Campaigns

I want to share some benchmarks from brands we have helped with this campaign, without naming names.

A DTC skincare brand (60K subscriber list):

  • Open rate: 52% (vs. their average campaign open rate of 28%)
  • Click rate: 11.2% (vs. average 3.8%)
  • Revenue: $38,000 from a single send (including the 15% off CTA)
  • Unsubscribe rate: 0.1% (lowest of any campaign that year)

A specialty food brand (25K subscriber list):

  • Open rate: 47%
  • Click rate: 8.9%
  • Revenue: $12,400
  • Social shares: 340+ (they included a "share your stats" button linking to a pre-filled tweet)

A pet supplies brand (40K subscriber list):

  • Open rate: 61% (pet owners love seeing how much they spoil their pets)
  • Click rate: 14.3%
  • Revenue: $27,800
  • The fun stat they used: "You ordered enough treats to keep your pup happy for 847 days"

The common thread: These numbers are 2-3x better than a typical promotional campaign. And the unsubscribe rates are near zero because people genuinely enjoy receiving this email.

Mistakes to Avoid

Do not make it all about you. "We had a great year! We grew 200%! We launched 15 products!" Nobody cares. Make it about the customer. Your brand metrics can go in a separate email or a blog post.

Do not overwhelm with data. Pick 4-6 data points maximum. More than that, and the email becomes a spreadsheet. Each stat should have enough visual space to breathe.

Do not send it to your entire list. People who have never purchased from you should not get a year-in-review email. That is just confusing. Segment to purchasers only.

Do not forget mobile. The big, bold numbers that look great on desktop need to scale down gracefully. Test on mobile first, then desktop. Most of your opens will be on phones.

Do not skip the CTA. A beautiful, engaging email that does not ask for anything is a missed opportunity. The CTA does not need to be aggressive. But it needs to be there.

The Simpler Version (If You Are Short on Time)

If compiling all that custom data sounds overwhelming for this year, here is the simplified version:

  1. Segment your list by number of orders (2+, 5+, 10+)
  2. Send a different email to each segment with static (not dynamic) content
  3. For the 10+ orders segment: "You are one of our most loyal customers this year. Thank you. Here is an exclusive 20% off to start the new year."
  4. For the 5+ segment: "You had a great year with us. Here is 15% off to keep it going."
  5. For the 2+ segment: "Thanks for shopping with us in 2025. We appreciate you. Here is 10% off your next order."

This version does not have the Spotify Wrapped magic, but it is still personalized, still segmented, and still outperforms a generic end-of-year sale email.

Start Planning Now

If you are reading this and it is not yet November, you are in great shape. You have time to set up the data pipeline, design the template, and test everything before the holiday chaos hits.

If it is already December, you can still pull this off — just go with the simpler version and plan the full dynamic version for next year.

Either way, this campaign should be on your calendar every single year. It is high-engagement, low-unsubscribe, revenue-generating, and brand-building. There is no downside.

If you want help setting up the data pipeline in Klaviyo, designing the template, or building the dynamic content blocks, book a call with our team. We have built these campaigns for multiple brands and we know exactly where the gotchas are.

Mark Cijo

Written by Mark Cijo

Founder of GOSH Digital. Klaviyo Gold Partner. Helping eCommerce brands grow revenue through data-driven marketing.

Book a free strategy call →

Want results like these for your brand?

Book a free call. We'll look at your data and show you what's possible.

Pick a Time

15 minutes. No pitch deck. Just your data and our honest take.