How data works
How fees are published
Source-linked fees
Submissions with a public HTTPS URL on the frozen allowlisted school or government hostname set are fetched with SSRF guards. For auto-publish, the amount must appear in HTML text (PDFs and images are not used for new auto-publish). Domains not on the allowlist never auto-publish as source-checked — use the private parent-report path instead. On match, the row is stored as Source checked with URL, fetch time, and content hash. Wayback archive is best-effort and never blocks publish.
Parent-reported ranges
Private reports never appear individually. When ≥5 independent reports (distinct daily-rotated abuse-token hashes) exist for the same school + grade + academic year + fee type, outliers are trimmed with a 1.5×IQR fence, then min–max, median, and count are shown, labelled exactly: Parent-reported range — not from the school.
Problems & service controls
Any preset-reason complaint hides the row immediately. Source rows are re-checked; aggregates stay hidden until ≥5 new independent reports arrive after the complaint. “Personal information” hides permanently. Spike thresholds can pause submissions automatically; academic-year end hides stale rows; past operator renew-by freezes the site as a dated archive. See Service status.
Status labels
- Source checked — matched to a cited public page at check time
- Outdated — page gone or amount no longer matches
We do not use labels like “verified”, “official fee”, or “accurate”.