Marketing

Using a Model to Score Subject Lines Against a Rubric

Antonio Evans10 min read

A desk with a printed rubric checklist on the left, showing rows for specificity, length, preview match, clarity with checkmarks and a 1 to 5 scale.
Key points

Key points

  1. 1A subject line rubric turns a fuzzy judgment into four numbers, and a model can apply that rubric to hundreds of lines faster than a human team can read them.
  2. 2The rubric needs concrete anchors at each score level, because vague criteria produce scores that drift between runs and cannot be compared.
  3. 3Length is the least reliable criterion alone: mobile clients such as the Gmail app show roughly 37 characters, while desktop Gmail can show 60 to 70, so "too long" depends on the device.
  4. 4Before you trust model scores, rank them against known open rates on historical sends and only act on the rubric when the ranking agrees with reality.

Why score subject lines with a model at all

Subject lines carry a disproportionate share of the outcome. Surveys cited in email marketing roundups put the share of recipients who decide to open based on the subject line alone at 47 percent, which is why teams keep rewriting them in the CMO Club's open rate guide. The problem is throughput: a writer can produce twenty variants in an hour, but nobody can rate a thousand archived subject lines by hand before a planning session.

A model solves the throughput problem and nothing else. It does not know your audience, your offer, or your sender reputation. What it can do is apply a fixed written standard consistently, at scale, and in a format you can sort, filter and argue with. That is the same job a grading rubric does in a classroom: separate criteria, defined levels of achievement, and a score you can defend per NC State's rubric guidance. The teaching literature is blunt that analytic rubrics (one score per criterion) give better feedback than a single holistic score, and the same holds here: four sub-scores tell you why a line is weak.

There is precedent for treating the subject line as a modeling problem. Researchers have built models that predict open rate from subject line structure and content, and they report that the decision to open depends critically on the subject line in a published Expert Systems with Applications study. That work used engineered features and classical machine learning. An instruction-following model with a rubric is a cheaper, more legible version of the same idea, and one you can inspect line by line.

The trap is trusting it before validating it. A rubric model will happily assign 5 out of 5 to a subject line that nobody opens, because it has no access to your send data. The rest of this article is about closing that gap.

Define four criteria with anchors, not adjectives

The single biggest cause of useless scores is a rubric made of adjectives. "Specificity: 1 to 5" produces noise. Each level needs an observable anchor, ideally one that a second person would apply the same way. The NC State guidance makes the same point about performance levels: describe what the work looks like at each level rather than labeling it good or poor.

Here is a working set of four criteria, adapted for subject lines. The length bands come from measured client behavior: the Gmail app shows about 37 characters on an iPhone or Pixel, the Outlook app about 38, and Apple Mail on iPhone about 48, while desktop Gmail shows 60 to 70 according to BuzzStream's client testing. Front-loading the hook inside the first 30 characters is the practical workaround, since that is where most mobile inboxes truncate per Omeda's subject line analysis.

CriterionWhat it measuresScore 1Score 3Score 5
SpecificityDoes the line name a concrete benefit, number, entity or outcome?Pure abstraction ("Some news for you")Names a topic but no outcomeNames a number, timeframe or named result ("Cut churn 12% in 90 days")
LengthFit to the visible preview windowOver 70 characters with the hook at the end50 to 70 characters, hook visible28 to 50 characters, hook inside the first 30
Preview matchDoes the first 40 characters make sense next to the preheader?Repeats the preheader or contradicts itNeutral; preheader adds littleCompletes a thought the preheader advances
ClarityAbsence of vague filler and hedging"Update", "news", "important", "quick note"One vague word or a hedgeConcrete nouns and verbs, no filler

Two notes on the design. First, the bands overlap deliberately at score 3 so that a competent line lands mid-scale rather than everything clustering at 4 and 5. Second, clarity is scored on absence of bad words rather than presence of clever ones, because "no vague vocabulary" is checkable and "witty" is not.

