Email Engagement Score: How to Build One in Klaviyo
The request comes up in every audit: "we would like an engagement score, a number from 0 to 100 per contact, to know who we keep mailing and who we cut". The idea is sound. The problem starts when you look for the button.
None of the vendor documentation we opened (Klaviyo, Braze, Customer.io) describes a native feature with that exact name. An email engagement score is a home-built construct. You assemble it from segments, event properties and documented metrics. The good news: all the building blocks exist, and they are published. The bad news: if you start from raw opens, you are scoring noise.
Here is the method we apply when a DTC brand asks us to set up this scoring, with the thresholds that trace back to an official source and those that remain deliberate editorial choices.
What an email engagement score is really for
Three uses, and only one justifies the modelling effort.
Use 1: deciding who receives what. This is the real subject. A score lets you choose between sending to the whole list and sending to the profiles that respond. Gmail explicitly recommends considering unsubscribing recipients who do not open or read your messages (Email sender guidelines). Yahoo points the same way: sending to users who do not read degrades your deliverability metrics and your reputation (Sender Best Practices). A score turns that instruction into something you can operate.
Use 2: managing commercial pressure. Send more often to hot profiles, less often to lukewarm ones. Careful here: the frequency grids per engagement tier that circulate (daily on the 30-day segment, weekly on the 180-day segment) appear on no Klaviyo Help Center page we opened. If you use them, own them as an internal choice, not as a vendor recommendation.
Use 3: reporting. The least useful. An average score that rises proves nothing if it rises because you deleted the inactive profiles.
If you are first looking for an overall measurement framework rather than a per-contact score, start with the 12 lifecycle metrics to track. The score comes afterwards.
The underlying problem: the open is no longer clean data
Nothing can be built without dealing with this point first.
Klaviyo states it plainly in its engagement report documentation: Apple Mail Privacy Protection changed the way opens are reported, by preloading the tracking pixel, and open rates are inflated (List and segment engagement report). An Apple Mail profile can therefore show an open without any human having seen the email.
Klaviyo exposes a documented countermeasure: an event property named Apple Privacy Open, which is True or False on every open event (Apple's Mail Privacy Protection). To remove artificial opens from a segment, you add the filter where Apple Privacy Open equals False to the Opened Email condition.
That is the first line of code in your score. Without it, your "open" variable is an "Apple mail client" variable.
Two useful clarifications.
- No open source publishes a numeric correction factor to neutralise this inflation. Do not look for a magic coefficient: filter at the source.
- The click remains the most robust signal, but it is rarer. A score that only weighs clicks under-represents passive readers who buy anyway.
The detail of which metrics remain usable after MPP is covered in our dedicated article: Apple Mail Privacy Protection: which email metrics to track.
The documented building blocks on the Klaviyo side
Klaviyo publishes three segment definitions that serve as the base. They are not called "score", but they provide the thresholds you do not have to invent.
The "engaged" block
The reference engaged segment combines three conditions (How to create an engaged segment):
- the profile can receive email marketing because they subscribed,
- AND (opened at least once in the last 30 days OR clicked at least once in the last 30 days OR subscription date within the last 15 days).
The recent-subscription clause matters: it avoids excluding a new subscriber who has not yet had time to open anything.
Klaviyo also specifies that a brand that sends little should lengthen the window: 60 days rather than 30. That makes sense, since a contact cannot open an email they did not receive.
The "unengaged" block
The unengaged segment Klaviyo recommends sets a volume floor, which is the part most setups forget (How to target unengaged profiles):
- profile can receive email marketing,
- AND at least 5 emails received over all time,
- AND 0 opens in the last 90 days,
- AND 0 clicks in the last 90 days.
Klaviyo indicates lowering the window from 90 to 30 days for brands that send every day or several times a week.
The "never engaged" block
Harder, and very useful for the bottom of the score:
- 5 emails received in the last 180 days,
- AND 0 opens over all time,
- AND 0 clicks over all time,
- AND 0 product views over all time,
- AND 0 orders over all time.
A profile that ticks all five boxes has never done anything with your brand. It is no longer a candidate for scoring, it is a candidate for suppression. The cut-off protocol is detailed in Klaviyo sunset flow: cutting dead contacts.
The point to remember about these three blocks: received volume conditions everything. Without the 5-email floor, you classify as unengaged a contact who simply slipped through your sends. It is the most frequent mistake we correct in audits.
The scoring grid we use
What follows is an editorial choice. No open vendor source validates a standard weighting between open, click, purchase and recency. We own it as a working convention, not as a standard.
| Dimension | Signal | Points |
|---|---|---|
| Recent click | At least 1 click within the reference window | 40 |
| Recent open (filtered) | At least 1 open with Apple Privacy Open = False | 20 |
| Recent purchase | At least 1 order within the reference window | 25 |
| Site activity | Product view within the reference window | 10 |
| Subscription age | Subscribed fewer than 15 days ago | 5 (bonus) |
Three principles behind this distribution.
- The click weighs twice the open. It cannot be preloaded by a privacy proxy.
- The purchase is a dimension of its own. A customer who never opens but orders every two months is not unengaged. They are badly measured.
- The subscription bonus follows Klaviyo's 15-day logic: you do not punish a contact who has not yet had their chance.
The reference window, on the other hand, is not a free choice. Align it with your sending frequency, following the logic Klaviyo documents: 30 days for standard sending, 60 days if you send little.
Where to store the score
In Klaviyo, two options.
- Without code: you do not store a numeric score, you create three to five nested segments (Hot, Warm, Cool, Cold, Dead) from the blocks above. It is less elegant, it covers 90% of needs, and it is maintainable.
- With code: you compute the score in your stack and push it as a custom property through the API. The event-sending mechanics are described in Klaviyo API: sending events from your stack, and the property logic in Klaviyo custom properties: segmentation guide.
Start with the first one. A score pushed by API that drifts out of sync is worth less than a native segment that recomputes itself.
What other platforms do, and what it teaches you
Braze: RFM, but on purchases
Braze offers RFM scoring through its Segment Extensions: each user is scored from 0 to 3 on each of the three dimensions recency, frequency and monetary value, 3 being the best score. The platform produces ten named groups, from Champions to Hibernating.
Two limits to know before trying to replicate this model. The observation window of a Braze RFM segment is capped at 60 days. And above all: this RFM is based on purchase events, not on email engagement. It is not an open and click score. Nor does Braze publish, on the corresponding product page, the numeric thresholds that move a score from 0 to 1, 2 or 3.
The lesson is structural: separate the email engagement score from the customer value score. Two axes, two uses. The RFM method applied to ecommerce is detailed in RFM: segmenting by recency, frequency and monetary value.
Customer.io: the 4-month rule
Customer.io is the most explicit of the three on the engagement window. Its deliverability documentation states that all non-transactional email audiences should be limited to recipients who opened or clicked in the last 4 months, and recommends removing contacts beyond 6 months without interaction (Deliverability best practices).
The same page sets two numeric guardrails: a complaint rate above 0.10% can damage sender reputation at IP and domain level, and the overall bounce rate should stay under 5%, ideally under 2%.
These bounds are useful even if you are on Klaviyo or Brevo: they give an upper window (4 months) and a cut-off window (6 months) published by a vendor, when most figures circulating on the subject come from nowhere.
The normative thresholds that frame your score
An engagement score only makes sense if it keeps you on the right side of mailbox provider rules.
Google. The sender requirements apply above 5,000 messages a day to Gmail accounts, since 1 February 2024. The spam rate reported in Postmaster Tools must stay under 0.3%, with a recommended target under 0.10% (Email sender guidelines).
Yahoo. Same complaint ceiling under 0.3%, plus three instructions: monitor hard and soft bounces as well as inactive recipients, and process unsubscribes within 2 days (Sender Best Practices).
Two honest clarifications, because a lot of false claims circulate.
- Google publishes no numeric engagement threshold. No minimum open rate, no maximum inactivity age. The instruction "consider unsubscribing those who do not open" exists, the associated metric does not. Any threshold you set is your threshold.
- The 5,000 messages a day floor is Google's. The Yahoo Sender Best Practices page defines no volume floor for a bulk sender. Do not transpose it.
The operational detail of these requirements is covered in Gmail and Yahoo sender requirements in 2026 and the monitoring in Gmail Postmaster Tools and Yahoo Sender Hub.
The CNIL point nobody anticipates
Your score rests on opens. Opens rest on a pixel. And the pixel now has a published framework, which matters for any company operating in France.
The CNIL, the French data protection authority, published on 14 April 2026 a recommendation on tracking pixels in emails, based on article 82 of the French Data Protection Act (tracking pixel recommendation).
What the text says, precisely:
- the recognised consent exemption covers only the individual measurement of deliverability for emails tied to a service requested by the recipient, typically transactional emails;
- within that exempted scope, the only data needed in principle is the date of last opening of the email, unless a greater need is documented. Collecting the opening time takes you outside the exemption (CNIL FAQ);
- not asking a user again about their choice for six months is a good practice;
- for addresses collected before the recommendation was published, the only requirement is to clearly inform recipients within three months.
How this recommendation articulates with a marketing engagement score based on opens is not explicitly settled in the published pages: the FAQ deals with the scope of the deliverability exemption, not with the lawfulness of a consented marketing score. Have your case qualified by your DPO rather than relying on a blog interpretation, ours included. Our detailed reading of the text is here: Email tracking pixel: what the CNIL says in 2026.
Practical consequence for the design of the score: the more your model rests on the click and on order events, the less it depends on a signal that is fragile both legally and technically.
Reading your score without mixing up reports
A classic trap in audits. Klaviyo offers a list and segment engagement report, and its definition of open rate is not the one used in campaign reporting: in this report, the open rate is total opens divided by total delivered, whereas campaign reporting uses unique opens (List and segment engagement report).
Two figures, two definitions, and meetings lost wondering why they do not match.
The same report shows averages over the last 30 days and the engagement distribution over the last 52 weeks, with profiles older than 52 weeks not displayed. If your list has a long tail of old contacts, they are outside the chart's scope. Do not conclude they do not exist.
What about Klaviyo's predictive metrics?
A systematic question: why build a score when Klaviyo already computes a Churn Risk Prediction?
Because the predictive metrics (Historic CLV, Predicted CLV, Total CLV, Churn Risk Prediction, Average Time Between Orders, Predicted Gender, Expected Date of Next Order) have strict prerequisites (Predictive analytics):
- at least 500 customers who have placed an order,
- at least 180 days of order history,
- orders within the last 30 days.
Below these thresholds, they do not show. A brand at launch has no access to this layer.
And above all: these metrics are about purchase behaviour, not email engagement. The exact formula behind Predicted CLV and Churn Risk is not published, so you cannot audit what they weigh. They complement your score, they do not replace it. The subject is developed in Klaviyo predictive analytics: CLV, churn risk and next order date.
On Brevo, an engagement status logic exists on the product side but we could not verify its default criteria on an accessible documentation page at the time of writing. Refer to the platform's official documentation before wiring anything to it. For the rest of the setup, see our Brevo agency and Brevo deliverability: 7 essential settings.
Setup checklist
To run through in order, over one or two working sessions.
- Measure your real sending frequency over the last 90 days. It determines your windows (30 or 60 days on the engaged side, 30 or 90 days on the unengaged side).
- Create the engaged segment with the three documented Klaviyo conditions, adding the Apple Privacy Open equals False filter on the open condition.
- Create the unengaged segment with the 5-emails-received floor. Without the floor, the segment lies.
- Create the never-engaged segment (5 emails over 180 days, zero signal of any kind).
- Set your tiers: Hot, Warm, Cool, Cold, Dead. Document each definition in a shared file, with the decision date.
- Wire your sends to them: commercial campaigns to Hot and Warm, reactivation to Cool, sunset to Cold and Dead.
- Monitor complaints in Postmaster Tools, target under 0.10% and ceiling at 0.3%.
- Revise the windows as soon as your sending cadence changes tier.
Point 8 is the one that gets forgotten. A score set on 30 days when you were sending three times a week becomes wrong the day you move to a monthly send.
For the cut-off and reactivation side, the full sequence is described in Winback and sunset flows: the reactivation method. If you want us to wire all of this on your account, it is the daily work of our Klaviyo agency.
FAQ
Is there a native email engagement score in Klaviyo?
No feature with exactly that name is documented on the Klaviyo pages we consulted. Klaviyo does publish engaged, unengaged and never-engaged segment definitions that serve as the base for building your own scoring.
Which engagement window should I use?
Klaviyo sets 30 days for the engaged segment, and recommends 60 days if you send little. For the unengaged segment, the base is 90 days, to be brought down to 30 days for daily or multi-weekly sending. Customer.io, for its part, limits its non-transactional audiences to 4 months of opens or clicks and recommends removal beyond 6 months.
How do I neutralise Apple MPP in an engagement score?
By adding the filter where Apple Privacy Open equals False to the Opened Email condition in your Klaviyo segments. This event property is True or False on every open. No numeric correction factor is published: filtering at the source is the only documented method.
Does Gmail require a minimum open rate?
No. Google's Email sender guidelines publish no numeric engagement threshold. They recommend considering unsubscribing recipients who do not open, and set normative thresholds only on complaints (under 0.3%, target under 0.10%), the 5,000 messages a day trigger volume to Gmail and authentication.
Does a score based on opens raise a CNIL issue?
The CNIL recommendation of 14 April 2026 frames tracking pixels in emails and recognises a consent exemption limited to the individual measurement of deliverability for emails tied to a requested service. Its articulation with a consented marketing score is not explicitly settled in the published pages: have your case qualified by your DPO and favour a score that rests on clicks and purchases.
Want the score wired on your account before the next sending peak? Talk to the Deliver team.
Provenance and verification
Numeric and technical claims compared on 2026-08-29 with the official pages listed in sources, then carried over into this localisation without change. Points the documentation does not settle were left out or explicitly labelled as editorial choices: the point weighting of the scoring grid, the frequency tiers per engagement level, and the application of the CNIL tracking pixel recommendation to a consented marketing score. Klaviyo's product labels (Opened Email, Clicked Email, Placed Order, Apple Privacy Open, Churn Risk Prediction) are kept as the platform names them.
- Sources checked on
- Reviewed by
- Claude (Claude Code session, 18 September 2026) English localisation of the French source reviewed on 29 August 2026. Every segment definition, threshold, prerequisite and date carried over unchanged from the French article and checked against the declared sources. Internal links remapped to their published English counterparts; the scoring grid is presented, as in the French source, as an editorial convention and not as a vendor standard.
- AI assistance
- Yes
- Sources
-
- help.klaviyo.com/hc/en-us/articles/115000200072
- help.klaviyo.com/hc/en-us/articles/360044054732
- help.klaviyo.com/hc/en-us/articles/4416791883163
- help.klaviyo.com/hc/en-us/articles/115005906848
- help.klaviyo.com/hc/en-us/articles/360020919731
- www.braze.com/docs/user_guide/audience/segments/segment_extension/sql_segments/rfm_segments
- www.braze.com/docs/user_guide/audience/segments/segment_extension
- docs.customer.io/journeys/channels/email/deliverability/best-practices
- support.google.com/mail/answer/81126?hl=en
- senders.yahooinc.com/best-practices
- www.cnil.fr/fr/recommandation-pixel-suivi-courriels
- www.cnil.fr/fr/faq-recommandation-pixels-courriers-electroniques
Want to apply this to your stack?
Spend 30 minutes with Charlotte to review your CRM setup, size the opportunity and leave with a practical action plan.
Book a 30-minute call →