Skip to content

Instantly share code, notes, and snippets.

@komuw
Last active June 11, 2025 06:24
Show Gist options
  • Save komuw/b7fc41d1cf018bc14f945a010a2045f0 to your computer and use it in GitHub Desktop.
Save komuw/b7fc41d1cf018bc14f945a010a2045f0 to your computer and use it in GitHub Desktop.
cost/spending of public primary, jss and secondary education in kenya
# 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.
#
@komuw
Copy link
Author

komuw commented May 14, 2025

Reduce VAT rate from 16% to ~7% and make it applicable to all goods/services with no exemption.

# Kenya loses KES 2.5b/month through VAT fraud. 
# And rather than fire the staff involved 475(in number representing 74% of all the VAT department staff), 
# KRA instead chose to transfer them. 
# see: https://ieakenya.or.ke/blog/policy-lessons-from-kra-staff-reshuffle/
#         https://www.businessdailyafrica.com/bd/economy/hundreds-of-kra-staff-moved-in-tax-fraud-purge-5038984
#
# We can try and improve this by removing zero rates & exemption from the VAT tax code.
#
# In 2023/24, the tax expenditure(amount foregone due to exemptions/etc) for VAT was
# https://www.treasury.go.ke/wp-content/uploads/2024/11/TAX-EXPENDITURE-REPORT-TER-2024.pdf
# https://www.kra.go.ke/news-center/press-release/2122-kra-records-11-1-growth-in-revenue-collection
vat_tax_expenditure = 510.56 * ( 65.22/100) == 332.98 # kes billion
vat_tax_revenue = 314.157 # kes billion

# So, what VAT rate do we need to apply to all goods in order to generate the same revenue?
value_of_goods_subject_to_vat = vat_tax_revenue/(16/100) == 1963.48 # kes billion. ie, kes 1.9trillion
value_of_goods_not_paying_vat = vat_tax_expenditure/(16/100) == 2081.125 # kes billion

new_vat_rate = (vat_tax_revenue/(value_of_goods_subject_to_vat+value_of_goods_not_paying_vat))*100
new_vat_rate == 7.76 # percent

"""Tax expenditures are revenue forgone attributable to special provisions in the law,
such as exemptions, deductions, credits, and preferential tax rates, that are used as
tools to promote economic activities, support social policies, and address market
failures.""" 
# -https://www.treasury.go.ke/wp-content/uploads/2024/11/TAX-EXPENDITURE-REPORT-TER-2024.pdf 

@komuw
Copy link
Author

komuw commented May 29, 2025

To understand the appropriations bill;

There are about 5 books/pdfs per year:

  1. Program-Based-Budget-Book
  2. Development-Budget-Book-Vol-1
  3. Development-Budget-Book-Vol-2
  4. Development-Budget-Book-Vol-3
  5. Recurrent-Budget-Book-Vol-1
  6. Recurrent-BudgetBook-Vol-2
    This can be downloaded from https://www.treasury.go.ke/budget-books-1/
    Also compare with https://openbudget.or.ke/
  7. Estimates of revenue grants and loans:
  • In each book you want to search for Total Voted Expenditure.
  • The values for Total Voted Expenditure in each Development 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.
  • The values for Total Voted Expenditure in each Recurrent 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.
  • The values for Total Voted Expenditure in the Program-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. eg 4,057,041,057 == 1,276,000,000 + 2,781,041,057
    This also means that the total amounts in Program-Based-Budget-Book also include AIA/loans/grants.
  • In the 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.
  • In Program-Based-Budget-Book look for CONSOLIDATED FUND SERVICES;
    (a) GRAND TOTAL INTERNAL DEBT - INTEREST
    (b) Interest - Internal
    (c) Interest- External
    (d) PENSIONS, SALARIES & ALLOWANCES AND OTHERS
  • In the 2025/2026 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.
  • In the 2025/2026 Program-Based-Budget-Book, the total consolidated 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
  • To find road maintenance levy, search for sub programme Maintenance of Roads under State Department for Roads in Program-Based-Budget-Book. The key outputs are named Transfer 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
    .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment