About this dashboard
reach.ipswich.love is a public companion to the Ipswich.love community events site. It exists so anyone — sponsors, partners, the council, the editor — can see how the site is being used and growing, in one place, on a permanent URL per month.
What you’re looking at
- The home page shows the most recent complete month at a glance.
/reports/yyyy-mm/is a scrolling visual story for that month. Each one stays put forever./reports/indexes every monthly report.
Where the numbers come from
Four sources, refreshed automatically each month by n8n workflows that commit YAML files into this site’s repository:
| Source | What we pull | Cadence |
|---|---|---|
| Events | Counts and metadata of events published on Ipswich.love (WP REST API) | 4th of month, 02:00 UTC |
| Newsletter | Mailchimp report data for the What’s On in Ipswich weekly send | 4th of month, 02:15 UTC |
| Visits | Aggregate sessions, top pages, geography, device split (Google Analytics 4 Data API) | 4th of month, 03:00 UTC |
| Search | Clicks, impressions, top queries and average position from Google Search (GSC API) | 4th of month, 03:30 UTC |
We never query the current month for the dashboard — GA4 in particular trails real-time by 24–48 hours, so the dashboard headline is always the last completed month.
What we don’t publish
This is a public site. We aggregate and we round; we don’t share anything that could identify an individual.
- No PII. No IP addresses, no individual sessions, no recipient names.
- Counts under 50 are rounded to
<50so small geographies and small categories can’t be de-anonymised. - Page paths are stripped of query strings before publishing — we don’t want UTM tags with personal names leaking through.
- No individual campaign recipient counts — only averages and aggregates.
- No internal admin metrics — nothing about edit velocity, draft pipelines, or moderator activity.
- Search queries are filtered. Google Search Console exposes the queries people typed to find Ipswich.love. We treat them carefully: any query with under 50 monthly impressions, plus anything matching name, email, or phone-number shapes, is rolled into a single
low-volumebucket and not published verbatim. Google itself already redacts the rarest queries before we see them.
Known caveats
- GA4 lag. Sessions for a given month aren’t fully settled until ~48 hours after month-end. We pull on the 4th to give the data time to land.
- Search lag. Google Search Console publishes data with a 2–3 day delay, so we pull on the 4th of each month to capture the full prior month.
- Mailchimp click rates exclude bots by default; opens are best-effort because of mail-client image proxying. Treat them as comparable, not absolute.
How it’s built
Jekyll, GitHub Pages, custom CSS — no JavaScript chart libraries. Every visualisation is hand-rolled SVG or CSS so the page stays fast on slow connections.
Built by Kindred Studio.
Get in touch
Spotted something that looks wrong, or want a number that isn’t here? Email james@j-kindred.com.