The preheader criterion needs its own anchor because the preheader is what the inbox shows after the subject line, typically 60 to 100 characters, and it can carry a meaningful share of the open decision. EmailOctopus reports that including a preheader can lift open rates substantially, partly because it compensates for truncated subject lines on mobile in its preheader writeup. A subject line that repeats the preheader wastes that slot; a subject line that sets it up uses both.

If you want help turning a rubric like this into a reusable internal standard for a marketing team, Quanta Experts can take the criteria, examples and edge cases and return a finished scoring guide and prompt library https://quantaintelligence.ai/agents.

Write the scoring prompt so the output is machine-readable

The prompt has three jobs: state the rubric, force a strict output shape, and forbid the model from being agreeable. Models drift toward positive scores when asked to evaluate, so the instructions need to name the failure mode.

You are scoring email subject lines for a B2B newsletter.

Score each line 1-5 on each criterion using ONLY the anchors below.
Do not guess the open rate. Do not rewrite the line. Do not average.

SPECIFICITY: 1 = pure abstraction. 3 = names a topic, no outcome.
  5 = names a number, timeframe, or named result.
LENGTH: 1 = over 70 chars with hook at the end. 3 = 50-70 chars,
  hook visible. 5 = 28-50 chars, hook inside first 30 chars.
PREVIEW MATCH: 1 = repeats or contradicts the preheader.
  3 = neutral. 5 = completes a thought the preheader advances.
CLARITY: 1 = contains "update", "news", "important", "quick note".
  3 = one vague word. 5 = concrete nouns and verbs, no filler.

If a line is ambiguous, score it lower and note why in "reason".
Return one JSON object per line, no prose:

{"id": "<id>", "specificity": n, "length": n,
 "preview_match": n, "clarity": n, "reason": "<12 words max>"}

Subject line and preheader to score:
<SUBJECT> ...
<PREHEADER> ...

Three design choices matter here.

Separate the dimensions. Forcing four scores instead of one stops a strong line from averaging its way to a good total when it fails one criterion badly. A line that is specific and clear but 85 characters long should visibly lose points on length.

Ask for a reason in a fixed word count. A short justification gives you a sample to audit and a way to catch a model that has misunderstood an anchor. Twelve words is enough to say "over 70 chars, logo at end".

Score in batches with the ID echoed back. When you run 100 lines, you need to join scores to open data by ID. Models occasionally drop or merge rows on long inputs, so keep batches to 20 or 30 lines and reconcile the output with the input list before you analyze anything.

A worked example, using a fictional preheader "Inside: the 12% churn cut and the two emails behind it":

  • Subject "Update on our newsletter" scores 2 specificity, 5 length, 1 preview match, 1 clarity. Verdict: rewrite.
  • Subject "Churn cut 12% in 90 days" scores 5 specificity, 5 length, 5 preview match (the preheader supplies the mechanism), 5 clarity. Verdict: strong control.
  • Subject "The 12% churn cut, and the two emails behind it (full teardown inside)" scores 5 specificity, 1 length (over 70 characters, hook at the end), 3 preview match (it duplicates the preheader), 5 clarity. Verdict: a good idea expressed in a line that will truncate badly.

That third line is the kind of case where a holistic 4 hides a real defect, and the criterion breakdown catches it.

Run the batch and record scores with your send data

Join the scores to real outcomes before you interpret them. You need, for each historical send: the subject line, the preheader, the send date, the recipient count, opens, and a note on whether Apple Mail Privacy Protection could have inflated the open count. Apple's Mail Privacy Protection pre-loads images, which can register opens that never happened per the Yahoo sender guidance and general privacy documentation summarized in the CMO Club guide. This is not a reason to abandon opens; it is a reason to prefer clicks and replies as confirmation, and to watch open rates on non-Apple clients where tracking is unaffected.

A practical recording table keeps the model output and the outcome side by side, with a total score you compute yourself rather than ask the model for:

idsubjectspeclenpreviewclaritytotalrecipientsopensopen rate
001Churn cut 12% in 90 days5555204,1001,39434.0%
002Update on our newsletter251193,98043811.0%
003Some news for you151184,05040510.0%

Two rules for a clean sample. Drop sends with a broken preheader or a broken link, because those contaminate the open rate. Drop sends to lists under a few hundred recipients, because a handful of opens swings the percentage enough to reorder your whole ranking. Aim for around 100 sends spread across at least a few months so you capture seasonal variation rather than one unusual week.

Record the per-criterion scores, not just the total. If the total correlates with opens but the length sub-score correlates negatively, that is a finding about your audience, not a model failure: several studies of large subject line datasets find that longer lines, in the 9 to 13 word range and above 71 characters, perform well with desktop readers per BuzzStream's analysis of over 6 million subject lines. Your rubric encodes a mobile-first prior; your data may say your list is desktop-heavy. That is exactly the disagreement the validation step exists to surface.

Compare model scores to open data before you trust the rubric

The validation test is rank correlation, not exact agreement. You do not need the model to predict that a line will get 26.4 percent; you need it to put your best lines above your worst. Spearman's rank correlation between total score and open rate is the right statistic. With around 100 sends, a correlation above roughly 0.5 is a usable signal; near zero means the rubric is measuring something other than what your audience rewards; a negative value means one of your criteria is inverted.

Worked example with numbers. Suppose you score 100 sends and get a Spearman correlation of 0.58. That is above the threshold, so you proceed. Now split the sends into the top quartile by total score and the bottom quartile. Say the top quartile averaged a 31 percent open rate and the bottom quartile averaged 19 percent. That 12-point spread is your expected effect size, and it is what you should design your split test to detect.

A quick check in code, using scipy:

import pandas as pd
from scipy.stats import spearmanr

df = pd.read_csv("scored_sends.csv")
rho, p = spearmanr(df["total"], df["open_rate"])
print(f"spearman={rho:.2f} p={p:.4f}")

q = df["total"].quantile([0.25, 0.75])
top = df[df["total"] >= q[0.75]]["open_rate"].mean()
bottom = df[df["total"] <= q[0.25]]["open_rate"].mean()
print(f"top quartile={top:.3f} bottom quartile={bottom:.3f}")

The sample size matters for interpreting that p-value. With 100 observations, a correlation of 0.5 is comfortably distinguishable from zero; with 20 observations it is not, and you risk chasing noise. If your list is small, pool sends across campaigns before you judge the rubric, and accept that validation will take a quarter rather than a week.

There is one more comparison worth making: score the same lines twice, in two separate runs, and measure how many changed. If more than around a tenth of the lines move by two or more points on a criterion, the anchor for that criterion is too vague and needs a sharper example. This is a reliability check, and it is separate from the validity check against opens. A rubric can be perfectly reliable (same score every time) and still be invalid (predicts nothing). You want both.

Treat the correlation as a gate, not a verdict. A rubric that clears 0.5 has earned the right to guide drafts. It has not earned the right to send without a test. The next step is a live split: take your next send, use the highest-scoring and lowest-scoring candidates from the modeled batch as the two test arms, and split the list evenly. Omeda's analysis warns that correlation is not causation and recommends testing length and content directly with your own audience in its length study; the same caution applies to any rubric score.

For a list under about 1,000 recipients, do not test five variants. Test two, and build understanding across campaigns instead, because each arm needs enough recipients to separate a real effect from chance. Practical guidance for small senders puts the usable threshold at roughly 1,000 recipients per variation per Ruzuku's testing walkthrough.

One side note on what a subject line test can and cannot fix. If your emails are landing in the spam folder, a better subject line will not rescue them. Deliverability depends on authentication and complaint rates: SPF, DKIM and DMARC for bulk senders, plus keeping spam complaint rates below 0.3 percent per Gmail's sender guidelines and the parallel Yahoo requirements in Yahoo's sender best practices. AWS summarizes both providers' rules as three buckets: authentication, easy unsubscribe, and complaint monitoring in its bulk sender overview. Score subject lines only after those are in place.

A decision rule for using the rubric going forward

Once validated, the rubric becomes a filter, not an oracle. Here is a rule you can hand to a writer.

