Live The AI Search Visibility & Ranking Factors reports are now live. Click here to view them →

How OppAlerts Scores a Draft Against a Category

OppAlerts scores draft relevance by comparing text and taxonomy categories with cosine similarity. Learn to interpret category positions, phrase suggestions and input limits.

If you use a content score to guide an edit, you need to understand which comparison produced it and what it can tell the writer. Content Optimizer compares the meaning of writing you paste in with categories you select from a taxonomy. This page describes what it measures, what the number can support, and where it stops.

What is compared with what

Two separate steps run behind the report, and they are worth keeping apart because they can fail differently.

First, your text is turned into a list of 768 numbers by an embedding model. That list is a position: writing about similar subjects produces nearby positions, and writing about unrelated subjects produces distant ones.

Second, that position is compared against the stored position of every category in the taxonomy you selected. The categories are ranked by how close they sit to your text, and the nearest ten are returned.

The comparison is cosine similarity. Because both vectors are normalized to unit length, it is calculated as their dot product. The displayed percentage is the direct cosine score multiplied by 100, not a transformed grade or probability.

The category positions were produced by the same model as your text. That is a requirement rather than a detail: if the two were made by different models, the numbers would still compare and the result would be meaningless.

What you select, and why only three

You may select up to three categories, each from a different taxonomy. The editor refuses two categories from the same taxonomy. Each result reports one selected category's position; two selections within the same taxonomy would require separate positions.

In practice that means you can ask three separate questions about one piece of writing. A topic category asks what the writing is about. An audience category asks who it reads as being written for. A location category asks whether it reads as relevant to a place.

Why the report stops at ten categories

Each selected taxonomy returns its ten nearest categories. The number is fixed, and the reason is worth knowing when reading the result.

I set the limit after using the report on real writing. Twenty-five categories proved unhelpful, and even ten can include categories with little relevance. After the first few matches, the remaining categories can be the closest available without being useful.

So read the top of the list. A category appearing in ninth place is not a weak match to pursue; it is usually the point where the list stopped meaning anything.

If the category you selected does not appear in the ten, the report gives its position separately. That is the most useful single output on the page: it tells you the writing is closer to ten other things than to the thing you were aiming at.

Why long writing is refused rather than trimmed

The embedding step accepts 8,192 bytes in one request. Longer writing is refused, and the editor marks the excess so you can see what is over.

Most Latin characters take one byte, so 8,192 bytes is roughly 8,192 characters of ordinary English, or very approximately 1,200 to 1,400 words. Accented characters, other scripts and some punctuation take two or more bytes each, so text in those languages reaches the limit sooner than the character count suggests.

The refusal is deliberate. Scoring the first 8,192 bytes of a long article would return a number describing the opening and present it as the whole article. A page that scores well in its introduction but wanders afterward would look correct.

For a long article, submit sections separately and read the results as separate measurements. They do not combine into a single article score, and averaging them yourself would reintroduce the problem the refusal avoids.

What the phrase list is

Alongside the categories, the report separates phrases already present in your writing from phrases associated with the category that the writing does not contain.

Treat the second list as evidence about the gap rather than as instructions. A phrase appears there because writing in that category commonly uses it. Some of those phrases will be irrelevant to your particular piece, and inserting them to change a number is the one use of the report that produces worse writing.

What the result supports, and what it does not

The measurement supports three uses.

  • Checking intent against execution. You chose a category before writing. The report says whether the finished text reads as belonging to it.
  • Finding misplaced emphasis. An unexpected nearest category names the subject the writing spends its length on.
  • Comparing drafts. Two versions of the same section can be compared against the same category.

It does not support the following, and no reading of the number makes it do so.

  • It does not predict citation or ranking. The comparison is between your text and a stored category position. No search engine or AI assistant is involved in producing it, and nothing about the score describes how any engine selects sources.
  • It does not grade accuracy. A confident, well-written, factually wrong passage can closely match its category. Similarity is not truth.
  • It does not grade completeness or quality. A short piece firmly about its subject can score closer than a thorough one that covers several subjects.
  • It does not measure a whole article when the article exceeds the input limit.

Compare categories and their relative positions rather than aiming at a high percentage. A draft that reaches its intended category as the nearest match has answered the question the report asks.

When reviewing the result, return to the selected category and the brief. Use the comparison to investigate relevance and give the writer a specific revision task.

See Content Optimizer for the report itself, or what vector similarity and keyword matching each measure.

Let’s discuss how we can work together.

An industry report, a custom dataset, a partnership; a couple of sentences is plenty. Every message comes straight to me, and I read all of them.

If it’s a fit, you’ll hear back quickly with next steps or a time to talk.