Fees — computed vs published

Each programme-year's cost is computed course-by-course from the fees book, then compared with UCT's independently published "typical annual fee". Where both sides can be tested, the computation reproduces the published figure — the strongest external check on the whole dataset.

COM median |Δ|

0.00%

EBE median |Δ|

0.45%

FHS median |Δ|

1.80%

In 2025 rands: separating curriculum change from price escalation

Nominal fee trends conflate two things: what the curriculum asks students to take, and UCT's annual fee escalation. The dataset derives its own deflator from the fees books — for each consecutive edition pair, the median fee ratio across every course code present in both books (~3,900 matched codes per pair; the spread is a few hundredths of a percentage point, i.e. the escalation is applied near-uniformly across the fee book). Fee income gain/loss should be read from the real series, not inferred from credits — a dropped course may carry little or no fee.

No Results
Loading...

The nominal series rises 29% over 2021–2026; in 2025 rands the fee is essentially flat — even through the 2024 credit cut, whose dropped credits carried no fee. Credit changes are not a proxy for fee-income changes.

Distribution of differences (comparable fees)

Histograms of the percentage difference between computed and published fees, for the faculties whose fees are published per programme-year. Trimmed to ±25% for readability; the outliers appear in the divergence table below.

Loading...
Loading...
Loading...

Structural divergence is not error

Three faculties publish fees at a coarser grain than the year, so per-year differences are expected by design and labelled, never "corrected":

No Results
  • flat_annual — Law publishes one flat annual fee per LLB stream; the graduate stream's year 1 still matches to the rand.
  • degree_flat — Science and Humanities publish one fee per degree, covering every major; per-major deltas are indicative only.

Largest divergences (comparable fees only)

Worth reading with the findings pages: the biggest gaps are mostly menu-inflated estimates (a choice menu with no printed pick-rule) or clinical years whose rotation codes carry no fee row — documented cases, not noise.

No Results

Elective-slot costs are median-based estimates and are always carried in a separate column (fee_estimated_component_zar) so exact-figure analyses can exclude them.