Last active
June 11, 2025 06:24
-
-
Save komuw/b7fc41d1cf018bc14f945a010a2045f0 to your computer and use it in GitHub Desktop.
cost/spending of public primary, jss and secondary education in kenya
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# we are going to try estimate the amount of money the govt(ahem, taxpayer) spends per public school student per year/term. | |
# We are only interested in the figures for students in PUBLIC primary, jss AND secondary schools. | |
# All the figures here come from the 2024/25 supplementary estimates I. | |
# see: https://mwangocapital.com/wp-content/uploads/2024/07/fy-24-25-supplementary-1-.pdf | |
# aka, the one that was sent to parliament after the 2024/25 finance bill was rejected. | |
# 2025/26 | |
# https://www.treasury.go.ke/wp-content/uploads/2025/05/FY-2025-26-Program-Based-Budget-Book.pdf | |
# https://www.treasury.go.ke/budget-books-1/ | |
# https://openbudget.or.ke/ | |
# Number of learners. | |
# We are only interested in primary, jss & secondary school figures. | |
# See page 221 of the supplementary estimates. | |
learners_in_public_primary_sch = 6_450_133 # 6million | |
learners_in_jss = 3_312_865 | |
learners_in_sec_sch = 3_244_325 | |
learners_in_adult_education = 151_000 | |
learners_provided_with_sch_meals = 4_000_000 | |
total_public_learners = learners_in_public_primary_sch + learners_in_jss + learners_in_sec_sch | |
total_public_learners = 13_007_323 # 13million. | |
# Spending for basic education | |
# See page 229 of the supplementary estimates. | |
free_primary_education = 21_633_795_702 # KES 21 billion | |
pri_special_needs_education = 681_248_083 | |
ecde = 18_448_319 | |
pri_teachers_training_in_servicing = 389_469_379 | |
adult_education = 55_275_376 | |
expanding_edu_in_asals = 400_000_000 | |
free_sec_edu = 94_599_910_071 # KES 94 billion | |
sec_teachers_services = 231_689_981 | |
sec_teachers_training_in_servicing = 252_582_688 | |
sec_special_needs_education = 200_000_000 | |
curriculum_devpt = 1_098_221_559 | |
exams_and_certification = 1_827_000_000 | |
co_curriculum_activities = 1_329_508_180 | |
hq_admin_services = 1_537_919_228 | |
county_admin_services = 3_070_957_202 | |
total_basic_education = ( | |
free_primary_education | |
+ pri_special_needs_education | |
+ pri_teachers_training_in_servicing | |
+ expanding_edu_in_asals | |
+ free_sec_edu | |
+ sec_teachers_services | |
+ sec_teachers_training_in_servicing | |
+ sec_special_needs_education | |
+ curriculum_devpt | |
+ exams_and_certification | |
+ co_curriculum_activities | |
+ hq_admin_services | |
+ county_admin_services | |
) | |
assert total_basic_education == 127_252_302_073 # KES 127 billion | |
# Spending for TSC. We are only interested in TSC spending specifically for primary, jss & secondary(ie, excluding tertiary) | |
# See page 865 of the supplementary estimates. | |
teacher_mgmnt_primary = 196_127_073_024 # KES 196 billion | |
teacher_mgmnt_secondary = 137_015_327_079 | |
teacher_mgmnt_tertiary = 4_533_870_504 | |
governance_and_standards = 1_104_431_830 | |
general_admin = 9_107_215_823 | |
# For `governance_and_standards` & `general_admin`, it is not broken down. ie, it's hard to know what percentage of say `general_admin` is dedicated | |
# for the general_admin of primary, secondary or tertiary. | |
# But since `teacher_mgmnt_tertiary` is 1.34% of the total for teacher_mgmnt. We will aportion `governance_and_standards`, `general_admin` in same ratios. | |
# ie, | |
governance_and_standards_primary_and_secondary = 1_104_431_830 - ((1.34 / 100) * 1_104_431_830) | |
governance_and_standards_primary_and_secondary = int(governance_and_standards_primary_and_secondary) | |
assert governance_and_standards_primary_and_secondary == 1_089_632_443 | |
general_admin_primary_and_secondary = 9_107_215_823 - ((1.34 / 100) * 9_107_215_823) | |
general_admin_primary_and_secondary = int(general_admin_primary_and_secondary) | |
assert general_admin_primary_and_secondary == 8_985_179_130 | |
# Thus | |
total_tsc_for_primary_and_secondary = ( | |
teacher_mgmnt_primary | |
+ teacher_mgmnt_secondary | |
+ governance_and_standards_primary_and_secondary | |
+ general_admin_primary_and_secondary | |
) | |
assert total_tsc_for_primary_and_secondary == 343_217_211_676 # KES 343 billion | |
total_basic_education_budget_spending = total_basic_education + total_tsc_for_primary_and_secondary | |
assert total_basic_education_budget_spending == 470_469_513_749 # 470 billion | |
total_spending_per_learner_per_year = total_basic_education_budget_spending / total_public_learners | |
total_spending_per_learner_per_year = int(total_spending_per_learner_per_year) | |
assert total_spending_per_learner_per_year == 36_169 # KES 36k per learner per year. | |
total_spending_per_learner_per_term = total_spending_per_learner_per_year / 3 | |
total_spending_per_learner_per_term = int(total_spending_per_learner_per_term) | |
assert total_spending_per_learner_per_term == 12_056 # KES 12k per learner per term. | |
# Do note that the maths is not perfect. | |
# For instance, the country spends KES 1.8 billion on exams and certification per year. | |
# I have counted that money as part of the expense for public education. | |
# But strictly speaking, that money is spent on both public & private | |
# Since private schools use the same kcpe/kcse provided by govt. | |
# But this estimates are not meant to be a perfect. | |
# In any case, if we assume that curriculum_devpt, exams_and_certification, hq_admin_services & | |
# governance_and_standards_primary_and_secondary are shared between public & private schools | |
# And we thus exclude them from the calculation. | |
# The cost drops from KES 36,169 to KES 35,742 per public student per year. | |
# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To understand the appropriations bill;
There are about 5 books/pdfs per year:
This can be downloaded from https://www.treasury.go.ke/budget-books-1/
Also compare with https://openbudget.or.ke/
Total Voted Expenditure
.Total Voted Expenditure
in eachDevelopment budget book
are going to be equal to each other, ie; it contains the total for all the devpt buget books instead of each book recording a total of just its book.Total Voted Expenditure
in eachRecurrent budget book
are going to be equal to each other, ie; it contains the total for all the recurrent buget books instead of each book recording a total of just its book.Total Voted Expenditure
in theProgram-Based-Budget-Book
contains the total of both the development and recurrent books.Let's take an example from the 2025/2026 books and take
State Department for Forestry
.In the
Program-Based-Budget-Book
it is listed as; KES 8,932,168,653(gross current estimates) 4,057,041,057(gross capital estimates) 12,989,209,710(gross total estimates)In the
Recurrent budget book
it is listed as; KES 8,932,168,653(gross estimates) 4,950,000,000(aia) 3,982,168,653(net estimates)In the
Development budget book
it is listed as; KES 4,057,041,057(gross estimates) 1,276,000,000(aia) 2,781,041,057(net estimates)See;
12,989,209,710 = 8,932,168,653 + 4,057,041,057
. ie, the total in program-based-budget is equal to total from recurrent and development budgets.Notice also that the gross/total amounts in both recurrent and development budget books already includes
AIA/loans/grants
. eg4,057,041,057 == 1,276,000,000 + 2,781,041,057
This also means that the total amounts in
Program-Based-Budget-Book
also includeAIA/loans/grants
.Program-Based-Budget-Book
;(a) the term
gross current estimates
means the value from the recurrent expenditure. ie,current == recurrent
(b) the term
gross capital estimates
means the value from the development expenditure. ie,capital == development
(c) the term
Appropriations in Aid
(AIA/aia) means either grants, loans or fees collected by the agency in question.Program-Based-Budget-Book
look forCONSOLIDATED FUND SERVICES
;(a)
GRAND TOTAL INTERNAL DEBT - INTEREST
(b)
Interest - Internal
(c)
Interest- External
(d)
PENSIONS, SALARIES & ALLOWANCES AND OTHERS
Program-Based-Budget-Book
, the total expenditure is KES 2,428,394,968,440 (kes 2.43trillion).This is the total government expenditure(both recurrent + development).
Note that this figure is inclusive of AIA/grants/loans.
This is about KES 2.43 trillion.
Program-Based-Budget-Book
, the totalconsolidated fund services
had expenditure of KES 2,141,025,101,165 (kes 2.14trillion).This includes; internal & external debt interests, internal & external debt redemptions, pensions, subscriptions to international organisations(like UN, etc), salaries & allowances for constitutional office holders.
Interest is KES ~850b(internal), 240b(external)
Redemptions is KES ~460b(internal), 340b(external)
Pensions is KES ~230b
road maintenance levy
, search for sub programmeMaintenance of Roads
underState Department for Roads
inProgram-Based-Budget-Book
. The key outputs are namedTransfer of receipts
.For example for 2025/2026 it is listed as (115,582,269,200). This figure matches the one reported in the news of 115b; https://www.businessdailyafrica.com/bd/economy/where-rise-in-road-maintenance-levy-will-hurt-most-4692312
.