Skip to content

Palimpsest · DDTI Observatory

A real-time observatory of Chinese internet censorship — deletion as data

LOAD 45%
⊘ Censorship Fear Index · now
0 · calm255075severe · 100
▣ Top censor target · now
◑ Selectivityreachable
Censor attention allocation
recency-weighted share of the deletion stream, per term
✦ Noveltyreachable
0 newly-sensitive terms today
terms bursting vs their 30-day baseline
⟿ DDTI top-threat · last 30 readings → operator scenario trend
−30−22−15−7NOWscenario

Line = measured top_threat from the last 30 committed DDTI readings (ddti-history.jsonl; refreshed every 3h, so 30 readings ≈ 3.7 days). The shaded cone right of NOW is not a forecast — it is the operator scenario set by the drift and volatility controls below, shown to reason about what a given trajectory would imply.

TOPIC NETWORK · shock = newly-sensitive term spreading
critical warning watch
Ranked censor targets · click to inspect
Scenario cockpit
4
0.55
1.00×
/
Event stream
⏱ Velocity · deletion speedsuppressed
— /min
⚠ Velocity requires in-China egress to time deletions to the minute. Until that measurement is verified, the signal is suppressed by design — Palimpsest never publishes a number it cannot stand behind.
🌍 Censored at home, loud abroad · GDELT cross-signal
Which censored topics the world's press is covering heavily. A topic loud abroad but scrubbed at home is containment: the state suppressing a story the world already reports. Cross-referenced against the GDELT global news index.
Loading live cross-signal…
🛡 Pressure on the mirrors · GitHub-refuge
GitHub shelters censored material (996.ICU, nCovMemory, the Terminus2049 archive). This watches those mirrors for takedowns, legal blocks, and defensive fork or star bursts. Public pressure metadata only, never the content and never a maintainer.
Loading refuge watch…
⚑ Board memory · every flag, every committed run event-flags-history.jsonl
One row per signal, one column per committed change of the board's flag state — a quiet week adds no columns, so this is the board's event memory, not a clock. The July alarm — the only one this board has ever raised, dated six days before CDT's public documentation — is a red ▲ in the GFW row, where it will stay.

Every flag state is committed to the raw history file; this strip draws from it when the page loads.

◫ Forecast calibration · scored against what happened forecast-ledger-history.jsonl
The board publishes forecast intervals, then scores itself when the readings arrive. Coverage near the target means the intervals are honest; a signal under the climatology baseline is named rather than hidden.

Every scored forecast is committed to the raw history file; this panel draws from it when the page loads.

Method: threat = attention × (1 + 1.5 · novelty). Scope: censor-attention allocation (numerator-only; not a true deletion rate). Source: China Digital Times curated deletion stream.
Safety: public content only · never deanonymises posters or contributors · deletion confirmed by multiple independent checks · signal suppressed when the network is unreliable. See SAFETY.md · METHODOLOGY.md · ETHICS.md. Open source & openly licensed · audit-ready · github.com/beepboop2025/palimpsest