Draft with the rubric, publish on the test. Every new subject line gets scored. Any line with a total in the bottom quartile of your historical distribution does not go out without a rewrite or a deliberate override note. The override note is important: it forces someone to say why they believe this line beats its score, and it builds a record of where the rubric is wrong.

Weight by what correlated. If your validation showed that clarity and preview match carried most of the signal and length carried little, reweight the total accordingly. Do not keep equal weights out of habit. Recompute the correlation each quarter on new sends, and watch for the weight drift that comes when your audience mix changes.

Watch for rubric gaming. A model scoring against a rubric will reward lines that game the anchors: cram a number in, cut to 40 characters, and you can collect four 5s with a line that reads like a spreadsheet cell. Manual review of the top-scoring candidates once a month catches this, and so does a holdout test: score a batch of lines that a human judged excellent but that never got sent, and see whether the rubric agrees.

A comparison of the honest options for a team that needs to judge a large pile of subject lines:

ApproachThroughputExplains itselfNeeds validationBest fit
One writer's judgmentLowYes, in conversationNoSmall lists, few sends
Holistic model scoreHighNoYesRough triage only
Model with analytic rubricHighYes, per criterionYes, against opensTeams with 100+ past sends
Rubric plus live split testsMediumYes, with dataOngoingOwns the sending calendar

If you are building the scoring step into a larger internal tool, an ingestion pipeline, or a dashboard that joins model output to send data, the fastest path is to describe it and let a specialist build it with you https://quantaintelligence.ai/.

FAQ

FAQ

How many past subject lines do I need before the correlation means anything?

Around 100 sends is a reasonable floor for a Spearman correlation you can act on, and it is enough to distinguish a correlation of 0.5 from zero. Below about 30 sends the confidence interval is so wide that a good rubric can look useless and a bad one can look fine. If you do not have 100 sends yet, pool across campaigns and segments, and use the rubric for drafting only until the sample grows.

What if the model's scores correlate with opens but the length sub-score points the wrong way?

That is a legitimate result and usually means your audience is desktop-heavy or your hooks are landing early enough to survive truncation. BuzzStream's large study found the best open rates in the 9 to 13 word range and above 71 characters, with the authors attributing it to desktop Gmail views in the study. Keep the criterion, invert the anchor so that long lines are not penalized, and re-run the correlation.

Should I ask the model to predict the open rate directly instead of scoring criteria?

No, not for this job. A predicted percentage invites false precision and gives you nothing to argue with when a line underperforms. Criterion scores are auditable: you can point at the specificity score and say the line names no outcome. Published work on predicting open rates from subject lines uses explicit features for the same reason, because the features are what you can change per the Expert Systems with Applications study.

How do Apple's privacy changes affect the open rate data I validate against?

Apple Mail Privacy Protection can pre-load email images and register opens that a person never made, which inflates open rates on Apple clients and adds noise to your ranking as summarized in this open rate guide. Two mitigations: prefer clicks and replies as a confirmation metric, and check the ranking on non-Apple segments where opens remain a cleaner signal. Do not throw out opens; just do not treat them as a perfect measurement.

Can I use the same rubric for a different list or a different type of email?

Not without re-validating. A rubric tuned to a B2B newsletter's mobile-first prior will misfire on a promotional ecommerce send where urgency and offers drive the open. The criteria can carry over, but the anchors and weights should be rebuilt from that list's own send history, then checked with the same rank correlation before anyone relies on it.

Sources

Sources

  1. 16 Strategies To Increase Email Open Rates in 2026 - The CMO Club
  2. Rubric Best Practices, Examples, and Templates
  3. Using the subject line to anticipate the open rate
  4. Email Subject Line Length: What the Data Actually Says ...
  5. How long should my email subject line length be?
  6. The impact preheaders have on open rates
  7. 6 Million Subject Lines Analyzed: What Actually Gets ...
  8. How to Use AI to A/B Test Email Subject Lines
  9. Email sender guidelines - Gmail Help
  10. Sender Best Practices - Yahoo Sender Hub
  11. An Overview of Bulk Sender Changes at Yahoo/Gmail - AWS
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles