{
  "_": "Brand Drift Index, published aggregate. Generated by scripts/gen-drift-aggregates.mjs from frontend/src/lib/marketing/driftIndex.js, which is what the page renders. Do not hand-edit.",
  "metricDefinition": "The Brand Drift Index counts, across a set of texts published under one identity, how many of ten measured properties vary beyond a stated tolerance. It is a count out of ten, not a score out of a hundred, because the underlying instrument produces ten independent readings and averaging them into one number would invent a precision the measurement does not have.",
  "whyNotAScore": "A single 0-100 number would be more quotable and less true. Ten properties do not share a unit, so weighting them into one figure is an editorial decision, and the weights would then be doing work the reader cannot see. A count is checkable: you can disagree with it by pointing at a property.",
  "metric": {
    "name": "Brand Drift Index",
    "version": "0.1",
    "properties": [
      "sentences",
      "words",
      "avgSentenceWords",
      "longestSentenceWords",
      "contractionsPer100Words",
      "addressesReader",
      "firstPersonHits",
      "secondPersonHits",
      "vocabularyRichness",
      "genericPhrasesFound"
    ]
  },
  "release": "r1",
  "published": "2026-08-17",
  "corpus": {
    "name": "Announcement pairs",
    "n": 30,
    "unit": "drafts (15 matched pairs)",
    "origin": "repic-authored",
    "description": "Fifteen announcement moments, each written twice: once in the register the ranking \"25 examples\" listicles publish, and once obeying a rule specific to that moment. The pair is controlled: same message, same moment, one variable.",
    "reproduce": "seo-audit/capture/announce-measurements.py"
  },
  "findings": [
    {
      "key": "first-person",
      "claim": "First-person mentions fell in every pair.",
      "detail": "Mean 5.07 before, 1.67 after, and it fell in 15 of 15. No rule in the set said \"use fewer first-person words\"; each said something about the reader."
    },
    {
      "key": "reader-address",
      "claim": "Not one default draft addressed the reader at all.",
      "detail": "0 of 15. The instrument flags reader-address when second person is aimed at the person reading. Every standard version failed it, including the moments whose whole purpose is telling a customer something that affects them."
    },
    {
      "key": "not-brevity",
      "claim": "Length did not distinguish the two sets.",
      "detail": "Average sentence length moved 13.71 to 13.83 words and got shorter in only 8 of 15; total length rose, 48.93 to 50.27 words. The two most common pieces of advice for copy that sounds corporate, shorten it and say less, are not what separates these thirty texts."
    }
  ],
  "limitations": [
    "The corpus is written by Repic. It is a controlled pair, not a sample of anybody's real publishing, and it cannot support any claim about brands in general.",
    "n = 30 drafts across 15 pairs. That is enough to describe this corpus and not enough to generalise from.",
    "The \"before\" drafts are composites written to match a register observed in ranking pages. They quote no company, which means they are representative by construction rather than by sampling, and that is a real weakness of this release.",
    "Every measurement is arithmetic over text. It cannot tell you whether a piece was worth publishing, and that is the more common failure."
  ],
  "visitorSamples": 0
}
