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
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