← Back to the Explore tab

Technical Notes: Explore

How the Explore tab’s data were prepared, written for analysts. For a plain-language introduction, see the Guide.

The Explore tab maps Kenyan school-system indicators from the FLANA 2025 survey (Foundational Literacy and Numeracy Assessment, Usawa Agenda) across the 47 counties and 8 regions, with a Dataset selector for Primary School, Junior School and Household (Senior School is listed for a later round). This page sets out where those numbers come from.

Sources

Unlike the Compare tab (which works from the survey microdata), the Explore tab is built from aggregated tables prepared by the Usawa Agenda data team (June 2026 delivery):

  • Primary School 2025/tab1.xlsx — one row per county × indicator: county value, regional average and national average for each school-system indicator (learner–teacher ratios, attendance, WASH, and so on).
  • Household 2025/tab 1.csv — county-level foundational literacy and numeracy proficiency: overall values plus three signed gaps (gender, location, school type), by grade (3, 4 and 6), with sample sizes.
  • Household 2025/tab 2.csv — the group-level values behind those gaps (Boys, Girls, Urban, Rural, Public, Private), at county, regional and national level, by grade.
  • 13_april_data.xlsx — an earlier (April) county table from the same survey, used only for the callout totals (schools, learners, teachers), which the June delivery dropped.
  • gadm41_KEN_1.json — GADM 4.1 administrative boundaries for the 47 counties.

Four indicators are derived from the survey microdata by the dashboard pipeline itself, because the aggregated tables do not carry them: learners in private schools and children out of school (Household, from 2025 FLANA household_data_dashboard.dta), and schools with at least one working computer and teachers trained in-service (Primary School, from 2025 FLANA Primary_school data_dashboard.dta). One shared script (scripts/lib/derived_indicators.R) computes them for this tab and for the Compare tab, so the two always agree; their definitions are in the indicator catalogue. As everywhere on this tab, the 46 refugee-community schools (in the Dadaab and Kakuma camps) are not included in the school indicators. The Junior School learning outcomes for Grades 7, 8 and 9 are also derived by the pipeline, from the same household microdata, because Usawa’s tables stop at Grade 6 (see below).

One R script (scripts/generate_data.R) turns these into the files the page reads (per dataset: summary.json, stats.json, county_stats.json, regions.geojson, counties.geojson under data/processed/).

The Junior School dataset has two sources. Its staffing and absenteeism indicators are the “(JS)” rows of the same Primary School delivery: learner–teacher ratio, teachers per classroom and learner absenteeism. These carry no counts of sampled schools, learners or teachers until Usawa delivers them, so for them the stat band and reports show only the averages. Its learning outcomes for Grades 7, 8 and 9 are derived by the pipeline from the household microdata, and the stat band shows the 17,758 children assessed in those grades. It is shown as its own dataset so that junior statistics are never read as primary statistics. Senior School is listed but disabled until data is collected.

Sample sizes

The delivered values are county aggregates, not unit records. Behind them: 1,481 sampled schools, with 934,400 learners in sampled schools and 23,852 teachers in sampled schools (Primary School dataset, from the April totals: every learner enrolled and teacher employed in those schools, not a sample of people), and 22,213 children assessed (Grades 3, 4 and 6) (Household dataset, summed from the delivered per-grade county sample sizes; the Compare tab works from all 76,219 children in the household file). Every indicator covers all 47 counties and 8 regions.

Why Explore and Compare count different numbers of children. Explore’s Household figures are Usawa’s delivered tables for Grades 3, 4 and 6, so its count is the 22,213 children in those three grades. Of these, 20,544 have a literacy result and 19,886 a numeracy result; the others were in the grade but were not assessed in that subject, and each percentage is over the children with a result. Compare works from the whole household file: 76,219 children of every age and grade, in school or not. Its proficiency figures use only the children with a result (44,680 for literacy), and its other household indicators use every child they apply to. The two numbers describe different groups; neither is a correction of the other. Junior School’s learning outcomes count the 17,758 children in Grades 7, 8 and 9 in the same way as Explore’s Household figures (15,894 with a result), and Compare’s Junior School universe is the same 17,758 children.

Weighting

