Pharma spent the last several years building modular content for one reason: approve a block once, reuse it everywhere. The investment is real and the crossover has happened. Veeva reports that by 2025 roughly half of biopharma commercial content is modular, and the teams that made the shift approve EU content in about 20 days across 1.3 review cycles. The whole thesis rests on one operational promise: when an approved module shows up again in a new asset, the system recognizes it, and the reviewer does not have to judge it twice.
Here is the quiet failure. Most of the tooling that measures reuse recognizes a module the way a file-diff recognizes a line: by matching exact text. And approved content, in the real world, almost never survives contact with a channel unchanged. "3-year" becomes "3-yr" in a character-limited subject line. "versus" becomes "vs" in a banner. A percentage gets rounded because the sentence reads better that way. A medical writer paraphrases a claim so it sounds like an email instead of a leave-behind. In substance, nothing changed. In form, everything did.
An exact-match tool scores every one of those blocks as new content. The consequence is a double tax. Reviewers re-review language that was already approved, because the system cannot vouch for it. And the reuse metric, the number the modular investment is supposed to be judged by, undercounts so dramatically that reuse looks like it failed. Teams respond to the metric the way teams always do: if reuse gets no credit, write new. The industry already produces far more than it uses. Veeva Pulse field data shows nearly 80 percent of approved content is rarely or never used. A measurement layer that punishes reuse feeds that pile from the other end.
How real content drifts in form while holding its substance
The edits that break exact matching are not sloppiness. They are the normal, necessary work of fitting one approved message into many channels, and they come in a few predictable families.
Abbreviation and notation. "3-year" becomes "3-yr", "versus" becomes "vs", "percent" becomes the symbol, a trademark glyph appears or disappears. Character limits and house styles force these, and every one of them breaks a string match.
Rounding and reformatting of numbers. 47.6 percent becomes "nearly 48 percent" in body copy. A confidence interval moves to a footnote. The claim is the same claim; the string is a different string.
Paraphrase for register. A leave-behind states a result formally. A rep email says the same thing conversationally. The medical substance, the population, the qualifier, the comparator, all survive. Almost no contiguous run of words does.
Assembly artifacts. A module gets split across a headline and a subhead, or two modules get joined into one sentence with a connective. Order changes, punctuation changes, whitespace changes.
To an exact-match engine each of these is a novel block with no history. Multiply that across a campaign with dozens of assets and the reported reuse rate collapses toward zero while the true reuse rate, the share of content whose substance was already approved, stays high. The tooling is not measuring reuse. It is measuring typing.
What semantic matching does differently
Semantic matching compares meaning instead of characters. Each block of content is converted into an embedding, a vector that places text with similar meaning close together in a mathematical space, and closeness is scored with cosine similarity. This is not an exotic technique bolted on for marketing. It has been standard, published practice in natural language processing for years: the Sentence-BERT work by Reimers and Gurevych showed in 2019 that sentence embeddings could be compared directly with cosine similarity, cutting a similarity search over 10,000 sentences from roughly 65 hours with raw BERT to about 5 seconds. The machinery for asking "which approved module is this sentence closest to, and how close" is mature, fast, and well understood.
Applied to a content operation, semantic matching does one job exact matching cannot: it resolves an edited block back to the approved module it came from. Instead of a binary matched-or-new verdict, every block in a draft asset gets an answer to two questions. Which module in the claims library is this derived from, if any? And how far has it moved?
That second question is what makes the output honest. Distance from the source module is not noise, it is the signal that decides how much scrutiny the block deserves. Which is why the useful output of semantic matching is not a similarity score. It is a bucket.
Four buckets, one honest reuse number
Every block in a draft resolves into one of four buckets.
Exact match. Character-for-character identical to an approved module. The block is the module.
Light edit. The surface changed, the substance did not: abbreviations, notation, rounding within stated precision, punctuation, reordering, register paraphrase that preserves claim, population, comparator, and qualifier. The block resolves to its module at high similarity and the differences are mechanical.
Heavy edit. The block is recognizably derived from an approved module but the delta touches substance: a qualifier dropped, a population restriction loosened, a verb strengthened, a number rounded past its stated precision. Reused, but edited in a way a reviewer should see.
New. No approved module resolves at meaningful similarity. This is genuinely new language making a genuinely new statement.
The buckets translate directly into an operating posture, and the posture is the point.
Exact and light-edit blocks clear fast. They carry their provenance with them: this block is module VG-EFF-04, approved on this date, against this label version, with these mandatory companions. The reviewer is not asked to re-judge approved substance; they are shown that the substance is approved and that the edits are cosmetic.
Heavy-edit blocks get the honest framing: reused but edited, review the delta. Not the whole block cold, the delta. The reviewer sees the approved module and the edited version side by side, with the difference isolated. Judging whether "nearly half" is an acceptable rendering of 47.6 percent is a real medical-legal judgment, and it takes minutes when the question is posed that precisely.
Only new blocks get a fresh claim check, which is where reviewer attention belonged all along. This posture does not replace the MLR reviewer, it backs the reviewer: the machine does the resolution and the sorting, the human makes every judgment that touches substance. Given that MLR cycles commonly stretch 50 to 60 days per content piece, and modular approaches can cut review time by up to 60 percent, the difference between re-reviewing everything and reviewing deltas plus genuine novelty is most of the prize.
A worked example: Varigel
Take a fictional brand, Varigel, with a governed claims library. The approved efficacy module reads: "In a 3-year extension study, Varigel reduced flare frequency by 47.6 percent versus placebo in the approved population."
A medical writer drafts a rep-triggered email and renders that claim the way a human being writes an email: "In a 3-yr extension study, Varigel cut flare frequency by nearly 48% vs placebo in the approved population."
Run the exact-match tool. Result: 0 percent reuse. "3-year" is not "3-yr", "versus" is not "vs", "reduced" is not "cut", "47.6 percent" is not "nearly 48%". No qualifying string survives. The sentence enters review flagged as entirely new content, the reviewer reads it cold, hunts down the source claim manually, and the asset's reuse score tells the operations lead the modular library went unused.
Run semantic matching. The sentence resolves to the efficacy module at high similarity. The deltas are enumerated: two abbreviations, one verb swap, one rounding of 47.6 to "nearly 48". Rounding to the nearest whole number is within the claim's stated precision, so the block buckets as a light edit and clears with its provenance attached. The reviewer confirms rather than re-adjudicates.
Now change one word. Suppose the writer had reached for "nearly half" instead. Semantic matching still resolves the sentence to the same module, but the delta now rounds 47.6 up to 50, past the claim's precision. The block buckets as a heavy edit: reused but edited, review the delta. The reviewer gets the module and the draft side by side with exactly that change isolated, makes the call in a minute, and everything else in the email that cleared as exact or light stays cleared.
Same email, same library, same reviewer. Exact match reported zero reuse and produced a cold re-review. Semantic matching reported the truth: one approved module, faithfully reused once, and once edited past its precision in a way one human needed to see.
Where this leaves you
If your reuse numbers look bad, the first suspect is not your content team. It is the matcher. Exact-match detection makes faithful reuse invisible, taxes reviewers with re-reviews of approved substance, and quietly teaches the organization that reuse does not pay. Semantic matching makes the modular investment measurable: it resolves edited blocks to their source modules, buckets them as exact, light edit, heavy edit, or new, and routes reviewer attention to the deltas and the genuinely new sentences where judgment is actually required.
This is the measurement layer Juncture builds on. The Pre-check runs a draft asset against your approved claims library before review, resolves every block semantically, and hands MLR a bucketed asset with provenance and isolated deltas instead of a raw page. Content Intelligence keeps the library itself governed, so the modules being matched against are the modules that were actually approved, at the label version they were approved under. The reviewer stays the control. The machine just stops telling them that their own approved content is a stranger.
Sources
- Veeva Systems, "Using benchmarks to speed and scale life sciences," 2025. veeva.com
- Veeva Pulse Field Trends Report, "Content-driven engagement lags despite proven boost to treatment adoption," May 2025. veeva.com
- Reimers and Gurevych, "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks," EMNLP 2019. arxiv.org
- Indegene, "MLR bottlenecks in pharma," 2025. indegene.com