Last active
February 6, 2025 09:00
-
-
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 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. | |
# 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. | |
# |
Is KES 12k per term feasible? Let's do some back of the envelope calculations;
students_per_class = 30 # UNESCO recommends 25, ke-govt recommends 40
# teacher earning KES 40k per month. TSC basic pay for p2 teacher is 22k-28k.
# https://teachersnews.co.ke/tsc-all-current-job-groups-and-corresponding-salary-scales/
teacher_cost_per_student_per_term = 40_000 * 12 / (3 * students_per_class)
# grade 4 has 8 subjects. Each textbook at KES 450.
# https://officemart.co.ke/catalogue/klb-visionary-mathematics-grade-4_7817/
textbooks_per_student_per_term = 8 * 450 / 3
# 1 exercise/writing book per subject per term, at KES 75 each.
# https://officemart.co.ke/catalogue/kartasi-exercise-book-a5-200pg-rl-84_767/
exercise_book_per_student_per_term = 8 * 75
# Let's assume there is a headteacher plus 5 other extra workers.
# Also assume there are 6 classes(grade 1-6) each with two streams in total.
extra_worker_cost_per_student_per_term = (
(
# head teacher
60_000
+
# 5 extra other workers(eg watchman)
# minimum wage is 15k in urban areas.
(20_000 * 5)
)
* 12
) / (3 * students_per_class * 6 * 2)
rent_per_student_per_term = 10_000 * 12 / (3 * students_per_class) # a room for 30 pupils somewhere in the estates.
cost = (
teacher_cost_per_student_per_term
+ textbooks_per_student_per_term
+ exercise_book_per_student_per_term
+ extra_worker_cost_per_student_per_term
+ rent_per_student_per_term
)
# let's say owner takes a 20% profit margin.
profit = (20 / 100) * cost # profit before tax
# Zacchaeus has to be paid. I'm aproximating.
# https://nation.africa/kenya/blogs-opinion/blogs/it-is-wrong-to-think-private-schools-don-t-pay-tax-at-all-4475136
tax = (30 / 100) * profit
# I've left out some other costs like, uniforms, pens, etc.
# These are either too small(pens) or are not strictly neccesary for schooling(uniforms)
price_per_student_per_term = int(cost + profit + tax)
assert price_per_student_per_term == 12_908 # KES 12k per student per term
So, it's kind of possible. A good entrepreneur could play around with some variables here and there.
For university education;
# https://theconversation.com/kenyas-public-universities-financing-model-overhaul-fails-to-address-biggest-challenge-funding-228320
# https://www.businessdailyafrica.com/bd/corporate/education/student-numbers-at-private-varsities-fall-state-funding-drought--4629682
number_of_students_in_public_universities = 482_586 # another 96,460 in private unis
# Budgetary allocation for higher education:
# page 214 of the supplementary estimates.
# https://mwangocapital.com/wp-content/uploads/2024/07/fy-24-25-supplementary-1-.pdf
state_Department_for_Higher_Education_and_Research = 120_392_899_167 # kes 120b
# https://www.standardmedia.co.ke/health/education/article/2001499185/153292-students-risk-missing-university-admission-over-helb-budget-cuts
helb = 31.18 * 1_000_000_000
university_fund = 16.921 * 1_000_000_000
total_spending = state_Department_for_Higher_Education_and_Research + helb + university_fund
spending_per_student_per_yr = int(total_spending/number_of_students_in_public_universities)
assert spending_per_student_per_yr == 349_147 # kes 349k
#
# differentiated unit cost(DUC):
# https://www.linkedin.com/pulse/interrogating-kenyas-new-public-university-funding-model-nashon-adero/
# https://www.universitiesfund.go.ke/differentiated-unit-cost-model/
#
For technical/vocational/college(non-university) education;
# page 200 of the supplementary estimates.
# https://mwangocapital.com/wp-content/uploads/2024/07/fy-24-25-supplementary-1-.pdf
State_Department_for_Technical_Vocational_Education_and_Training = 27_515_786_255 # 27billion
# page 867 of the supplementary estimates.
# 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.
# 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,
teacher_mgmnt_tertiary = 4_533_870_504
governance_and_standards_tertiary = int((1.34 / 100) * 1_104_431_830)
assert governance_and_standards_tertiary == 14_799_386
general_admin_tertiary = int((1.34 / 100) * 9_107_215_823)
assert general_admin_tertiary == 122_036_692
total_spending = (
State_Department_for_Technical_Vocational_Education_and_Training
+ teacher_mgmnt_tertiary
+ governance_and_standards_tertiary
+ general_admin_tertiary
)
assert total_spending == 32_186_492_837
# https://www.the-star.co.ke/news/realtime/2024-05-21-kuccps-2024-breakdown-for-varsity-tvet-and-college-placements/
number_of_kcse_graduates_2023 = 895_232 # of which 201,146 had c+ and above, whereas 694,086 had grades between e-c. the former are eligible for university
number_kcse_for_colleges = 694_086
# ie, assuming college is 2yrs on average, and assuming all from kcse join colleges/tvets/etc.
# also assuming we want all students(in public & private colleges)
total_colleges_students = 694_086 * 2
spending_per_student_per_yr = int(total_spending / total_colleges_students)
assert spending_per_student_per_yr == 23_186 # KES 23k per year.
For health;
# page 318 of the supplementary estimates.
# https://mwangocapital.com/wp-content/uploads/2024/07/fy-24-25-supplementary-1-.pdf
State_Department_for_Public_Health_and_Professional_Standards = 26_243_922_035 # KES 26billion
# page 299 of the supplementary estimates.
State_Department_for_Medical_Services = 91_991_383_489 # KES 91billion
# The govt has said it expects SHIF to collect 148billion depending on how informal sector
# will contribute; https://www.the-star.co.ke/news/2024-06-19-sha-tax-to-raise-sh148-billion-in-one-year-health-ministry/
#
# NHIF in 2023 collected KES 82billion and paid out 74billion in claims
# https://www.the-star.co.ke/news/2024-06-19-sha-tax-to-raise-sh148-billion-in-one-year-health-ministry/
#
# In other places, the govt has said it expects 133billion
# https://www.businessdailyafrica.com/bd/economy/private-insurers-to-process-shif-claims--4506234
shif_tax = 133_000_000_000 # 133billion
total_spending = (
State_Department_for_Public_Health_and_Professional_Standards
+ State_Department_for_Medical_Services
+ shif_tax
)
assert total_spending == 251_235_305_524 # KES 250b
# KNBS has projections for Kenya population for various years.
# For 2024 it is 52million
# https://new.knbs.or.ke/wp-content/uploads/2023/09/2019-Kenya-population-and-Housing-Census-Summary-Report-on-Kenyas-Population-Projections.pdf
kenya_population = 52_428_290
spending_per_citizen_per_yr = int(total_spending / kenya_population)
assert spending_per_citizen_per_yr == 4_791 # KES 4k per year.
# Is 4k/yr too little or too much?
# Let's look at the free market for guidance.
# Equity bank offers a product called equihealth
# https://equitygroupholdings.com/ke/insure/equihealth
# https://businesstoday.co.ke/equihealth-an-affordable-group-health-insurance-by-equity-bank/
# Where a family gets health insurance for a shared limit of KES 300k.
# The premiums is KES 15,000 for the principal plus five dependants.
# So premiums per person per year is 15000/6. ie, KES 2,500 per year.
#
# So the kenyan government could purchase a much better health policy for each kenyan
# on the free market using the same amount of money that is already allocated to health.
# And we haven't even mentioned that the govt would get a much much better deal
# because it would have 'economies of scale' in its favour.
#
# In fact, just from SHIF alone; allocation per citizen is 133b/52m
# which comes to KES 2536 per citizen per year. This amount is still
# more than enough to get the free market policy mentioned previously.
#
# Another way of thinking about it is that we could cut the health budget almost by half
# from KES 4,791 to KES 2,500 per person and still end up with far better healthcare than we have right now.
#
# Jubilee insurance also has a product that starts at KES 12,600 p/a for a family of 5. That's KES 2520 p/a per person
# It has an inpatient limit of 250k, maternity of 40k and last expense of 20k
# https://jubileeinsurance.com/ke/product/cover-bora-medical-cover/
For roads;
#
# The total length of tarmac/bitumen road in Kenya(yr 2024) is: 25,410km.
# See:
# 1. https://www.knbs.or.ke/wp-content/uploads/2024/05/Chapter-11-Construction-Sector-Tables.xlsx (table 11.10 & 11.11)
# 2. https://africacheck.org/fact-checks/blog/analysis-road-not-travelled-conflicting-data-threatens-kenya-president-uhuru
total_length_of_tarmac = 25_410 # 25,000 kilometers
# The cost of periodic maintenance of tarmac in year 2024 is KES ~14million/km
# ie, to lay an 35mm(3.5cm/1.3inch) of AC Overlay(asphalt concrete overaly)
# See:
# 1. https://krb.go.ke/RMLF/RMLF_2024.pdf (page 6)
# 2. https://www.knbs.or.ke/wp-content/uploads/2024/05/Chapter-11-Construction-Sector-Tables.xlsx (table 11.10 & 11.11)
# 3. https://integrum.co.ke/road-construction-costs-per-km-in-kenya-2021/
cost_of_maintenance_of_tarmac_per_km = 14_000_000 # KES 13.28m per km.
# Tarmac is estimated to last ~20yrs before a major rehabilitation is needed.
# And a 35mm overalyed road will last about ~15yrs
# See:
# 1. https://www.engineering.com/how-many-years-is-the-average-life-time-of-standard-asphalt-pavementsdoes-it-contain-partial-rehabilitation/
# 2. https://onlinepubs.trb.org/Onlinepubs/trr/1987/1117/1117-017.pdf
#
# Assuming, for whatever reason, Kenyan roads need maintenance every ~8yrs,
maintenance_cadence = 8 # ie, a road will require maintenance every 8years.
total_cost_of_maintenance_of_tarmac_per_yr = (
total_length_of_tarmac * cost_of_maintenance_of_tarmac_per_km
) / maintenance_cadence
assert total_cost_of_maintenance_of_tarmac_per_yr == 44_467_500_000
# ie, you require KES 44billion to maintain tarmac roads per year.
# The cost of constructing a new road in year 2024 is KES 110 million/km
# 1. https://krb.go.ke/RMLF/RMLF_2024.pdf
# 2. https://www.knbs.or.ke/wp-content/uploads/2024/05/Chapter-11-Construction-Sector-Tables.xlsx (table 11.10 & 11.11)
cost_of_new_road_per_km = 110_000_000 # KES 110m per km.
# If we set ourselves the audacious task of building 500 km/yr of new tarmac roads.
# (For reference: Kibaki built about ~250km/yr and Uhuru did ~1000km/yr.)
# See:
# 1. https://africacheck.org/fact-checks/blog/analysis-road-not-travelled-conflicting-data-threatens-kenya-president-uhuru
km_of_new_roads_per_yr = 500 # km
total_cost_of_new_roads_per_yr = cost_of_new_road_per_km * km_of_new_roads_per_yr
assert total_cost_of_new_roads_per_yr == 55_000_000_000
# ie, you require KES 55billion to construct new tarmac roads per year.
total_spending_on_tarmac_roads_per_yr = (
total_cost_of_maintenance_of_tarmac_per_yr + total_cost_of_new_roads_per_yr
)
assert total_spending_on_tarmac_roads_per_yr == 99_467_500_000
# ie, you require KES 99billion to both construct new roads AND maintain existing ones per year.
# Do we have enough money to do that?
# The road maintenance levy collected KES 84billion in 2023/24(at KES 18/ltr).
# In 2024/25 it is projected to collect KES 115billion (at KES 25/ltr).
# See:
# 1. https://www.businessdailyafrica.com/bd/economy/where-rise-in-road-maintenance-levy-will-hurt-most-4692312
road_maintenance_levy_collection = 115_000_000_000 # KES 115billion per year
road_levy_surplus = road_maintenance_levy_collection - total_spending_on_tarmac_roads_per_yr
assert road_levy_surplus == 15_532_500_000 # KES 15billion
# Thus the road maintenance levy is enough to cater for the needs of both:
# (a) building new tarmac roads and
# (b) maintaining all existing tarmac roads.
# (c) their will be KES 15billion remaining.
# Kenya additionaly has about ~200,000km of un-tarmacked(earth) roads. What to do with those?
# See:
# 1. https://krb.go.ke/RMLF/RMLF_2024.pdf
#
# According to the the 2024/25 supplementary estimates I.
# See(page 221):
# 1. https://mwangocapital.com/wp-content/uploads/2024/07/fy-24-25-supplementary-1-.pdf
#
# the state department of roads has been assigned the following monies.
Construction_of_Roads_and_Bridges = 72_785_576_625 # KES 72billion
Rehabilitation_of_Roads = 36_577_853_501
Maintenance_of_Roads = 69_536_000_000
General_Administration_Planning_and_Support_Services = 5_942_520_610
total_roads_budget_per_yr = (
Construction_of_Roads_and_Bridges + Rehabilitation_of_Roads + Maintenance_of_Roads
)
# I have not included the general admin in the total, since I think those are salaries for the rank & file at the ministry.
assert total_roads_budget_per_yr == 178_899_430_126 # KES 178billion per year.
# The cost of periodic maintenance of earth roads(ie, Gravelling) in year 2024 is KES ~4.83 million/km.
# See:
# https://krb.go.ke/RMLF/RMLF_2024.pdf
cost_of_maintenance_of_earth_roads_per_km = 4_830_000 # KES 4.83m per km.
total_length_of_earth_roads = 213_712 # km
total_cost_of_maintenance_of_earth_roads_per_yr = (
total_length_of_earth_roads * cost_of_maintenance_of_earth_roads_per_km
) / maintenance_cadence
assert total_cost_of_maintenance_of_earth_roads_per_yr == 129_028_620_000
# KES 129billion. # ie, you require KES 129billion to maintain earth roads per year.
roads_budget_surplus = total_roads_budget_per_yr - total_cost_of_maintenance_of_earth_roads_per_yr
assert roads_budget_surplus == 49_870_810_126 # KES 49billion
# Thus the roads budget of KES 178billion is more than enough to maintain all earth roads.
# and have a surplus of 49billion.
total_roads_surplus = road_levy_surplus + roads_budget_surplus
assert total_roads_surplus == 65_403_310_126 # KES 65billion
# Thus the total surplus from roads is 65billion.
# In fact, if we changed so that we recarpet all tarmac roads every 5years(instead of 8)
# and we still re-gravel all earth roads every 8years.
# We would still have a surplus of KES 38billion
# PS:
# The AC(asphalt concrete overal) overlay process is;
# (a) Preparation: existing road surface is cleaned & repaired to ensure proper adhesion of the new layer.
# (b) Tack Coat: sticky asphalt emulsion(tack coat) is applied to existing surface 2 bond the new layer.
# (c) Placement: 35mm thick layer of asphalt is spread evenly over the prepared surface.
# (d) Compaction: newly laid asphalt is compacted using rollers.
# (e) Cooling: asphalt concrete is allowed to cool and harden.
# See:
# https://www.youtube.com/watch?v=kWCJUQzre0o
# https://www.nature.com/articles/s41467-024-49193-1 (Efficient self-organization of informal public transport networks)
judiciary:
according to IEA kenya, judiciary budget should be KES 40 bn
# https://x.com/LeoKemboi/status/1819419715225186735
# https://ieakenya.or.ke/?wpdmdl=2925
Tax to gdp ratios:
tax_revenue_2012 = 707.4 # billion # https://www.kra.go.ke/images/publications/202021-annual-revenue-performance-final.pdf
tax_revenue_2017 = 1340 # billion #ie, 1.340 trn # https://www.kra.go.ke/images/publications/Revenue-Performance-Report-2018-19.pdf
tax_revenue_2023 = 2407 # billion #ie, 2.407 trn # https://www.kra.go.ke/news-center/press-release/2122-kra-records-11-1-growth-in-revenue-collection
# https://x.com/komu_wairagu/status/1790721073849196944
govt_contribution_to_gdp_2012 = 25 # percent
# https://x.com/komu_wairagu/status/1790721073849196944
govt_contribution_to_gdp_2017 = 40 # percent
# https://www.youtube.com/watch?v=G0OoDb6V-SI&t=2994
govt_contribution_to_gdp_2023 = 50 # percent
# We are using nominal GDP figures since the tax revenues are also nominal.
gdp_2012 = 4_767.191 # billion # nominal # https://www.centralbank.go.ke/annual-gdp/
gdp_2017 = 8_483.396 # billion # nominal # https://www.centralbank.go.ke/annual-gdp/
gdp_2023 = 15_108.806 # billion # nominal # https://www.centralbank.go.ke/annual-gdp/
gdp_without_govt_contribution_to_gdp_2012 = gdp_2012 - (
(govt_contribution_to_gdp_2012 / 100) * gdp_2012
)
gdp_without_govt_contribution_to_gdp_2017 = gdp_2017 - (
(govt_contribution_to_gdp_2017 / 100) * gdp_2017
)
gdp_without_govt_contribution_to_gdp_2023 = gdp_2023 - (
(govt_contribution_to_gdp_2023 / 100) * gdp_2023
)
tax_to_gdp_with_govt_contribution_to_gdp_2012 = (float(tax_revenue_2012) / float(gdp_2012)) * 100
tax_to_gdp_with_govt_contribution_to_gdp_2017 = (float(tax_revenue_2017) / float(gdp_2017)) * 100
tax_to_gdp_with_govt_contribution_to_gdp_2023 = (float(tax_revenue_2023) / float(gdp_2023)) * 100
tax_to_gdp_without_govt_contribution_to_gdp_2012 = (
float(tax_revenue_2012) / float(gdp_without_govt_contribution_to_gdp_2012)
) * 100
tax_to_gdp_without_govt_contribution_to_gdp_2017 = (
float(tax_revenue_2017) / float(gdp_without_govt_contribution_to_gdp_2017)
) * 100
tax_to_gdp_without_govt_contribution_to_gdp_2023 = (
float(tax_revenue_2023) / float(gdp_without_govt_contribution_to_gdp_2023)
) * 100
print(
f"""
tax_to_gdp_with_govt_contribution_to_gdp_2012: {tax_to_gdp_with_govt_contribution_to_gdp_2012:.2f}%
tax_to_gdp_with_govt_contribution_to_gdp_2017: {tax_to_gdp_with_govt_contribution_to_gdp_2017:.2f}%
tax_to_gdp_with_govt_contribution_to_gdp_2023: {tax_to_gdp_with_govt_contribution_to_gdp_2023:.2f}%
tax_to_gdp_without_govt_contribution_to_gdp_2012: {tax_to_gdp_without_govt_contribution_to_gdp_2012:.2f}%
tax_to_gdp_without_govt_contribution_to_gdp_2017: {tax_to_gdp_without_govt_contribution_to_gdp_2017:.2f}%
tax_to_gdp_without_govt_contribution_to_gdp_2023: {tax_to_gdp_without_govt_contribution_to_gdp_2023:.2f}%
"""
)
# Output:
# tax_to_gdp_with_govt_contribution_to_gdp_2012: 14.84%
# tax_to_gdp_with_govt_contribution_to_gdp_2017: 15.80%
# tax_to_gdp_with_govt_contribution_to_gdp_2023: 15.93%
# tax_to_gdp_without_govt_contribution_to_gdp_2012: 19.79%
# tax_to_gdp_without_govt_contribution_to_gdp_2017: 26.33%
# tax_to_gdp_without_govt_contribution_to_gdp_2023: 31.86%
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thus the taxpayer/govt spends KES 36k per year per public school learner (KES 12k per term)
All figures are taken from the 2024/25 supplementary estimates I: https://mwangocapital.com/wp-content/uploads/2024/07/fy-24-25-supplementary-1-.pdf