# Accuracy

How often the [built-in policies](/docs/guides/built-in-policies) show or hide content as their published rules say they should, most recently measured on October 30, 2026. Each dataset shows the date it was last measured. We publish the misses alongside the hits, so you can judge the results for yourself.

- **New posts handled correctly:** 99% (395,233 of 399,400)
- **Harmful posts hidden:** 88.5% (18,037 of 20,389)
- **Hidden posts that should be:** 90.9% (18,037 of 19,852)
- **Hard cases decided by people:** 98.6% (349 of 354)

## On everyday posts

To see how CalmLens does on the content a platform actually receives, we take 100,000 new posts at random from a public social network,[^source] in every language, with nothing filtered out or chosen. Each post goes through all four built-in policies, and an AI reviewer checks every outcome against that policy's published rules. The reviewer is stricter than the rules in places, so we check a random sample of its disagreements by hand in each policy and direction, and count only the share of disagreements that held up. The figures below are estimates corrected that way.

| Built-in policy      | Outcomes correct         | Harmful posts hidden     | Hidden posts that should be |
| -------------------- | ------------------------ | ------------------------ | --------------------------- |
| General              | 99.5% (99,350 of 99,850) | 80.8% (707 of 875)       | 68% (707 of 1,039)          |
| Kids                 | 98.1% (97,991 of 99,850) | 88.8% (12,028 of 13,540) | 97.2% (12,028 of 12,375)    |
| Learning and support | 99.3% (99,174 of 99,850) | 89.4% (1,926 of 2,154)   | 81.1% (1,926 of 2,374)      |
| Teen-safe            | 98.9% (98,718 of 99,850) | 88.4% (3,376 of 3,820)   | 83.1% (3,376 of 4,064)      |

- **Outcomes correct** counts every post, including the large majority that are plainly fine. Because so few posts are harmful, a policy that hid nothing would still score highly here, so read it with the two columns beside it.
- **Harmful posts hidden** counts only the posts review said the policy should hide, and how many of those it did hide.
- **Hidden posts that should be** counts only the posts the policy hid, and how many review agreed with. The stricter policies hide far more posts, so a few over-cautious decisions weigh less there. On General, which hides few posts, each mistake is a large share.

Mistakes go both ways. The stricter policies most often miss milder content they should hide, such as insults, mild profanity and innuendo. Over-caution is most often a figure of speech or an everyday mention read as a crime, such as an idiom, a story, or a drink with friends, or a public figure's name-calling hidden where the policy would only [limit](/docs/guides/delivering-assets#limited-assets) it.

## All datasets

Everyday posts are mostly easy. To test the boundaries, we also measure cases chosen because they are difficult, a hand-written test set and agreement with a platform's own labels. This table shows every dataset, including the everyday sample.

| Dataset                          | Content | Cases  | Built-in policy outcomes correct | Category labels correct | Measured         |
| -------------------------------- | ------- | ------ | -------------------------------- | ----------------------- | ---------------- |
| New public posts                 | Text    | 99,850 | 99% (395,233 of 399,400)         | Not measured            | October 30, 2026 |
| Hard cases, decided by people    | Text    | 38     | 98.3% (175 of 178)               | Not measured            | October 29, 2026 |
| Hard cases, decided by people    | Images  | 39     | 98.9% (174 of 176)               | Not measured            | October 29, 2026 |
| Hard cases, decided in AI review | Text    | 618    | 76% (2,280 of 3,000)             | Not measured            | October 25, 2026 |
| Hard cases, decided in AI review | Images  | 182    | 80.8% (656 of 812)               | Not measured            | October 25, 2026 |
| Labelled test set                | Text    | 856    | 93.5% (374 of 400)               | 96.6% (1,532 of 1,586)  | October 25, 2026 |
| Platform labels                  | Text    | 1,000  | Not measured                     | 95.7% (5,739 of 5,995)  | October 25, 2026 |
| Platform labels                  | Images  | 611    | Not measured                     | 92.8% (2,794 of 3,010)  | October 25, 2026 |

| Dataset                          | What it is                                                                                                                                                                                                                  | What counts as correct                                                                                                                                                     |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| New public posts                 | The random sample above. Text only.                                                                                                                                                                                         | The outcome decided in review for each built-in policy, estimated from the AI review and the hand-checked sample of its disagreements.                                     |
| Hard cases, decided by people    | Real posts and images, mostly from public social media and public moderation datasets, picked where automated results disagreed. A person decided the correct outcome for each built-in policy against the published rules. | The outcome a person decided. Every change to the moderation pipeline is checked against all of them before it ships.                                                      |
| Hard cases, decided in AI review | More hard cases of the same kind, whose correct outcomes were decided by an AI reviewer working from the published rules and have not yet been confirmed by a person.                                                       | The outcome decided in review. These are deliberately difficult and their expectations are provisional, so they are the lowest scores here.                                |
| Labelled test set                | Hand-written cases covering every category, its forms and its contexts, such as reporting, education, fiction and counterspeech, including near misses that should be allowed.                                              | The labelled category and the expected outcome for each built-in policy.                                                                                                   |
| Platform labels                  | A random sample of public posts and images from the same social network, compared with the moderation labels the network itself applied to them.[^source]                                                                   | Agreement with the network's labels for each category. Its labels follow its own rules, which differ from ours in places, so this measures agreement rather than accuracy. |

