What's inside the newsletter from Farmfoods
- Sender
- noreply@farmfoods.co.uk
- Sector
- Food
- Emails read
- 65 campaigns, 2 transactional
- Period
- August 2026
The main finding
The recipient's address is written into the message on all 2 transactional messages.
It is the first of 8 points to fix. The highest score is technical (91/100), the lowest experience (38/100), better than 7% of the 566 brands measured.
One email when a criterion changes state: the Pro version, in early access.
Share
Share this report
August 2026 · calculated on 24 October
8 points to fix
Each line leads to the criterion in its family, with the excerpt that establishes it and how to fix it.
-
Priority
The recipient's address is written into the message
Criterion “No recipient identifier in the message”
Compliance
on all 2 transactional messages
−10 pts
out of 10 in
Compliance
href adresse:clair · href adresse:url
Links carry no email address, contact identifier or automatic login token in their parameters.
-
To review
The message does not declare its adaptation to screens
Criterion “The message declares its adaptation to screens”
Experience
measured on 2 transactional messages
−15 pts
out of 15 in
Experience
The HTML has a <meta name="viewport" content="width=device-width"> tag and @media rules that adapt the width and the columns below 600 px; the fixed 600 px width only holds for desktop clients.
-
To review
The published DMARC policy keeps out no impersonation
Criterion “DMARC policy that helps keep out some impersonation”
Deliverability
on all 2 transactional messages
−15 pts
out of 15 in
Deliverability
A _dmarc.<domain> TXT record declares the policy: v=DMARC1; p=quarantine; rua=mailto:… at the very least, p=reject once the sending sources are aligned.
- To review No plain-text version accompanies the message Criterion “The message can be rendered outside HTML” Experience measured on 2 transactional messages −15 pts out of 15 in Experience
- To review The message puts obstacles in the way of assistive technology Criterion “The message stays readable with assistive technology” Experience measured on 2 transactional messages −13.3 pts out of 20 in Experience
- To review The message does not say who is writing or under which rules Criterion “The message says who is writing and under which rules” Compliance measured on 2 transactional messages −13.3 pts out of 20 in Compliance
- To review Preheader missing, too short or too long Criterion “The message makes sense without its images, from the inbox on” Experience measured on 2 transactional messages −12.5 pts out of 25 in Experience
- Secondary The HTML shows formal deviations Criterion “Well-formed HTML” Technical measured on 2 transactional messages −7.5 pts out of 15 in Technical
13 criteria met, including « No open-tracking pixel » and « DKIM signature validated ». They are listed in their family, below.
Every send, at the time it arrived
One dot per message received by our subscription since August. Tap a dot to open it; the arrows move from one send to the next.
Technical reading of the send of Aug. 9, 2026 →
- campaigns in 11 weeks
- 65
- about 5.9 a week, from August to October
- every day of the week
- 7 days a week
- 6 to 11 campaigns depending on the day
- favourite sending hour
- 14 h
- 42% of campaigns arrive between 14:00 and 15:00
- last send received
- 24 Oct.
- « ❗5 Day Specials❗29W Lenor Midsummer Fabric Conditioner £1.29… »
Campaign 1 of 65
Tuesday 11 Aug., 14:49
🐾❗All Things Pet At Farmfoods❗🐾
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 2 of 65
Wednesday 12 Aug., 15:20
❗3 Pack Dettol Soap 49p❗10pk Mini Twisters £1.99 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 3 of 65
Friday 14 Aug., 15:27
❗340g Princes Corned Beef £2.49❗Huge One Pizzas £2.99, and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 4 of 65
Monday 17 Aug., 15:39
❗20pk Walkers Box £3.49❗1kg Seara Breaded Tenders £4.99 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 5 of 65
Wednesday 19 Aug., 15:47
❗4pk Cadbury Fudge 79p❗10pk Quaker 99p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 6 of 65
Friday 21 Aug., 15:53
❗100pk Finish Quantum £7.99❗Farmfoods Ready Meals 99p and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 7 of 65
Saturday 22 Aug., 13:37
❗5 Day Special❗200g Willow Butter 39p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 8 of 65
Sunday 23 Aug., 13:39
❗5 Day Special❗4pk Kellogg's Oaties 49p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 9 of 65
Monday 24 Aug., 15:28
❗50ml Dove Roll On 49p❗450g Diced Steak £4.99 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 10 of 65
Tuesday 25 Aug., 16:44
❗415g Heinz Beanz 49p❗34w Persil Heaven Scent Pods £4.99 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 11 of 65
Wednesday 26 Aug., 16:13
❗24pk Fruit Shoot £4.99❗900g Farmfoods Cheese Range £4.99 each and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 12 of 65
Friday 28 Aug., 15:43
❗400pk PG Tips £5.99❗800g Monkfish and 700g Seabass Fillets 2 for £15 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 13 of 65
Saturday 29 Aug., 14:45
❗5 Day Special 60pk Huggies Wipes 49p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 14 of 65
Sunday 30 Aug., 14:37
❗5 Day Special 397g Carnation Condensed Milk 49p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 15 of 65
Tuesday 1 Sept., 14:55
❗300g Aunt Bessie's Chocolate Toffee Sponge 59p❗160g Osprey Tuna 39p ❗All things 99p!❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 16 of 65
Wednesday 2 Sept., 14:48
❗24pk Lucozade Orange/ Original £6.99❗2pk Pukka Pie Range 3 for £5 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 17 of 65
Friday 4 Sept., 15:25
❗50ml Mi-Stylo Fragrances £1.99❗100g Toblerone 99p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 18 of 65
Saturday 5 Sept., 13:35
❗250ml UFIT Protein Shakes 49p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 19 of 65
Sunday 6 Sept., 13:36
❗390g Branston Macaroni Cheese 49p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 20 of 65
Monday 7 Sept., 15:19
❗8pk Tango Blue Raspberry Triangles 99p❗410g Riverdene Tinned Apricots 19p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 21 of 65
Wednesday 9 Sept., 14:38
❗400g Birds Eye Vegetable Pasta 49p❗75ml Dove Rich Moisture Cream 49p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 22 of 65
Thursday 10 Sept., 14:43
❗🐾All Things Pet at Farmfoods🐾❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 23 of 65
Friday 11 Sept., 14:35
❗2pk Birds Eye Mexican Fish 49p❗75ml John Frieda Hairy Spray Intense 99p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 24 of 65
Saturday 12 Sept., 13:36
❗320ml Fairy Washing Up Liquid 69p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 25 of 65
Sunday 13 Sept., 13:51
❗3pk Vaseline Soap 59p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 26 of 65
Monday 14 Sept., 15:49
❗8pk Kellogg's Chocolate Orange Pop Tarts ❗90g Aero Blocks 99p and much more in store
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 27 of 65
Tuesday 15 Sept., 14:54
❗5 Day Special❗300g Nescafe Original/Decaf £4.99 Each❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 28 of 65
Wednesday 16 Sept., 16:11
❗40g Goodwins Pepper Grinder 29p ❗375g Weetos Stars 99p ❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 29 of 65
Thursday 17 Sept., 14:55
❗5 Day Special❗270ml Elmlea Double 99p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 30 of 65
Friday 18 Sept., 14:56
❗750ml Fabulosa Range 49p ❗200g Tomato Paste 49p❗ and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 31 of 65
Saturday 19 Sept., 14:36
❗5 Day Special❗72w Bold Spring Awakening Powder £7.99❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 32 of 65
Sunday 20 Sept., 14:37
❗5 Day Special❗13 Bernard Matthews Mini Kievs 99p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 33 of 65
Monday 21 Sept., 14:56
❗80pk Pedigree Pouch £14.99❗400g Farmfoods Cheddar £4.99 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 34 of 65
Tuesday 22 Sept., 13:55
❗5 Day Special❗285g Batchelors Button/Sliced Mushrooms 39p Each❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 35 of 65
Wednesday 23 Sept., 14:38
❗6pk Princes Tuna £3.99❗1kg Seara Chicken Tenders £3.99 and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 36 of 65
Friday 25 Sept., 14:55
❗400g Batchelors Potatoes 39p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 37 of 65
Saturday 26 Sept., 13:37
❗5 Day Special❗85W Bold & Fairy Non Bio Pods £13.99 Each❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 38 of 65
Sunday 27 Sept., 13:38
❗5 Day Special❗80pk Whiskas £14.99 Each❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 39 of 65
Monday 28 Sept., 14:39
❗16pk Shredded Wheat 99p❗390g Nestle Shreddies 99p❗ and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 40 of 65
Tuesday 29 Sept., 15:01
❗155g Lenor Scent Boosters £1.99❗10pk Gillette £18.99❗500ml Bath Soak 69p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 41 of 65
Wednesday 30 Sept., 15:16
❗5 Day Special❗190g Nescafe Gold Blend/Alta Rica £4.99 Each❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 42 of 65
Thursday 1 Oct., 14:43
❗80pk Whiskas £14.99❗80pk Pedigree Pouch £19.99 ❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 43 of 65
Friday 2 Oct., 15:14
❗18pk Pepsi Max Tropical £3.99 ❗1.2kg Cooked Chicken Range £6.99 each and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 44 of 65
Saturday 3 Oct., 13:37
❗5 Day Special❗8pk Wikinger Hot Dogs 99p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 45 of 65
Sunday 4 Oct., 13:36
❗5 Day Special❗160 PG Tips £2.49❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 46 of 65
Monday 5 Oct., 14:47
❗400g Ambrosia Custard/Rice Pudding 49p each❗450ml Domestos Power Foam 99p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 47 of 65
Tuesday 6 Oct., 14:17
❗5 Day Specials❗500g Anna Passata 29p❗125g Pears Soap 59p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 48 of 65
Wednesday 7 Oct., 14:55
❗10pk Peperami Minis 99p❗250ml Carex Handwash 49p❗and much more in store!
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 49 of 65
Thursday 8 Oct., 14:29
❗5 Day Specials❗24pk Pepsi Max £6.99❗75ml Colgate 59p❗
- Type
- Marketing campaign
- Score
- 58 / 100
- Pixel
- Present, detected by its size
Campaign 50 of 65
Friday 9 Oct., 13:33
❗4pk Snickers 99p❗100ml Vaseline 49p❗and much more in store!
- Type
- Marketing campaign
- Score
- 59 / 100
- Pixel
- Present, detected by its size
Campaign 51 of 65
Saturday 10 Oct., 13:19
❗5 Day Specials❗10kg Badshah Rice £8.99❗1.5kg Homepride Flour 49p❗
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
● Change observed on this send, confirmed by the following ones.
Campaign 52 of 65
Sunday 11 Oct., 13:14
❗5 Day Specials❗325g Askey's Treat Sauces 49p❗300ml Safaa Air Freshener £1.99❗
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 53 of 65
Monday 12 Oct., 14:34
❗1kg Kellogg's Crunchy Nut £3.99❗1kg Kellogg's Corn Flakes £2.99❗200g PEK Luncheon Meat 49p❗and much more in store!
- Type
- Marketing campaign
- Score
- 59 / 100
- Pixel
- Present, detected by its size
Campaign 54 of 65
Tuesday 13 Oct., 13:59
❗5 Day Specials❗140g Nescafe Azera £3.99❗300g Rodina Carrots 19p❗10pk Peperami Mix £1.99❗
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 55 of 65
Wednesday 14 Oct., 13:59
❗190g McMAC's Cheesy Macaroni 49p❗330ml Fuel Breakfast Drink Range 49p each❗and much more in store!
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 56 of 65
Thursday 15 Oct., 14:01
❗5 Day Specials❗19W Bold Pods £2.99❗90g Pot Noodle Range 59p each❗
- Type
- Marketing campaign
- Score
- 65 / 100
- Pixel
- Present, detected by its size
Campaign 57 of 65
Friday 16 Oct., 15:27
❗30pk Nescafe Pods £4.99 each❗180g Cadbury Dairy Milk £1.49❗and much more in store!
- Type
- Marketing campaign
- Score
- 59 / 100
- Pixel
- Present, detected by its size
Campaign 58 of 65
Saturday 17 Oct., 12:09
❗24pk Rubicon Sparkling Mango £6.99❗250g Bird's Original Custard 99p❗14pk Cadbury Flake 99 £1.99❗
- Type
- Marketing campaign
- Score
- 65 / 100
- Pixel
- Present, detected by its size
Campaign 59 of 65
Sunday 18 Oct., 12:10
❗160g Chicken Pringles £1 ❗1kg Seara Nuggets £1.99❗and much more in store!
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 60 of 65
Monday 19 Oct., 14:49
❗125W Daz Powder £9.99❗300g Cooked Chicken Range £1.99 each and much more in store!
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 61 of 65
Tuesday 20 Oct., 14:45
❗5 Day Specials❗12kg Winalot £12.99❗12pk Pedigree Cans £9.99 each❗20L Catsan £8.99❗and much more in store!
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 62 of 65
Wednesday 21 Oct., 14:42
❗6pk Milky Bar 99p❗114g Cadbury Chocolate Fingers 99p❗and much more in store!
- Type
- Marketing campaign
- Score
- 65 / 100
- Pixel
- Present, detected by its size
Campaign 63 of 65
Thursday 22 Oct., 12:20
❗5 Day Specials❗185g Pringles Original/Sour Cream & Onion £1.25 each❗145g Farmfoods Tuna 49p each❗
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 64 of 65
Friday 23 Oct., 13:45
❗4pk Cadbury Kids Range 79p each❗450ml Dove Bath Range £1.49 each❗and much more in store!
- Type
- Marketing campaign
- Score
- 62 / 100
- Pixel
- Present, detected by its size
Campaign 65 of 65
Saturday 24 Oct., 12:07
❗5 Day Specials❗29W Lenor Midsummer Fabric Conditioner £1.29❗32W Bold Midsummer Gel £2.99❗500ml Moss & Adams Handwash 99p each❗
- Type
- Marketing campaign
- Score
- analysis in progress
- Pixel
- —
Sending day
- Mon.
- Tue.
- Wed.
- Thu.
- Fri.
- Sat.
- Sun.
Arrival time
1 change observed since August
Each campaign is compared with the previous one, criterion by criterion.
The detail of this change, criterion by criterion, is reserved for the Pro version.
confirmed by the next campaign · the per-send score goes from 58 to 62
Criteria in detail
The 24 criteria + 1 bonus
Compliance
These checks cover what the send imposes on the recipient and what it leaves them: measurement of their behaviour, ways to leave, tracking of their objection.
The calculation · 77 pts out of 100
3 met · 1 partly met · 1 not met · 1 not applicable
Weight of each criterion in the score.
No open-tracking pixel Met No open-tracking pixel on 2 transactional messages 35 pts
35 points out of 35 — met on 2 of 2 transactional messages concerned.
Met when no tracking pixel is present. A single pixel is enough for the criterion not to be met on an email.
- CNIL 14/04/2026 · LIL art. 82
- PM-PRIV-001
- The detection rule
Unsubscribing is possible and announced Not applicable not applicable
This measurement did not apply to any of the emails received. It drops out of the denominator: it is never counted as a failure.
Met when the message announces unsubscribing in its headers, through a page rather than an email to write, and in its body. The detail says which of the two is missing. Not applicable to a transactional email.
- RFC 2369
- PM-PRIV-002
The recipient keeps control over tracking Met The recipient keeps control over tracking on a single transactional message 20 pts
20 points out of 20 — share of observations met across 1 transactional message.
Two measures: does the unsubscribe link go through a tracker, and does a separate path lead to a preference center or to refusing tracking? Neither establishes that a refusal succeeds — checking would require following the link, which would record a click on the sending platform's side. They describe the control left to the recipient, not the result they would get.
What was measured — 1 met out of 1
- Untracked unsubscribe link on a single transactional message Met
- A separate path leads to a preference center or to refusing tracking Not applicable
- CNIL 14/04/2026 · Postmetry
- PM-PRIV-003
The message says who is writing and under which rules Partly met The message does not say under which rules the data is processed — 1 of 3 measures met 6.7/20 pts
6.7 points out of 20 — share of observations met across 2 transactional messages.
How to fix it
The footer of the message names the sender (company name, postal address) and links to its privacy policy with a direct link to the website, not through a tracking domain. These details go once into the base template and then appear in every send.
Nothing to lose: these lines already exist on the website; they only need to be carried over.
A commercial email must make it possible to identify the advertiser (CPCE, article L. 34-5), and the recipient must be able to know who processes their data. This indicator groups what a message can show of it.
What was measured — 1 met out of 3
- The message names its sender on 2 transactional messages Met
- No address allows a reply to the message on the 2 transactional messages concerned Not met
- No link leads to the privacy policy on the 2 transactional messages concerned Not met
- CPCE L. 34-5 · directive 2000/31 art. 6 · CAN-SPAM
- PM-PRIV-004
An untracked path leads to the site Met An untracked path leads to the site on 2 transactional messages 15 pts
15 points out of 15 — met on 2 of 2 transactional messages concerned.
Met when at least one link in the message leads to the brand's site without going through a click counter.
- Postmetry
- PM-PRIV-005
No recipient identifier in the message Not met The recipient's address is written into the message on the 2 transactional messages concerned 0/10 pts
0 points out of 10 — met on 0 of 2 transactional messages concerned.
Base64-encoded or hashed, it is still the address: a hash is recovered by hashing a list of known addresses. Placed in a URL or a header, it travels wherever the message goes — redirect server logs, analytics tools, browser history.
The excerpt that establishes it
href adresse:clair · href adresse:url
How to fix it
Links carry no email address, contact identifier or automatic login token in their parameters. In the email platform, these come from merge variables inserted into URLs (?email={{contact.email}}, ?uid=…): remove them from the template's links, and turn off login-by-link if it is offered.
The platform still identifies the recipient for tracked clicks; what changes is that the address no longer travels in clear to the website, its analytics and its partners.
Met when the recipient's address appears — neither in clear, nor encoded, nor hashed — in no URL and no proprietary header. Addressing headers do not count: they carry it by design.
- Postmetry · RGPD art. 4 en repère
- PM-PRIV-020
Deliverability
These checks read the authentication verdict set by our server when the message arrived. This verdict is dated by construction: we never recalculate it, which would query today's DNS rather than the DNS of the day the email was sent.
The calculation · 55 pts out of 70, scaled to 100
4 met · 1 not met · 1 not applicable
Weight of each criterion in the score.
DKIM signature validated Met Valid DKIM signature on 2 transactional messages 20 pts
20 points out of 20 — met on 2 of 2 transactional messages concerned.
Met when our receiving server validated the DKIM signature of the email.
- RFC 6376 · RFC 8601
- PM-DELIV-001
- RFC 6376 — DomainKeys Identified Mail (DKIM) Signatures
- RFC 8601 — Message Header Field for Indicating Message Authentication Status
DMARC alignment validated Met DMARC alignment verified on 2 transactional messages 20 pts
20 points out of 20 — met on 2 of 2 transactional messages concerned.
Met when the domain shown in the sender matches the one that authenticated the message.
- RFC 9989
- PM-DELIV-002
- RFC 9989 — Domain-Based Message Authentication, Reporting, and Conformance (DMARC)
DMARC policy that helps keep out some impersonation Not met DMARC policy in observation only on the 2 transactional messages concerned 0/15 pts
0 points out of 15 — met on 0 of 2 transactional messages concerned.
How to fix it
A _dmarc.<domain> TXT record declares the policy: v=DMARC1; p=quarantine; rua=mailto:… at the very least, p=reject once the sending sources are aligned. The move happens in stages (p=none with reports, then quarantine, then reject) over a few weeks, reading the reports to find the tools that send on behalf of the domain.
A none policy prevents no spoofing of the domain; quarantine or reject closes the door and meets the Gmail and Yahoo requirements for bulk senders.
Met when the published policy is “reject” or “quarantine”. A “none” policy asks nothing of mail providers: it is published with no effect on messages that impersonate the domain.
- RFC 9989 §4.7
- PM-DELIV-003
- RFC 9989 — section 4.7, “p” tag
No SPF failure Met No SPF failure on 2 transactional messages 10 pts
10 points out of 10 — met on 2 of 2 transactional messages concerned.
Met when SPF does not fail. An SPF “none” alongside a valid DKIM and DMARC is a common and legitimate configuration: it is not penalized.
- RFC 7208
- PM-DELIV-004
- RFC 7208 — Sender Policy Framework (SPF) for Authorizing Use of Domains in Email
One-click unsubscribe, as defined by RFC 8058 Not applicable not applicable
This measurement did not apply to any of the emails received. It drops out of the denominator: it is never counted as a failure.
Met when the “List-Unsubscribe” header carries an https address and “List-Unsubscribe-Post” is exactly “List-Unsubscribe=One-Click”. This is what Gmail and Yahoo require of bulk senders: the mailbox's button then acts without opening a page. Not applicable to a transactional email.
- RFC 8058 · Gmail et Yahoo
- PM-DELIV-005
A DKIM signature that covers what matters Met The DKIM signature covers what matters in the message on 2 transactional messages 5 pts
5 points out of 5 — share of observations met across 2 transactional messages.
What the signature covers, not only that it passes: an algorithm accepted by RFC 8301, the whole body signed, the From, Subject, Date and List-Unsubscribe headers signed, a signature not expired on receipt. Not applicable without a DKIM signature.
What was measured — 3 met out of 3
- Accepted signing algorithm on 2 transactional messages Met
- Whole body signed on 2 transactional messages Met
- Essential headers signed on 2 transactional messages Met
- Signature valid on receipt Not applicable
- RFC 6376 · RFC 8301
- PM-DELIV-006
Technical
These checks cover what email clients actually do with the message: truncation, style blocks removed, resources never loaded. Each threshold states where it comes from: the documented behaviour of an email client, a specification, or our own method.
The calculation · 77 pts out of 85, scaled to 100
5 met · 1 partly met
Weight of each criterion in the score.
HTML under Gmail's clipping threshold Met HTML under Gmail's clipping threshold on 2 transactional messages 25 pts
25 points out of 25 — met on 2 of 2 transactional messages concerned.
Met when the HTML part stays under 102 KB. Beyond that, Gmail cuts off the end of the message — and the end is where the unsubscribe link and the notices are.
- Gmail
- PM-TECH-001
A shallow template Met Shallow template on 2 transactional messages 20 pts
20 points out of 20 — share of observations met across 2 transactional messages.
Met when layout tables are nested no more than 6 levels deep. Beyond that, the Word engine shared by desktop Outlook and the diverging clients each render the template their own way.
What was measured — 1 met out of 1
- Lightly nested layout tables on 2 transactional messages Met
- Postmetry
- PM-TECH-002
Well-formed HTML Partly met The HTML shows formal deviations — 2 of 4 measures met 7.5/15 pts
7.5 points out of 15 — share of observations met across 2 transactional messages.
How to fix it
Form errors (unclosed tags, duplicated attributes, invalid table/div nesting) come from blocks pasted between editors or from hand edits in the code. Run the HTML through a validator before sending, and fix it at the source in the template rather than in each campaign.
Malformed HTML renders differently from one email client to another, and it is the most common cause of a broken display in Outlook or on mobile.
A doctype, a character set declared in the document, balanced tags and unique identifiers. Each client repairs incomplete markup its own way, which is what makes rendering unpredictable. End tags that HTML makes optional do not count.
What was measured — 2 met out of 4
- No doctype declared on the 2 transactional messages concerned Not met
- No character set declared in the HTML on the 2 transactional messages concerned Not met
- Balanced tags on 2 transactional messages Met
- Unique identifiers on 2 transactional messages Met
- WHATWG
- PM-TECH-030
Every link leads somewhere Met Every link leads somewhere on 2 transactional messages 10 pts
10 points out of 10 — met on 2 of 2 transactional messages concerned.
Met when no link is empty, reduced to “#” or written as “javascript:”. Such a link leads nowhere, and most clients neutralise it. Not applicable if the message contains no link.
- Postmetry
- PM-TECH-031
No remote stylesheet Met No remote stylesheet on 2 transactional messages 10 pts
10 points out of 10 — met on 2 of 2 transactional messages concerned.
Met when the message calls no external stylesheet, through “link” or “@import”. Several clients never load them. A font stylesheet does not count: without it, the text falls back to another font.
- caniemail
- PM-TECH-020
- <link> in an email — support by client
The message follows the shape of an email Met The message follows the shape of an email on 2 transactional messages 5 pts
5 points out of 5 — share of observations met across 2 transactional messages.
Lines of 998 bytes at most, readable Message-ID and Date, a character set announced on every text part, a transfer encoding consistent with the content (RFC 5322, RFC 2045). Most servers tolerate these deviations, each in its own way.
What was measured — 5 met out of 5
- Lines of 998 bytes at most on 2 transactional messages Met
- Well-formed Message-ID on 2 transactional messages Met
- Readable date on 2 transactional messages Met
- Character set announced on every text part on 2 transactional messages Met
- Consistent transfer encoding on 2 transactional messages Met
- RFC 5322 · RFC 2045
- PM-TECH-010
Experience
Four questions about what becomes of the message once received: does it stay understandable, can the recipient still act, can a client render it, can a screen display it. Automatic detection only covers what is declared in the message.
The calculation · 34 pts out of 90, scaled to 100
1 met · 2 partly met · 2 not met · 1 not applicable · 1 bonus
Weight of each criterion in the score.
The message makes sense without its images, from the inbox on Partly met Preheader missing, too short or too long on the 2 transactional messages concerned (1 of 2 measures met) 12.5/25 pts
12.5 points out of 25 — share of observations met across 2 transactional messages.
How to fix it
A preheader of 40 to 130 characters, in real text, follows the subject in the inbox; every meaningful image has an alt attribute that says what it shows; the main message is in text, not inside an image. In the editor, the preheader is a dedicated field, and the alt is filled in image by image.
Half of readers see the message without images when it first opens. An alt and a preheader take a minute per campaign.
Met when the message keeps at least 200 readable characters with images blocked, and a preheader of 40 to 130 characters announces it in the message list. Without a preheader, the inbox shows the first text of the body instead — often “View in browser”.
What was measured — 1 met out of 2
- At least 200 characters remain readable with images blocked on 2 transactional messages Met
- Preheader missing, too short or too long on the 2 transactional messages concerned Not met
- Postmetry
- PM-EXP-001
The message can be rendered outside HTML Not met No plain-text version accompanies the message on the 2 transactional messages concerned (0 of 1 measures met) 0/15 pts
0 points out of 15 — share of observations met across 2 transactional messages.
How to fix it
The text version (text/plain) comes with the HTML and carries the content and the links, not just a sentence saying “open this message in your browser”. Email platforms generate it from the HTML when the option is on (“auto-generate plain text”).
This is the version that watches, screen readers and some business clients read; spam filters also use it, comparing the two versions.
Met when a text version comes with the email and carries the essentials: at least 60% of its text and 80% of its links. A client that does not display HTML falls back on it; reduced to “view the web version”, it renders nothing.
What was measured — 0 met out of 1
- No plain-text version accompanies the message on the 2 transactional messages concerned Not met
- The text version carries the message's text Not applicable
- The text version carries the message's links Not applicable
- Postmetry
- PM-EXP-002
All links stay visible with images blocked Met All links stay visible with images blocked on 2 transactional messages 15 pts
15 points out of 15 — met on 2 of 2 transactional messages concerned.
Met when no link is carried by a single image without alternative text: such a link leaves nothing on screen. Not applicable if the message contains no links.
- Postmetry
- PM-EXP-003
Tap targets large enough Not applicable not applicable
This measurement did not apply to any of the emails received. It drops out of the denominator: it is never counted as a failure.
Met when no sized tap target falls below 24 px a side (WCAG 2.2, criterion 2.5.8). Only targets with a declared dimension are measured; the criterion's exceptions — a target within a line of text, sufficient spacing — are not. Not applicable if the message declares no dimensions.
- WCAG 2.2 — 2.5.8
- PM-EXP-004
- WCAG 2.2 — Target Size (Minimum), success criterion 2.5.8, level AA
The message stays readable with assistive technology Partly met The message puts obstacles in the way of assistive technology — 1 of 3 measures met 6.7/20 pts
6.7 points out of 20 — share of observations met across 2 transactional messages.
How to fix it
Four fixes, all in the template: declare the message language on the <html> tag (lang="en" for an email in English), describe each content image in its alt attribute, mark layout tables with role="presentation", and write links that say where they lead rather than “click here”.
The criterion detail shows which ones are missing from your emails; the others are already met.
A decorative image — divider, spacer — keeps an empty alt="": that is what keeps it silent, not an oversight.
Declared language, described content images, layout tables marked as such, link texts that say where they lead: what a screen reader needs to render the message. The detail says which of these measures is missing.
What was measured — 1 met out of 3
- Message language not declared on the 2 transactional messages concerned Not met
- Every content image is described on 2 transactional messages Met
- Layout tables marked as such Not applicable
- Some links do not say where they lead on the 2 transactional messages concerned Not met
The message declares its adaptation to screens Not met The message does not declare its adaptation to screens — none of the 2 measures is met 0/15 pts
0 points out of 15 — share of observations met across 2 transactional messages.
How to fix it
The HTML has a <meta name="viewport" content="width=device-width"> tag and @media rules that adapt the width and the columns below 600 px; the fixed 600 px width only holds for desktop clients. Modern editors produce them; an old or hand-made template often lacks them.
Without these rules, the message shows at 600 px on a 390 px screen: zooming required, unreadable text, links too small.
Met when the message declares its viewport and its adaptation to screen width. Without them, it displays on a phone at its original width, and is read by zooming and scrolling sideways.
What was measured — 0 met out of 2
- Viewport not declared on the 2 transactional messages concerned Not met
- No adaptation to screen width declared on the 2 transactional messages concerned Not met
- W3C
- PM-EXP-026
- CSS Device Adaptation — the viewport tag
- Media Queries Level 4
Dark mode declared Bonus point not earned The message does not declare its support for dark mode on the 2 transactional messages concerned +0 pts
0 points out of 5 — met on 0 of 2 transactional messages concerned.
Earned when the message declares color-scheme or a prefers-color-scheme rule. No standard requires it — clients that force dark mode invert the colors themselves — but declaring it leaves control to the template rather than to the mail client.
- caniemail
- PM-EXP-027
Sector comparison
Food — 43 brands with at least one campaign analyzed. The shares below are counted on them, never on the catalog.
Reading notes
How to read this page
-
A criterion that is not observable or not applicable leaves the calculation. It stays listed, never counted as zero: its weight leaves the denominator rather than weighing as a failure.
-
Each line describes an observable finding, with the excerpt that establishes it. No legal qualification is ever attached to it.
-
The measurements come from deterministic analyzers: the same message always gives the same result, and a disputed finding can be redone identically from the archive.
-
Every share is published on an observed basis, and names it: “26 of 30 brands analyzed.” A brand with no email received enters no denominator.
-
The deliverability score is borrowed: its verdict comes from the server that received the message. All the other families come from our own analyzers.
Does this analysis speak to you?
Let's go through it together, in 20 minutes.
We go over the 8 points with you, the evidence for each and the order in which to fix them. By video call, no commitment.
Or take it with you: the PDF report