Survey weighting was applied upstream by the Usawa Agenda data team when aggregating the microdata; the dashboard pipeline displays the delivered estimates as-is. It computes three things itself. “Grades 3, 4 and 6 combined” (the “All grades” row of the tables) is the sample-size-weighted mean of the Grade 3, 4 and 6 values, using the delivered county/regional/national Ns as weights. The four derived indicators (see Sources) are survey-weighted shares computed from the microdata with its own weights (Weight for children, school_weight for schools); their regional and national values are the same weighted share over every child or school in the region or country, not an average of county values. The Junior School learning outcomes (Grades 7, 8 and 9) are computed from the household microdata with its Weight column by the method of Usawa’s delivered Grade 3, 4 and 6 tables; every build re-derives Grade 3 the same way and stops if any value differs from the delivery.

Recoding and preparation

  • Latest survey year: each delivery is filtered to its most recent year (2025).
  • County names are shown in their usual form (e.g. Homa Bay); the GADM boundary file’s compressed spellings are normalised to match.
  • Regions: GADM carries no region attribute, so a county → region (former province) mapping is supplied in the script; region boundaries are dissolved from the county polygons and simplified for fast rendering.
  • Units: rates delivered as 0–1 fractions are converted to percentages; one delivered column (male primary learner absenteeism) arrives already in 0–100 units and is left unconverted. Teacher–classroom ratios are shown as delivered (teachers ÷ classrooms), higher is better; 1.0 means one teacher per classroom.
  • Facets (primary / junior school and gender variants; grade and view for the Household dataset) are resolved once in the pipeline, so the page’s sub-controls are data-driven.
  • Three school indicators present in earlier deliveries (operational computer labs, teenage pregnancy rate, return-to-school rate after pregnancy) were dropped from the 2025 aggregate delivery and do not appear on this tab.
  • Three learner attendance rows are delivered but not shown; absenteeism (1 − attendance) carries the same information with the school and sex splits.
  • Guards: the build stops if delivered indicator labels drift from the configuration, if any metric lacks a description, or if any GADM county is missing from the joined statistics.

The Primary School dataset carries 15 indicators, the Junior School dataset 68 indicators (5 staffing and absenteeism indicators from the school survey, and 63 learning outcomes for Grades 7, 8 and 9: 3 proficiency measures × 7 views × 3 grades, derived by the pipeline from the household microdata with the method of Usawa’s Grade 3, 4 and 6 tables, which the build re-derives for Grade 3 and stops on any mismatch; public, private and the school-type gap are left out because the microdata records school type only for Grades 1 to 6); the Household dataset carries 122 metrics (3 proficiency measures × 10 views × 4 grades, including the derived “Grades 3, 4 and 6 combined”, plus the two indicators derived from the microdata). The three gap views (gender, location, school type) are shown on Explore coloured by distance from parity (0), darker for the smaller gap, with a reference line at 0 and no red class, because a gap has no standard. Computers per 100 learners, delivered in the aggregated table, is no longer shown: schools with at least one working computer replaces it. In-service-trained teachers per school, also delivered, is no longer shown here either: teachers trained in-service replaces it as a share of teachers (all trained teachers ÷ all primary teachers, survey-weighted, so a pooled ratio rather than an average of school shares). Schools reporting no teachers (2) drop out; nine schools report more trained teachers than teachers in total and are kept as delivered. The per-school count stays on the Compare tab’s school scatter, whose records carry no teacher total.

Indicator catalogue

