Aggregate collection active; person-level analytics absent
coarse private daily aggregates only; no unique-person count. The first-party module reports only bounded event classes to a Unix-socket collector. The operator dashboard is private and is not routed by Caddy.
Counts are not people
TWIRX does not publish a visitor count or pretend that page events identify humans. Bots can inflate aggregates, JavaScript-disabled visits are missed, and one person can generate several events.
Coarse operational counters only
Public pages
Page views, FUTO visits and funding visits.
Lab
Anonymous session starts, queries and proof downloads.
Agent
Aggregate agent-run count on the agent surface only.
Outbound
GitHub clicks and coarse referrer classes.
Reliability
Errors plus latency count, sum and maximum.
Date
Daily UTC buckets retained for at most 90 days; no per-person history.
Data the collector does not retain
Network identity
- Raw IP addresses: no
- Hashed IP addresses: no
- User-agent strings: no
- Raw referrer URLs: no
Behavioral identity
- Cookies: no
- Fingerprints: no
- User or session IDs: no
- Questions, answers or result content: no
Private operator boundary
- Unix socket onlyThe candidate collector does not open a public TCP listener.
- Aggregate validationOnly bounded event, surface, status and coarse-referrer classes are accepted.
- Durable or failAn event is rolled back when aggregate persistence fails.
- Mode 0600State and generated operator dashboard are private to the service account.
- No public dashboardThe dashboard is
noindex,nofollowand not served by the public website. - Operator exclusion
?twirx_operator=1stores one constant, origin-local browser flag and suppresses events until it is cleared. The flag is never sent to the collector and is not an identifier. - Bounded retentionOnly the most recent 90 UTC date buckets survive state restoration or a new event.
Known limits
- Anonymous counters can be inflated by bots and are not unique-person analytics.
- Coarse referrer classification is performed transiently in the browser; the raw referrer is never sent.
- Count, sum and maximum do not provide a true latency percentile.
- The operator exclusion is browser-local and must be enabled separately on
twirx.organdlab.twirx.org. Clearing site data clears the exclusion. - Events can be forged or blocked, so these aggregates are operational signals rather than audit evidence.