ECA Trainings & Events Tracker
Training & event delivery analytics — Kenya, Uganda, Tanzania, Ethiopia.
Last data refresh: 11 Aug 2026, 01:27 · 6,811 real / 83 test · Print → Save as PDF for a full-page export
The reach-vs-individual distinction (read this first)
The dashboard never conflates three different denominators:
Reported reach (Σ total_participants) ≥ individual records ≥ unique farmers (deduped)
Demographic percentages are computed on reported reach. Charts state their sample size (n). Unique-farmer counts are approximate where identity rests on typed names rather than a farmer ID.Field definitions
| Field | Meaning |
|---|---|
| event / submission | One KoboToolbox submission = one training or event delivered. |
| total_participants | Reported aggregate headcount for the event. NOT the number of individually recorded participants. |
| individual records | Sum of participant[] repeat rows + known-farmer-list selections — people captured individually. |
| unique farmers | Individual records deduplicated by farmer_id (or a normalised name+phone key when no ID). |
| % female / % youth | Of reported reach (total_participants). Youth = ≤35 years. |
| real vs test | The real_test field. Test records are excluded everywhere by default; toggle to include. |
| admin levels | Country-conditional: Kenya County/Sub-county/Ward · Uganda & Tanzania Region/District · Ethiopia Region/Zone/Woreda. |
| completeness score | Mean of four present/absent signals: GPS, photo, attendance sheet, admin-2. |
| submission lag | Days between training_date and submission timestamp — a data-entry timeliness proxy. |
PII protection
Row-level phone numbers, Beneficiary IDs, National IDs and participant/facilitator names are held in RLS-locked base tables and are never exposed to the dashboard — it reads only PII-free views (identity is surfaced as an anonymous hash for dedup counting). Disability is shown only in aggregate. Enumerator names appear only as aggregate submission/completeness counts.
Known limitations
- Free-text dedup (name+phone) is imperfect — unique counts are indicative.
- Admin-2 and organisation names are free-text; spellings vary.
- Form-version drift: older submissions may lack newer fields (handled as missing, treated as real).
- No choropleth boundaries — Geography uses admin-level aggregates and a coordinate scatter, not a basemap.
- next_training_date (upcoming pipeline) is captured mainly by SAVE KE.
Data refresh
Source: KoboToolbox form
aCt5s6EGUnE7UxJVeuXjpY. A scheduled GitHub Action re-fetches all submissions every 3 hours (Kobo REST) and upserts into Supabase; interactive loads run via the Kobo MCP server. The “last data refresh” time is shown in the header. New projects/topics decode automatically once the choices map is refreshed.