**Built-in policy outcomes** count whether each policy showed or hid the content as expected. **Category labels** count whether each [moderation category](/docs/guides/moderation-categories) was detected as the dataset labels it. Each dataset was last measured on the date shown; results that predate a change to the pipeline or the built-in policies are measured again when that dataset is next run.

## Compared with general-purpose moderation services

General-purpose moderation services score content against fixed categories, such as harassment or sexual content, and leave the decision to a threshold. To compare, we sent the same 10,000 new public posts to four widely used services of this kind and to CalmLens, and judged every outcome with the same review against each built-in policy, on November 1, 2026.

The gap comes from what a category score can express: it can't tell reporting, fiction or a joke from the real thing, and it can't hold a children's community to a stricter standard than an adult one. So the services hide far more harmless posts on the adult policies and miss more of what Kids should hide.

The best service is the one with the fewest mistakes on that policy, counting harmful posts shown and harmless posts hidden; it differs between policies. The median is taken across all four services for each figure.

### General

| Moderation                     | Harmful posts hidden | Hidden posts that should be |
| ------------------------------ | -------------------- | --------------------------- |
| CalmLens                       | 96.2% (25 of 26)     | 39.7% (25 of 63)            |
| Best service (fewest mistakes) | 23.1% (6 of 26)      | 3.9% (6 of 154)             |
| Median of the four services    | 48.1%                | 2.6%                        |

### Kids

| Moderation                     | Harmful posts hidden   | Hidden posts that should be |
| ------------------------------ | ---------------------- | --------------------------- |
| CalmLens                       | 82.3% (1,149 of 1,396) | 92.5% (1,149 of 1,242)      |
| Best service (fewest mistakes) | 32% (447 of 1,396)     | 84.3% (447 of 530)          |
| Median of the four services    | 34.4%                  | 70.3%                       |

### Learning and support

| Moderation                     | Harmful posts hidden | Hidden posts that should be |
| ------------------------------ | -------------------- | --------------------------- |
| CalmLens                       | 92.9% (117 of 126)   | 70.1% (117 of 167)          |
| Best service (fewest mistakes) | 36.5% (46 of 126)    | 30.3% (46 of 152)           |
| Median of the four services    | 58.3%                | 14.5%                       |

### Teen-safe

| Moderation                     | Harmful posts hidden | Hidden posts that should be |
| ------------------------------ | -------------------- | --------------------------- |
| CalmLens                       | 86.3% (183 of 212)   | 73.5% (183 of 249)          |
| Best service (fewest mistakes) | 27.8% (59 of 212)    | 40.7% (59 of 145)           |
| Median of the four services    | 54%                  | 24.2%                       |

### How the comparison was run

- **Mapping.** Each service's categories were matched to the built-in policy's categories, and a category the service flagged at its usual threshold took the policy's action for that category. The services have no context allowances, such as reporting, education or fiction, so none were applied to them.
- **Review.** One AI review judged every outcome against the published rules, the same for every system. It agrees with people on about 93% of a sample of hard cases they decided. Unlike the everyday figures above, these figures aren't corrected with a hand-checked sample, so CalmLens's own figures here differ from that table.
- **Few harmful posts on General.** Only a few dozen of the posts should be hidden on General, so a single post moves its first column by several points.
- **Languages.** The posts are in every language. One service analyses English only and was sent every post.
- **One measurement.** Each system ran once on these posts. The services and CalmLens both change over time.

## How it is measured

- **The production pipeline.** Each case goes through the same moderation pipeline and built-in policies that projects use, with nothing tuned for the benchmark.
- **Shown or hidden.** An outcome is correct when the content is shown or hidden as expected. Allowed and [limited](/docs/guides/delivering-assets#limited-assets) content is shown to everyone; age-restricted, blocked and purged content is not.
- **Fixed expectations.** Expectations are set before a change is measured and are never edited to make a result pass.
- **Unseen content.** The everyday sample is collected fresh for each measurement, and none of its posts were used to develop the pipeline.
- **Custom policies.** These results are for the built-in policies. A custom policy with different actions, allowances or restrictions will give different outcomes on the same content.

## Limits

- **Review is judgement.** On the boundaries of harassment, hate and innuendo, careful reviewers reading the same rules often disagree. A mistake that review didn't spot isn't counted, so read the everyday figures as an estimate rather than an exact rate.
- **Estimated corrections.** The everyday figures scale each policy's reviewer disagreements by the share that held up in a hand-checked sample. The sample is small, so each figure can be off by a few tenths of a percentage point on outcomes, and by a few points on the two hidden-post columns.
- **Text and images.** The everyday sample covers text. Images are measured on the hard cases and against the network's own labels.
- **Your content differs.** Every community posts differently. To check results on your own content, [try your policy](/docs/guides/testing) on representative examples before you go live, and [report an incorrect result](/docs/guides/classification-results#report-an-incorrect-result) from the asset page.

[^source]: The public posts and their platform labels come from Bluesky.
