- Where
- Content / Sentiment
- App route
/content- Answers
- What tone and shape do tracked sends have?
- Needs
- One analysed newsletter, no minimum sample
- Updates
- After each analysis, up to 5 minutes behind
What this screen is
Inside the app this page is titled Content Analysis and carries two tabs. Sentiment analysis opens first. It splits the tracked newsletters into Positive, Neutral and Negative, shows how heavily subject lines lean on emoji, and gives the average word, link, CTA and image count. Below those cards sits a table with one row per newsletter and every content feature on it.
Pattern analysis re-cuts the same measurements into structure. It reports typical length and how consistent that length is, labels the writing style and shows how often CTAs and images appear. Two cards at the bottom list the section names that recur and a set of recommendations built from fixed rules.
Almost nothing on this screen is an AI judgement. Tone comes from matching the copy against a set vocabulary of positive and negative words. Readability uses the standard Flesch formulas, and links, images, buttons and paragraphs are counted from the email itself. Only the section names under "Most common content sections" come from AI. The same newsletter always scores the same way, so any figure here can be defended to whoever questions it. The scoring is also blunt. It has no idea what "not great" means.
No opens or clicks appear here for any brand. Newsletrix receives competitor newsletters as a subscriber, so the screen describes what a sender wrote and how the email was put together, never how readers responded.
Every average covers all newsletters ever collected for the selected brands and workspace, and no date range exists anywhere on the screen. Read the figures as a portrait of a sender's habits. They will not show you a trend.
Open it when
- You want to know whether the newsletters you track sound upbeat, neutral or negative.
- You are deciding how long a send should be and how many links, images and CTAs to include.
- You want to check whether competitors put emoji in subject lines, and how many.
- You are auditing reading level: plain English sits around Flesch 60 to 70 and grade 7 to 8.
- You need one row per newsletter with every content feature, to scan or export (the 50 most recent rows).
Screen anatomy
The screenshot comes from an earlier release; the map after it shows the current Sentiment analysis tab, and the Pattern analysis tab is mapped further down.
Content Analysis
Comprehensive content insights including sentiment analysis, pattern recognition, and structural metrics.
| Subject line features | Body/HTML features | Sentiment analysis | Readability metrics | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Brand | Subject | Chars | Words | Emojis | Upper% | Words | Imgs | Links | CTAs | CTA Pos% | Subj Sent | Body Sent | Body+ | Body- | Flesch RE | FK Grade |
| Everlane | Last chance: 30% off the denim shop | 38 | 7 | 1 | 8.1% | 604 | 11 | 24 | 5 | 12.4% | 0.50 | 0.14 | 4 | 3 | 58.2 | 9.4 |
| Allbirds | New in: the Tree Runner, reimagined | 35 | 6 | - | 5.7% | 412 | 8 | 15 | 3 | 9.8% | 0.00 | -0.20 | 2 | 3 | 64.1 | 7.8 |
| Glossier | Our best-selling balm is back | 29 | 5 | - | 3.4% | 288 | 6 | 12 | 2 | 15.2% | 0.00 | 0.33 | 4 | 2 | 71.5 | 6.2 |
- Emoji usage Doughnut of subject-line emoji counts in four buckets: None, Low (1-2), Medium (3-5), High (5+). Slices are newsletters, not emoji.
- Sentiment distribution One bar per class, height equal to the number of newsletters. Colours follow palette order, not meaning.
- Average metrics Avg word count, Avg links count, Avg CTA count and Avg image count. Links and CTAs carry a best-practice band and a range chip.
- Key insights Up to five sentences assembled from the three cards beside it. No AI involved.
- Content features Groups toggles (Subject line, Body / HTML, Sentiment, Readability), Export CSV, and a table with pinned Brand and Subject columns plus 34 feature columns in four colour-coded groups. Newest first, 50 rows.
- Legend Explains the four groups, the check and cross marks and the chip colours.
- Page header "Content Analysis", its subtitle, and a help icon opening the "Master Your Content Strategy" explainer.
- Brand filter A single multi-select, "All brands" by default. "Clear all" appears once a brand is picked.
- Tab strip "Sentiment analysis" and "Pattern analysis". Switching between them is instant.
Every panel explained
Emoji usage
How many newsletters fall into each subject-line emoji-count bucket.
How it is calculated. Emoji are counted in the subject line only, with consecutive emoji counting as one. 0 lands in None, 1 to 2 in Low (1-2), 3 to 5 in Medium (3-5), the rest in High (5+). Because Medium claims 5, High in practice starts at 6.
How to read it. A large None slice means a plain-text market; a visible Medium or High slice means emoji styling worth testing against.
Three consecutive fire emoji count as 1. Many emoji added since 2016 are not counted at all, while Chinese, Japanese and Korean characters are, which inflates non-Latin subject lines.
Sentiment distribution
The number of newsletters classed Positive, Neutral or Negative by body tone.
How it is calculated. The body copy is checked word by word against a set vocabulary of positive and negative terms, whatever the capitalisation. Polarity is positive hits minus negative hits, divided by their sum, from -1.00 to 1.00. Above 0.1 is Positive, below -0.1 Negative, everything between Neutral. No matched word means exactly 0.0, so Neutral.
How to read it. The tallest bar is the dominant tone. Neutral is usually large because most words appear in neither vocabulary.
It mixes balanced copy with copy the vocabulary did not recognise: "great!" does not match "great", and non-English newsletters nearly always land here. Bar colours are palette order (Positive violet, Neutral sky blue, Negative green), so read the labels.
Average metrics
Avg word count, Avg links count, Avg CTA count and Avg image count.
How it is calculated. Plain averages, one decimal, over every collected newsletter for the current brands and workspace. Links are the links in the email that point somewhere, images are the images it embeds, CTAs are links whose text contains an action phrase (shop, buy, sign up, learn more, add to cart and similar). Under links and CTAs a line reads "You value · Best practice low to high" with an in range, below range or above range chip. The bands are fixed at 7 to 15 links (ideal 10) and 1 to 3 CTAs (ideal 2), are best-practice rather than industry-specific, and appear only when the value is above 0.
How to read it. More than 3 CTAs points to decision fatigue; more than 15 links dilutes click intent. Treat the figures as the market norm, then decide whether to match it or stand apart.
No date range and no minimum sample: a brand's redesign last month is diluted by everything it sent before.
Key insights
Up to five sentences restating the cards beside it.
How it is calculated. Every line restates a figure already on the screen, in a fixed order, starting with the dominant sentiment class and its share and running through average words and links (rounded), average CTA count, number of emoji buckets present and average image count. A line whose value is exactly zero is skipped.
How to read it. Handy to paste into a note. "N different emoji types" counts buckets, so it never exceeds 4.
Content features table
One row per analysed newsletter. Brand and Subject stay pinned while 34 feature columns scroll in four groups. Subject Line Features holds 9 columns, Body/HTML Features 12, Sentiment Analysis 6 and Readability Metrics 7. Hover a short header for its full name.
How it is calculated. Rows are the 50 newest newsletters matching the brand filter, by the date in the email header. Values are measured from the subject line, the body copy and the email's markup. Ratios show as one-decimal percentages, polarity as a two-decimal chip (green above 0.1, indigo below -0.1, grey otherwise) and yes/no columns as a green check or grey cross. A zero in a count column prints as "-", except Btns, which prints "0"; a zero decimal prints as "0.00" or "0.0%".
How to read it. Switch off the groups you do not need, then scan the Sentiment block for chips far from 0.00. Export CSV downloads exactly what you see.
With no brand filter set, the charts above can cover more newsletters than the table lists, so a count on a chart will not always match the rows below it. Clicking a row opens nothing, and there is no page 2.
| Section name | Frequency | Avg position |
|---|---|---|
| footer | 222 | 4.3 |
| hero | 214 | 0.1 |
| product_grid | 171 | 1.6 |
| category_cta | 133 | 2.4 |
| blog_teaser | 88 | 2.9 |
Pattern KPI cards
Avg sections, Avg content length (words), CTA position (%) and Avg images.
How it is calculated. Avg sections is the mean number of sections found in a newsletter. Avg content length is the mean word count, rounded to a whole number. CTA position is where the first link of any kind starts, as a percentage of the email's total HTML length. Avg images is the mean image count.
How to read it. A CTA position of 18% means the first link sits about one fifth of the way into the HTML. Avg content length is the size to write towards.
Avg sections, Avg content length and the Structural patterns figures weight each newsletter by its number of sections, so the length here can differ from Avg word count on the first tab. CTA position counts HTML characters rather than visible text, and is not limited to action-worded links.
Structural patterns
Average paragraphs and Content consistency.
How it is calculated. Average paragraphs is the mean paragraph count, drawn at 5% of the bar per paragraph, so 20 or more fills it. Content consistency is 1 minus (standard deviation of word count divided by average word count), as a percentage.
How to read it. Near 100% means every send is about the same length; low means short teasers mixed with long digests.
A perfectly uniform set (deviation 0) is treated as missing and shows 0% instead of 100%. If lengths vary by more than the average itself, the value goes negative.
Writing style analysis
Overall tone, Formality level with a Grade level, Readability score and Lexical diversity.
How it is calculated. Overall tone applies the 0.1 and -0.1 thresholds to the average body polarity, as a green, red or grey badge with the two-decimal average. Formality labels the average Flesch-Kincaid grade: below 8 Casual, below 12 Moderate, otherwise Formal. Readability score is the average Flesch reading ease, 0 to 100. Lexical diversity is unique words divided by total words, 0.00 to 1.00. Bands: grade 7 to 8 (ideal 7, lower is better), reading ease 60 to 70 (ideal 65).
How to read it. Aim for reading ease 60 to 70 and grade 7 to 8 for plain English. Diversity nearer 1 means little repetition, though long newsletters mechanically score lower.
The badge sign is always "+", so a negative average shows as "+-0.12". With no data the card says Neutral and Formal.
Call-to-Action patterns
Avg CTAs, Avg links and CTA presence rate.
How it is calculated. Averages over the newsletters in view; presence rate is the share of them with at least one CTA link. A CTA is any link whose text contains an action phrase, whatever the capitalisation, and each link counts at most once.
How to read it. Below 100% presence means some sends are pure editorial. A wide gap between Avg links and Avg CTAs means most links are navigation or footer, not asks.
A phrase counts wherever it sits inside the link text, so "Views from the road" counts because of "view". Image-only buttons with no link text are never counted.
Visual elements usage
Images/Newsletter, Image/Text ratio and Visual content presence.
How it is calculated. Mean image count; mean of images divided by images plus paragraphs; share of newsletters with at least one image. Paragraphs are the paragraph blocks in the email, or its blank-line blocks when a template is built without them.
How to read it. A ratio near 1.00 is a catalogue-style, image-led email; near 0.00 is a text newsletter. Tracking pixels and spacer images count, so template-heavy senders look more visual than they are.
Most common content sections
The ten most frequent section names across the filtered newsletters, with Frequency and Avg position.
How it is calculated. Names are taken from the analysis of each newsletter (typically hero, product_grid, category_cta, blog_teaser, footer). Frequency counts appearances; Avg position is the mean slot counted from 0, so 0.0 means always first. Hidden when no sections exist.
How to read it. This is the market's default layout. Avg position tells you which block usually opens an email and which one sits near the end.
Names are free text, so "footer" and "Footer" can appear as separate rows, and a block listed twice for one newsletter counts twice.
Actionable recommendations
Up to five pairs of observation and suggestion, covering structure, CTAs, visuals and style.
How it is calculated. Each line is chosen by a fixed rule from the figures above. With sections: "Most newsletters use an average of N main sections". With a length: "Keep content around X-Y words", a 100-word band around the average. With a CTA position below 40%: "N% of top performers place the primary CTA in the first third of content", otherwise "Primary CTAs typically appear around N% through content". With images and paragraphs: a visual break every M paragraphs, M being paragraphs divided by images. A style line always closes the list.
How to read it. Observations about your tracked set with a generic nudge attached.
The card says "AI-generated suggestions", but the wording is fixed and only the numbers change. "Top performers" is the plain average, with no performance weighting behind it, and the style line still appears with no data at all ("neutral tone with formal formality").
Metric definitions
| Metric | What it means | How it is produced | Scale |
|---|---|---|---|
| Subj Sent, Body Sent | Emotional lean of the subject or body | (positive hits - negative hits) / (positive + negative hits) over the words of the text; 0.00 when nothing matches | -1.00 to 1.00 |
| Sentiment class | Positive, Neutral or Negative | Above 0.1 Positive, below -0.1 Negative, otherwise Neutral; same rule for the bars, the chips and Overall tone | 3 classes |
| Subj+, Subj-, Body+, Body- | Vocabulary hits | Count of words found in the positive or negative vocabulary | Whole number |
| Overall tone | Tone of the filtered set | Sentiment class of the average body polarity; no data gives Neutral | Positive / Neutral / Negative |
| Formality level | Formality of the filtered set | Average grade below 8 Casual, below 12 Moderate, otherwise Formal; no data gives Formal | Casual / Moderate / Formal |
| Chars, Words (subject) | Subject length | Characters; words separated by spaces | Whole number |
| Emojis | Emoji runs in the subject | Consecutive emoji count once; some post-2016 emoji are missed and some CJK characters are counted | Whole number |
| !, ? | Punctuation in the subject | Count of each character | Whole number |
| Upper% | How shouty the subject is | Uppercase letters / all letters × 100 | 0.0% to 100.0% |
| Num, %, $ | Subject flags | Contains a digit; a percent sign; a currency symbol (dollar, euro, pound, yen, rupee) | Check or cross |
| Words, Chars (body) | Body length | Words and characters of the body copy | Whole number |
| Paragraphs | Paragraph blocks | Paragraph blocks in the email; blank-line blocks in a template built without them | Whole number |
| Imgs, Links, Btns | Elements counted in the HTML | Embedded images; links that carry a destination; buttons | Whole number |
| Img/Txt | Visual density | Images / (images + paragraphs); 0.00 when both are 0 | 0.00 to 1.00 |
| CTAs | Action links | Links whose text contains an action phrase, at most 1 per link | Whole number |
| CTA Pos% | First link position | Start of the first link as a share of the HTML length; 0.0 with no links | 0.0% to 100.0% |
| Anchor | Link text length | Mean characters of link text, empty links excluded | 0.0 and up |
| UTM | Tracking present | At least one link carries UTM tracking parameters | Check or cross |
| Promo% | Promotional vocabulary | Promotional words found / body words × 100 | 0.0% to 100.0% |
| Sents | Sentences | The body copy broken at . ! and ? | Whole number |
| Avg Sent | Words per sentence | Words / sentences | 0.0 and up |
| Syllables | Word complexity | Estimated per word, then averaged; pure numbers count 0 | 0.0 and up |
| Flesch RE | Reading ease | 206.835 - 1.015 × (words / sentences) - 84.6 × (syllables / words), clamped to 0 to 100 | 0 to 100; band 60 to 70 |
| FK Grade | US school grade | 0.39 × (words / sentences) + 11.8 × (syllables / words) - 15.59, floored at 0 | 0 and up; band 7 to 8 |
| Diversity | Vocabulary variety | Unique words / total words | 0.00 to 1.00 |
| Content consistency | Length uniformity | (1 - deviation / average word count) × 100; a deviation of exactly 0 shows 0% | Usually 0% to 100%, can go negative |
| CTA presence rate | Share with a CTA | Newsletters with at least one CTA link / all × 100 | 0.0% to 100.0% |
| Visual content presence | Share with an image | Newsletters with at least one image / all × 100 | 0.0% to 100.0% |
| Avg position (sections) | Typical slot of a section | Mean position counted from 0, so 0.0 is first | 0.0 and up |
Filters and controls
| Control | What it does | Default |
|---|---|---|
| Brand | Multi-select that restricts both tabs and the table to the chosen brands. Lists only brands with at least one analysed newsletter, largest first. | All brands |
| Clear all | Empties the brand selection. Appears in the filter card only while a brand is selected. | Hidden |
| Tabs | "Sentiment analysis" and "Pattern analysis". Switching between them is instant. | Sentiment analysis |
| Groups | Subject line, Body / HTML, Sentiment, Readability. Each shows or hides a whole column block (9, 12, 6 and 7 columns). Toggling one changes nothing but the view, and hidden groups are left out of the CSV. | All on |
| Export CSV | Downloads the table exactly as it stands on screen, at most 50 rows, visible groups only, on-screen formatting and two header rows. | - |
| Help icon | Opens the "Master Your Content Strategy" explainer for the screen. | - |
| Workspace (sidebar) | Scopes every number to tracking addresses in the selected workspace. Switching reloads the page. | Current workspace |
There is no date range, no sort control, no search box, no detail view on row click and no way past the first 50 rows. Brand and workspace are the whole set.
How to use it
- Set the scope Pick the workspace in the sidebar, then leave All brands for the market norm or select one brand to profile a sender.
- Read the tone Check Sentiment distribution, then Overall tone on the Pattern tab. If Neutral dominates, look at a few rows: Body+ and Body- both at "-" means the vocabulary matched nothing.
- Check the bands Avg links count and Avg CTA count carry the 7 to 15 and 1 to 3 bands. "Above range" on the market average means the norm is crowded, an opening for a cleaner send.
- Switch to Pattern analysis Note Avg content length, Content consistency, CTA presence rate and Visual content presence, then read Most common content sections for the default block order.
- Drill into the table Toggle off unneeded groups, scan Sentiment chips far from 0.00 and Flesch RE outside 60 to 70, then Export CSV.
- Write down a target One line per brief, giving the word band, link count, CTA count, image count and a reading ease target, all taken from the screen rather than from habit.
Profile brands one at a time. Because the averages have no date range, a single brand filter turns the screen into a style sheet for that sender, with the table showing the sends behind the numbers.
Limits and caveats
- Tone comes from vocabulary matching, whole words only and blind to capitalisation. No negation ("not great" scores positive), no sarcasm, no intensity, no language detection; attached punctuation blocks a match.
- Averages have no date range and no minimum sample size, so one unusual newsletter can move them.
- Counts come from the markup rather than from what a reader sees. Tracking pixels count as images, a template built from tables has its blank lines counted as paragraphs, and image-only buttons are never CTAs.
- Readability estimates syllables and breaks sentences at . ! and ?, so URLs, prices and abbreviations distort both Flesch numbers; reading ease is held to 0 to 100 and grade level never drops below 0.
- The Pattern tab's structural figures weight each newsletter by its number of sections.
- With nothing matching the filter the two charts draw as empty frames rather than saying so, the four averages read 0, Key insights shows its empty state and the table says no content features were found. The Pattern tab still draws, with 0 in every tile, tone Neutral, formality Formal and a single recommendation.
- The table shows the 50 newest rows. With no brand filter set the charts can cover more newsletters than the table lists.
- A newly analysed newsletter can take up to 5 minutes to reach the charts, and the table catches up a little sooner. Leave the tab untouched for a few minutes and it stops refreshing until you come back to it. Chart colours follow palette order, and the legend's "red" for negative is indigo in practice.
FAQ
Why are so many of my newsletters classed as Neutral?
Polarity matches whole words, whatever their capitalisation, against a set vocabulary of positive and negative terms. If none appears, polarity is exactly 0.0 and the newsletter lands in Neutral. Punctuation stays attached, so "great!" does not match "great", and non-English newsletters almost always score Neutral.
Is the sentiment score produced by AI?
No. Sentiment, readability, word counts, emoji counts, links, images and CTAs all come from fixed rules applied to the email, so the same newsletter always gets the same score. The only AI-derived data on this screen is the section names in Most common content sections; the Actionable recommendations card is labelled AI-generated, but its wording is fixed and only the numbers change.
The Emoji usage chart shows None, Low (1-2), Medium (3-5) and High (5+) instead of emoji. Is that a bug?
No. Those are buckets of how many emoji the subject line contains, and each slice is the number of newsletters in that bucket. Consecutive emoji count as one run, so three fire emoji count as 1, and High (5+) in practice starts at 6 because the Medium bucket claims 5.
What does a CTA position of 22% actually mean?
It is the average position of the first link in the email as a share of the total HTML length. It is not restricted to action-worded links, and because it counts HTML characters rather than visible text, heavy header or preheader markup pushes it up.
Why does the Export CSV file have fewer rows and columns than I expected?
The export takes the table exactly as you see it. You get at most the 50 most recent newsletters shown here, only the column groups toggled on, and on-screen formatting (percent signs, check and cross marks) instead of raw values. It writes both header rows, the group banner and then the short labels. There is no page 2, so rows beyond 50 cannot be reached or exported here.
Why is Content consistency 0% or negative?
Consistency is 1 minus (standard deviation divided by average) of body word count, as a percentage. If lengths vary by more than their own average, say 100-word teasers mixed with 3,000-word digests, the ratio exceeds 1 and the value goes negative. If every newsletter is exactly the same length the deviation is 0, which the screen treats as missing data and shows as 0% instead of 100%.