Skip to content

Signal · In-path interference

Three findings, kept apart on purpose.

OONI's public aggregation for China over a ninety day window. Devices rewriting HTTP on the path. The transport that real-time voice and circumvention depend on. And measurement methods that never complete a single run inside the country. These are three different kinds of observation, and collapsing them into one index would destroy what each of them says.

loading reading

Palimpsest is a free public good. MIT licensed, developed in the open, never a commercial product, and every finding on it ships the raw file it was computed from.

What funding buys Source on GitHub

Both indices, across the recorded history

in-path-interference-history.jsonl

Every committed reading is published in the raw history file, and this chart draws from it when the page loads.

Rates are computed over completed tests only, so an execution blackout changes the denominator, never the line. The signal is young; the chart states its own count until the record is long enough to draw.

Finding 1 of 3

Interference you can see

These tests do not ask whether a site is blocked. They send deliberately malformed or oddly cased HTTP and check whether anything on the path rewrote it before it arrived.

A non-zero rate is positive evidence of a device in the middle, whether or not that device chose to block anything.

Family: MIDDLEBOX

Middlebox index

loading

Finding 2 of 3

Degradation you can measure

Whether the plumbing that real-time voice and pluggable-transport circumvention depend on is usable at all. STUN reachability for WebRTC, a stock Tor bootstrap, and Tor carried over Snowflake.

This is a health reading on transport. It is not a claim about any single website, and it is not the same measurement as the Great Firewall reachability index.

Family: TRANSPORT

Transport index

loading

Finding 3 of 3

Measurement that cannot happen

Some test methods ran inside China this window and never once produced a result. That is not a low anomaly rate. It is no anomaly rate at all, because OONI's anomaly counter only ranges over runs that completed.

Drawing this as zero percent would invert it. Zero percent reads as clean. What it actually says is that the method cannot be carried out here, so nothing can be read from it in either direction.

So this finding is never given a bar and never given a percentage.

Family: EXECUTION

Execution blackouts

loading

How the denominator was chosen

The rule, as the collector states it

loading

anomaly_count ÷ completed_count   is a rate.
anomaly_count ÷ measurement_count   is not.

Reading the three marks

Every mark on this page is labelled in words as well as in colour and shape, so none of the three depends on colour to be told apart.

Every count in the reading

Per-test OONI counts for China over the reading window, including measurements attempted, runs completed, failures, anomalies, anomaly rate over completed runs, and execution failure rate over runs attempted.
Test Family Attempted Completed Failures Anomalies Anomalies / completed Failures / attempted State
loading reading

Take the evidence with you


Watch the censor, never the censored. This reading is built entirely from public aggregate data published by OONI. No person inside China is asked to run anything for it, and no individual measurement is attributed to anyone.