Generated from the indicator registry (config/indicators/*.csv) every time the data is rebuilt, so it always matches the dropdown. Indicators delivered as pre-aggregated county tables show “as delivered” where Usawa has not yet named the numerator, denominator or source column.

How the derived indicators are calculated. Learner–teacher ratio = learners enrolled ÷ teachers. Teachers per classroom = teachers ÷ classrooms (1.0 means one teacher per classroom). Girls enrolled per 100 boys = girls enrolled ÷ boys enrolled × 100. Learner absenteeism = 1 − attendance on the visit day. Learners per toilet or hand-washing point = learners enrolled ÷ functional facilities. Gaps = the first group minus the second, in percentage points. The ratios are worked out school by school; the county, region and national figures Usawa delivers are survey-weighted averages of those school ratios, not a ratio of the totals (checked against the survey data for the national figures). The two can differ: girls enrolled per 100 boys averages 83.8 across schools, while total girls ÷ total boys gives about 92 (see Validation against the FLANA 2025 report).

Primary School

Indicator Definition Unit Numerator Denominator Source column Direction Standard
Learner-Teacher Ratio Learners per teacher in the primary school. Lower is better. learners per teacher learners enrolled teachers primary_learner_teacher_ratio Lower is better Above the national average shown red (provisional)
Teachers per classroom Teachers divided by classrooms in the primary school. 1.0 means one teacher per classroom; above 1.0 more teachers than classrooms, below 1.0 fewer. Higher is better. teachers per classroom teachers classrooms tcr_primary Higher is better Below the national average shown red (provisional)
Class Size Average number of learners per class. Lower is better. learners per class learners classes class_size Lower is better Above the national average shown red (provisional)
Teacher Attendance Rate Share of expected teachers present on visit day. Higher is better. % teachers present on visit day teachers expected tab1 (pre-aggregated) Higher is better Below the national average shown red (provisional)
Learner Absenteeism Rate Share of primary school learners absent on visit day (1 − attendance). Lower is better. % learners absent on visit day learners enrolled tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Learner Absenteeism Rate (Male) Share of primary school boys absent on visit day. Lower is better. % learners absent on visit day learners enrolled tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Learner Absenteeism Rate (Female) Share of primary school girls absent on visit day. Lower is better. % learners absent on visit day learners enrolled tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Learners per functional toilet (Boys) Boys enrolled divided by functional boys’ toilets. Lower is better. learners per toilet boys enrolled functional boys’ toilets fuctional_toilets_ratio_boys Lower is better Above the national average shown red (provisional)
Learners per functional toilet (Girls) Girls enrolled divided by functional girls’ toilets. Lower is better. learners per toilet girls enrolled functional girls’ toilets fuctional_toilets_ratio_girls Lower is better Above the national average shown red (provisional)
Learners per hand-washing point Learners enrolled divided by functional hand-washing points. Lower is better. learners per hand-washing point learners enrolled functional hand-washing points fuctional_handw_ratio_learners Lower is better Above the national average shown red (provisional)
Days without water last month Days in the previous calendar month on which the school reported a water shortage. Lower is better. days as delivered as delivered tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Schools with at least one working computer Share of schools reporting at least one computer available for learners, in percent. Higher is better. % schools with at least one computer for learners schools reporting a computer count s115h Higher is better Below the national average shown red (provisional)
Share of Schools Connected to the Internet Share of schools reporting an internet connection. Higher is better. % schools connected to the internet schools has_internet Higher is better Below the national average shown red (provisional)
Girls enrolled per 100 boys Girls enrolled for every 100 boys enrolled. 100 means parity; below 100 more boys, above 100 more girls. girls per 100 boys girls enrolled boys enrolled tab1 (pre-aggregated) Higher is better Below the national average shown red (provisional)
Teachers trained in-service Share of primary school teachers who have had in-service training, in percent (all trained teachers divided by all teachers, survey-weighted). The survey does not record who provided the training. Higher is better. % teachers trained in-service primary school teachers teacher_trained_int, total_primary_teachers Higher is better Below the national average shown red (provisional)

Junior School

Indicator Definition Unit Numerator Denominator Source column Direction Standard
Learner-Teacher Ratio Learners per teacher in the junior school. Lower is better. learners per teacher learners enrolled teachers JS_learner_teacher_ratio Lower is better Above the national average shown red (provisional)
Teachers per classroom Teachers divided by classrooms in the junior school. 1.0 means one teacher per classroom; above 1.0 more teachers than classrooms, below 1.0 fewer. Higher is better. teachers per classroom teachers classrooms TCR_JSS Higher is better Below the national average shown red (provisional)
Learner Absenteeism Rate Share of junior school learners absent on visit day (1 − attendance). Lower is better. % learners absent on visit day learners enrolled tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Learner Absenteeism Rate (Male) Share of junior school boys absent on visit day. Lower is better. % learners absent on visit day learners enrolled tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Learner Absenteeism Rate (Female) Share of junior school girls absent on visit day. Lower is better. % learners absent on visit day learners enrolled tab1 (pre-aggregated) Lower is better Above the national average shown red (provisional)
Meets minimum proficiency in literacy Share of children who meet the minimum literacy proficiency benchmark, by grade, derived from the household assessment. % children meeting the benchmark children of the grade with a result english_meet_comprehension Higher is better Below the national average shown red (provisional)
Meets minimum proficiency in numeracy Share of children who meet the minimum numeracy proficiency benchmark, by grade, derived from the household assessment. % children meeting the benchmark children of the grade with a result math_meet_divide Higher is better Below the national average shown red (provisional)
Meets minimum proficiency in both literacy and numeracy Share of children who meet the minimum literacy and numeracy proficiency benchmark, by grade, derived from the household assessment. % children meeting the benchmark children of the grade with a result both_meet_divdecomprehension Higher is better Below the national average shown red (provisional)

The last 3 rows are learning outcomes for Grades 7, 8 and 9, computed by the dashboard pipeline from the household microdata (survey-weighted, the method of Usawa’s delivered Grade 3, 4 and 6 tables, which it reproduces exactly). Each is published for these views: Overall, Boys, Girls, Urban, Rural; and the gap views Gender Gap (boys minus girls), Location Gap (urban minus rural), in percentage points. Public, private and the school-type gap are not shown: the microdata records school type only for Grades 1 to 6.

Household

Indicator Definition Unit Numerator Denominator Source column Direction Standard
Meets minimum proficiency in literacy Share of learners who meet the minimum literacy proficiency benchmark (delivered as “Foundational Literacy Proficiency”), by grade. % learners meeting the benchmark learners assessed tab 1.csv / tab 2.csv (pre-aggregated) Higher is better Below the national average shown red (provisional)
Meets minimum proficiency in numeracy Share of learners who meet the minimum numeracy proficiency benchmark (delivered as “Foundational Numeracy Proficiency”), by grade. % learners meeting the benchmark learners assessed tab 1.csv / tab 2.csv (pre-aggregated) Higher is better Below the national average shown red (provisional)
Meets minimum proficiency in both literacy and numeracy Share of learners who meet the minimum literacy and numeracy proficiency benchmark (delivered as “Foundational Literacy and Numeracy Proficiency”), by grade. % learners meeting the benchmark learners assessed tab 1.csv / tab 2.csv (pre-aggregated) Higher is better Below the national average shown red (provisional)
Learners in private schools Share of children with a known school type who attend a private school, in percent. % children attending a private school children with a known school type school_typeG16 No direction none
Children out of school Share of children aged 6 to 17 who have never enrolled or have dropped out, in percent. Lower is better. % children never enrolled or dropped out children aged 6 to 17 schoolg_status, child_age Lower is better Above the national average shown red (provisional)

Each measure is published for Grades 3, 4 and 6 combined, Grade 3, Grade 4, Grade 6 and for these views: Overall, Boys, Girls, Urban, Rural, Public, Private. The gap views (Gender Gap = boys minus girls; Location Gap = urban minus rural; School Type Gap = public minus private; in percentage points, positive means the first group is ahead) are shown on Explore, coloured by distance from parity (0) with no red class, on the Compare tab’s scatter and in the PDF tables. The last 2 rows (Learners in private schools, Children out of school) are derived by the dashboard pipeline from the household microdata, survey-weighted, with one value per county and no grade or view.

Map colours

The map and ranking bars share one colour rule: six steps around the indicator’s standard. Areas on the worse side of the standard are red, in three steps from pale to deep. Areas on the better side are purple, the single hue of the dashboard, also in three steps. On both sides, the further an area is from the standard, the deeper its colour, so deep red marks the areas that are clearly worse and deep purple the areas that are clearly better. The standard is provisionally each indicator’s national average (for the household measures, the national average for that grade and view), so roughly half the areas show some red until Usawa sets real thresholds. The legend is in two groups: the red one names the standard in use (“Above national average (41.8)”, or “Below …” where higher is better) over the three reds, and Better sits over the three purples. Each step shows the range it covers.

The steps are fixed for each indicator. On each side of the standard, the 2025 county values are split into thirds by distance from it; the four step boundaries are computed once (scripts/compute_bins.R) and stored with the indicator. A colour therefore means the same range in the national, region and county views and when you switch between them. The boundaries are recomputed only when a new survey round is deliberately made the baseline, or when a Usawa threshold replaces the national average. Regions, being averages of their counties, tend to fall in the paler steps. The dashed line on the ranking chart marks the same standard in every view, so red bars always sit on its worse side and purple bars on its better side. When you drill into a region, the region’s own average is shown in the figures above the map.

An indicator with no better end (learners in private schools) has no standard and never shows red. It uses the same purple shades as the other indicators, light to dark from low to high, but here the shade shows only how high the value is, not whether it is better; its legend reads “Darker is higher”.

The downloadable PDF reports use the same colours, steps and line, so a county reads the same in a report as on screen.

Missing values

A county or region with no delivered value is shown as No data, never as zero: on the map it has a neutral fill with a dashed outline and its own “No data” legend entry; in the ranked bars it is listed last with “No data” instead of a bar; tooltips and the PDF reports say “No data” too (PDF table cells carry a footnote giving the reason). A real zero is shown as 0.

In the 2025 delivery the Household tables leave these cells empty, in all three proficiency measures and every grade:

  • Rural values, and so the urban–rural location gap, for Mombasa and Nairobi, and therefore for the Nairobi region;
  • Private-school values for Tana River in Grade 6, and so its public–private school type gap.

The Junior School learning outcomes, derived the same way, are empty for the same reason in Grades 7, 8 and 9: Rural values, and so the location gap, for Mombasa and Nairobi (no rural children were sampled there).

No suppression rule is applied: the values are already-aggregated county estimates as delivered, with large county-level samples. (The Compare tab, which cross-tabulates microdata into much thinner cells, applies an n < 50 rule — see its documentation page.)

Validation against the FLANA 2025 report

The project’s verification checks compare the Explore tab’s national figures and the counts in the stat band with the tables of the published FLANA 2025 report (taken from its table workbook). Each comparison either matches within a tolerance or carries a recorded cause; a new or changed disagreement fails the checks. The tolerances are: counts exact; school indicators within 1% of the report value; household proficiency within 1.1 percentage points. The report has no regional tables, so regional and county values cannot yet be checked this way. Figures the report does not give (the sampled-teacher count, teacher attendance, absenteeism, days without water, the Junior School indicators, the “Grades 3, 4 and 6 combined” proficiency values and others) are listed as not yet referenced.

Matches. Sampled schools (1,481); the learner–teacher ratio, teachers per classroom and learners per hand-washing point (all within 1%); and all 54 household proficiency comparisons (Grades 3, 4 and 6, by sex, location and school type).

Disparities and their causes.

  • Learners in sampled schools: 934,400 here, 1,017,352 in the report. The report counts all 1,527 schools surveyed; the dashboard excludes the 46 refugee-community schools, which hold 82,952 of those learners.
  • Learners per functional toilet: 55.6 boys and 43.1 girls here, 60.2 and 46.0 in the report. The report takes a plain average over schools and includes the refugee-community schools; the dashboard weights each school by its survey weight and excludes them.
  • Schools connected to the internet: 45.9% here, 47.3% in the report. The report’s figure is the plain share of the 1,481 schools; the dashboard’s is survey-weighted.
  • Girls enrolled per 100 boys: 83.8 here, about 88.3 implied by the report. Different statistics: the dashboard shows the average of each school’s own girls-per-100-boys ratio (survey-weighted), as delivered; the report’s figure is a ratio of total girls to total boys, which in the survey data comes to about 92.
  • Household proficiency: the dashboard is 0.05 to 1.08 points below the report in every comparison. The dashboard equals the survey-weighted share in the delivered household data (for example Grade 3 literacy, 39.4 against the report’s 40.1); neither the weighted nor the unweighted survey data reproduces the report’s figures, so the report appears to have been computed on a different extract or weight. The cause is to be confirmed with Usawa.
  • Schools with at least one working computer: 51.6% here, 63.1% (“Functional Computers”) in the report. Different survey items: the report tabulates a question on possessing functional computers, which is not in the school microdata the dashboard receives; the dashboard counts schools reporting at least one computer for learners, among the 934 non-refugee schools that gave a count (46.5% without survey weights). To be confirmed with Usawa.
  • Learners in private schools: 23.6% here, 22.5% in the report. The report also separates low-cost private (0.76%) and refugee-community schools (0.73%); the microdata the dashboard receives has only public, private and home schooling, so its share is out of those three.
  • Children out of school: 3.5% here, 5.8% in the report. Different age range: the report’s figure covers ages 4 to 17, including 4- and 5-year-olds (about 14% of whom have never enrolled), and is unweighted; the dashboard covers ages 6 to 17, survey-weighted.
  • Grade 4 literacy and numeracy, private schools: the report gives two different values in two tables (43.6 and 39.6). The dashboard’s 39.3 agrees with the second, which is the one checked.

The Compare tab is checked against the same report separately; see its documentation page.


← Back to the Explore tab