What's inside the newsletter from Bouchara
- Sender
- no-reply@bouchara.com
- Sending platform
- Amazon SES
- Sector
- Home & decor
- Emails read
- 4 campaigns, 1 transactional
- Period
- October 2026
The main finding
Layout tables nested beyond the threshold measured on 1 transactional message.
It is the first of 9 points to fix. The highest score is compliance (83/100), the lowest experience (28/100), better than 1% of the 566 brands measured.
One email when a criterion changes state: the Pro version, in early access.
Share
Share this report
October 2026 · calculated on 24 October
9 points to fix
Each line leads to the criterion in its family, with the excerpt that establishes it and how to fix it.
-
Priority
Layout tables nested beyond the threshold
Criterion “A shallow template”
Technical
measured on 1 transactional message
−20 pts
out of 20 in
Technical
Flatten the template: one content block per table, placed directly in the main column, with no wrapper table around each section.
-
To review
The message puts obstacles in the way of assistive technology
Criterion “The message stays readable with assistive technology”
Experience
measured on 1 transactional message
−15 pts
out of 20 in
Experience
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”.
-
To review
The message does not declare its adaptation to screens
Criterion “The message declares its adaptation to screens”
Experience
measured on 1 transactional message
−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 Some links become invisible when images are blocked Criterion “All links stay visible with images blocked” Experience on 1 transactional message −15 pts out of 15 in Experience
- To review The published DMARC policy keeps out no impersonation Criterion “DMARC policy that helps keep out some impersonation” Deliverability on 1 transactional message −15 pts out of 15 in Deliverability
- To review No plain-text version accompanies the message Criterion “The message can be rendered outside HTML” Experience measured on 1 transactional message −15 pts out of 15 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 1 transactional message −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 1 transactional message −12.5 pts out of 25 in Experience
- To review A remote stylesheet is called Criterion “No remote stylesheet” Technical on 1 transactional message −10 pts out of 10 in Technical
12 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 October. Tap a dot to open it; the arrows move from one send to the next.
Technical reading of the send of Oct. 7, 2026 →
- campaigns in 2 weeks
- 4
- about 2 a week, in October
- favourite sending day
- Tuesday
- 2 of the 4 campaigns
- favourite sending hour
- 16 h
- 100% of campaigns arrive between 16:00 and 17:00
- last send received
- 24 Oct.
- « Prix Mini / Qualité Maxi : C'est moins chère, mais c'est d… »
Campaign 1 of 4
Tuesday 13 Oct., 16:31
Votre coup de cœur se cache sûrement ici !
- Type
- Marketing campaign
- Score
- 64 / 100
- Pixel
- Present, detected by its size
Campaign 2 of 4
Saturday 17 Oct., 16:30
Dernier Week-End : Coup de Coeur Bouchara !
- Type
- Marketing campaign
- Score
- 64 / 100
- Pixel
- Present, detected by the form of its address
Campaign 3 of 4
Tuesday 20 Oct., 16:31
Les Prix Mini commencent aujourd’hui
- Type
- Marketing campaign
- Score
- 64 / 100
- Pixel
- Present, detected by the form of its address
Campaign 4 of 4
Saturday 24 Oct., 16:30
Prix Mini / Qualité Maxi : C'est moins chère, mais c'est de la qualité !
- Type
- Marketing campaign
- Score
- analysis in progress
- Pixel
- —
Sending day
- Mon.
- Tue.
- Wed.
- Thu.
- Fri.
- Sat.
- Sun.
Arrival time
No change observed since October
Each campaign is compared with the previous one, criterion by criterion.
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 · 66 pts out of 80, scaled to 100
3 met · 1 partly met · 1 not observable · 1 not applicable
Weight of each criterion in the score.
No open-tracking pixel Met No open-tracking pixel on a single transactional message 35 pts
35 points out of 35 — met on 1 of 1 transactional message 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 Not observable The recipient keeps control over tracking — no emails concerned outside the calculation
This measurement did not apply to any of the emails received. It drops out of the denominator: it is never counted as a failure.
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 — 0 met out of 0
- Untracked unsubscribe link — no emails concerned Not observable
- 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 1 transactional message.
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 a single transactional message Met
- No address allows a reply to the message on the only transactional message concerned Not met
- No link leads to the privacy policy on the only transactional message 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 a single transactional message 15 pts
15 points out of 15 — met on 1 of 1 transactional message 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 Met No recipient identifier in the message on a single transactional message 10 pts
10 points out of 10 — met on 1 of 1 transactional message concerned.
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 a single transactional message 20 pts
20 points out of 20 — met on 1 of 1 transactional message 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 a single transactional message 20 pts
20 points out of 20 — met on 1 of 1 transactional message 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 only transactional message concerned 0/15 pts
0 points out of 15 — met on 0 of 1 transactional message 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 a single transactional message 10 pts
10 points out of 10 — met on 1 of 1 transactional message 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 a single transactional message 5 pts
5 points out of 5 — share of observations met across 1 transactional message.
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 a single transactional message Met
- Whole body signed on a single transactional message Met
- Essential headers signed on a single transactional message 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 · 55 pts out of 85, scaled to 100
4 met · 2 not met
Weight of each criterion in the score.
HTML under Gmail's clipping threshold Met HTML under Gmail's clipping threshold on a single transactional message 25 pts
25 points out of 25 — met on 1 of 1 transactional message 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 Not met Layout tables nested beyond the threshold on the only transactional message concerned (0 of 1 measures met) 0/20 pts
0 points out of 20 — share of observations met across 1 transactional message.
How to fix it
Flatten the template: one content block per table, placed directly in the main column, with no wrapper table around each section.
In a block-based editor, nesting usually comes from a section placed inside another, or a column inside a column. It is fixed once, in the template, not campaign by campaign.
The technical reading of the email gives the measured nesting and its threshold: it tells you when the fix has taken effect.
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 — 0 met out of 1
- Layout tables nested beyond the threshold on the only transactional message concerned Not met
- Postmetry
- PM-TECH-002
Well-formed HTML Met Well-formed HTML on a single transactional message 15 pts
15 points out of 15 — share of observations met across 1 transactional message.
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 — 4 met out of 4
- Doctype declared on a single transactional message Met
- Character set declared in the HTML on a single transactional message Met
- Balanced tags on a single transactional message Met
- Unique identifiers on a single transactional message Met
- WHATWG
- PM-TECH-030
Every link leads somewhere Met Every link leads somewhere on a single transactional message 10 pts
10 points out of 10 — met on 1 of 1 transactional message 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 Not met Remote stylesheet declared on the only transactional message concerned 0/10 pts
0 points out of 10 — met on 0 of 1 transactional message concerned.
How to fix it
CSS rules go inside the message, in a <style> block or inline on the elements; no <link rel="stylesheet"> and no @import pointing to a server. Remote fonts are not counted here: most clients ignore them, but they break nothing.
Gmail, Outlook and most clients do not load a remote stylesheet: the message shows without its styles for most readers.
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 a single transactional message 5 pts
5 points out of 5 — share of observations met across 1 transactional message.
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 a single transactional message Met
- Well-formed Message-ID on a single transactional message Met
- Readable date on a single transactional message Met
- Character set announced on every text part on a single transactional message Met
- Consistent transfer encoding on a single transactional message 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 · 28 pts out of 100
1 met · 2 partly met · 3 not met · 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 only transactional message concerned (1 of 2 measures met) 12.5/25 pts
12.5 points out of 25 — share of observations met across 1 transactional message.
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 a single transactional message Met
- Preheader missing, too short or too long on the only transactional message 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 only transactional message concerned (0 of 1 measures met) 0/15 pts
0 points out of 15 — share of observations met across 1 transactional message.
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 only transactional message 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 Not met Some links become invisible with images blocked on the only transactional message concerned 0/15 pts
0 points out of 15 — met on 0 of 1 transactional message concerned.
How to fix it
Every important action (main button, unsubscribe) exists as text or as an HTML button, not only as a clickable image. For an image button, an alt that names the action and a background colour on the cell keep the area visible even without the image.
With images blocked, an image button becomes an empty rectangle: the reader does not know where to click.
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 Met Tap targets of sufficient size on a single transactional message 10 pts
10 points out of 10 — met on 1 of 1 transactional message concerned.
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 4 measures met 5/20 pts
5 points out of 20 — share of observations met across 1 transactional message.
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 4
- Message language not declared on the only transactional message concerned Not met
- Some content images are not described on the only transactional message concerned Not met
- Layout tables announced as data tables on the only transactional message concerned Not met
- Every link says where it leads on a single transactional message 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 1 transactional message.
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 only transactional message concerned Not met
- No adaptation to screen width declared on the only transactional message 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 only transactional message concerned +0 pts
0 points out of 5 — met on 0 of 1 transactional message 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
Home & decor — 85 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 9 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