TaxIntellilytics Stories

Track record FY2015/16 to FY2024/2544 past lines

From Statute to Shillings

The Amendment Lab

Test a change to an excise rate before it is passed: the law in force, the base projected on its own history, the costing with and without a response from taxpayers, the record of past forecasts, who the Act makes pay, what happened to similar changes, and how sure any of it is.

1The lab

Cost a change before it passes

Choose a taxable base the register holds, and the rate in force is read from the Act. Enter the rate you propose and the year it would start. Each step below adds one piece of evidence and says what it rests on; the costing slip keeps the running result, and downloads as a note.

The proposal

The change you want to test, and the base it would fall on in the year it starts.

Draft the change

(a) Motor spirit (gasoline) Ushs. 1750 per litre (b) Gas oil (automotive, light, amber for high speed engines) Ushs. 1430 per litre

Verified law: Wording or a date read in a statutory text, with the version and page named. Excise Duty Act, Sch. 2, item 8(a) and (b), in the wording of the amending Act, in force from 2026-07-01 (ACT-EDA-2026-22). The rate in force is filled in from this wording.

Project the base to the year it starts Derived: Calculated by this register from observed values, with the rule stated.

Petrol imports was 1,453.55 million litres in FY2024/25. Carried forward at its own median growth of 10.1 percent a year, it reaches 1,760.47 by FY2026/27; the middle half of its past growth gives 1,754.81 to 1,897.44, and its full range 1,353.66 to 1,952.41.

05001,0001,5002,000projected2017/182019/202021/222023/242025/262026/27
Solid: million litres, as recorded (data/raw/Customs_Trade.json). Dashed: the median growth carried forward; darker band, the middle half of past growth; lighter band, its full range. Hover, or focus the chart and use the arrow keys, to read each year. Tested on its own past: projecting each year from the years before missed by 8.7 percent at the median, and the outcome fell inside the full range 50 percent of the time.

What it would raise

The arithmetic, how taxpayers might respond, the trade-offs, and how past forecasts actually landed.

Static costing Modelled estimate: A mechanical or model calculation, with every assumption shown.

The rate increase per unit, times the projected base: what the change would raise if no one bought less and nothing else moved. On the central projection, UGX 176.0 bn in FY2026/27.

-50005001,0001,5002,0001,7502,0002,2502,500proposed rate, UGX per litrein force176.0 bn
Drag the amber handle, or focus it and use the arrow keys, to try another rate; every figure on the page follows. Dashed navy: revenue if nothing else changed. Amber: after the response chosen in step 4. FY2026/27, central projection of the base.

How taxpayers respond Unverified: Not yet checked against a primary source. Shown so the gap is visible.

No published price elasticity for this good in Uganda was found in the searches made for this register (21 October 2026). Any response entered is the reader's own assumption and is labelled so.

The trade-offs on one grid Modelled estimate: A mechanical or model calculation, with every assumption shown.

Revenue in FY2026/27, UGX bn, for half, all, one and a half and twice the proposed increase, against responses of the taxable base from none to a fall of ten percent. The row and column of the current choice are outlined. Where a larger rise meets a larger fall, the extra revenue shrinks; a cell below zero means the change would lose revenue. Click a cell to make it the proposal.

Revenue by proposed rate and response of the base
Rate (UGX per litre)no response-1%-2.5%-5%-10%
1,800
1,850
1,900
1,950

Read it against the track record Reported yield: What URA attributes to a measure after the year. An official attribution, not a causal estimate.

Across 10 past excise lines with an official forecast and a URA-reported yield, the median delivered 111 percent of its forecast, and the middle half between 92 and 131 percent. Applied to this costing, that is UGX 162.1 bn to UGX 230.5 bn. A reported yield is URA's own attribution, not a causal estimate.

0%50%100%150%200%+forecast metmedian 111%Excise duty of UGX 200 per litre of coo…FY2018/191,328%Excise duty measuresFY2015/16139%Levy on mobile moneyFY2018/19137%Excise duty measuresFY2018/19114%Excise duty measuresFY2024/25111%Excise duty measuresFY2017/18111%Excise duty measuresFY2021/2296%Excise duty measuresFY2020/2191%Daily excise duty of UGX 200 on over-th…FY2018/1917%Excise duty measuresFY2019/200%
Each row is a past excise line with an official forecast and a URA-reported yield, ranked by what it delivered; red where it fell short. Shaded: the middle half of the lines; dashed amber: the median. The scale stops at 200 percent and a line beyond it carries its value. Hover or tab through the rows to read the forecast and the yield.

Who bears it

Who the law makes pay, which households end up paying, and what became of changes like this one.

Who pays Verified law: Wording or a date read in a statutory text, with the version and page named.Modelled estimate: A mechanical or model calculation, with every assumption shown.

  • Excise duty, in the case of an imported excisable good, is to be paid by the person importing the excisable good.

    Excise Duty Act, Cap 336, s. 3(2)(c) (ULII-EDA-2025).

That is the legal incidence: who must account to URA. Who finally bears the tax depends on how much reaches the price and on who buys the good. A published microsimulation of Uganda's excise (WIDER-2020-70) shows how each tenth of households, from the poorest to the richest, splits its excise bill between goods.

0%20%40%60%80%12345678910poorest tenthrichest tenth
Petrol imports: share of each consumption decile's excise duty paid on vehicle fuel. UGAMOD v1.4, a static tax-benefit microsimulation on the UNHS 2016/17 survey uprated to 2019: no behavioural response, full compliance, constant budget shares. WIDER-2020-70, Table A2, PDF page 23.
  • In the poorest tenth of households, excise duty is about 0.5 percent of consumption. (WIDER-2020-70, Figure 8, PDF page 12)
  • In the richest tenth, excise duty is about 2 percent of consumption. (WIDER-2020-70, Figure 8, PDF page 12)
  • The richest tenth pays 52 percent of all excise duty and accounts for about 29 percent of all consumption. (WIDER-2020-70, Figure 7, PDF page 11)
  • Only 6 percent of households in the 2012/13 survey recorded buying fuel; the authors allocate about 90 percent of fuel excise to businesses and government, whose costs may reach households through prices the study does not trace. (CGD-WP443-2016, Section 3.3.3, PDF page 23)
  • The fuel excise creates no direct burden for poor or near-poor households, because lower-income households buy no fuel directly. (CGD-WP443-2016, Conclusions, PDF page 38)
  • Over 95 percent of households paid at least one indirect tax, and the burden of VAT and excise was roughly neutral with respect to consumption. (CGD-WP443-2016, Conclusions, PDF page 37)

What happened to changes like this one Observed: A value or event as an official source records it, copied without calculation.

  1. Excise duty on petrol and diesel raised by UGX 50 per litre

    FY2015/16 · highest rung: reported yield · forecast none found · URA reported UGX 82.1 bn

    Later: Both raise the excise duty on petrol and diesel in Schedule 2, item 8. The steps between them were not read.

    Later: A FY2018/19 budget proposal on the same item; enactment not confirmed.

  2. Excise duty on petrol set at UGX 1,100 and on diesel at UGX 780 per litre

    FY2016/17 · highest rung: verified law · forecast none found · URA reported no figure

    Later: Both substitute Schedule 2, item 8: the 2018 Act raises the 2016 rates by UGX 100 per litre.

  3. Excise duty on petrol and diesel raised by UGX 100 per litre

    FY2018/19 · highest rung: official forecast · forecast UGX 196.4 bn · URA reported no figure

    Later: A FY2018/19 budget proposal on the same item; enactment not confirmed.

    Later: Both substitute Schedule 2, item 8: the 2018 Act raises the 2016 rates by UGX 100 per litre.

  4. Additional UGX 100 per litre on petrol and diesel

    FY2021/22 · highest rung: reported yield · forecast none found · URA reported UGX 204.2 bn

    Later: Both raise the excise duty on petrol and diesel in Schedule 2, item 8. The steps between them were not read.

  5. Excise duty on petrol raised to UGX 1,750 and on diesel to UGX 1,430 per litre

    FY2026/27 · highest rung: official forecast · forecast UGX 450.0 bn · URA reported no figure

How sure

A rule-based rating of each part of the costing, so the uncertainty travels with the number.

How sure is this?

Uncertainty rating by part
PartRating
Base dataLow
ProjectionMedium
BehaviourVery high
Track recordMedium
OverallVery high
  • Base data: Low with a clean series; High where a year used is flagged as a likely break.
  • Projection: Low when the back-test's median error is under 5 percent, Medium under 10, High under 20, Very high above 20 or when it could not be tested; one step higher when projecting more than two years ahead.
  • Behaviour: Medium with a published Ugandan estimate; High with the reader's own assumption; Very high when no response is assumed for a rate rise, since some response is near certain and its size is unknown.
  • Track record: Medium when a range rests on at least the minimum number of similar measures; Very high when it cannot be shown.
  • Overall: the highest of the four, as no strength in one part offsets a weakness in another.
2Read this first

A range from history, not a prediction

The register holds 44 past lines, single measures and tax-head totals from FY2015/16 to FY2024/25, with both an official forecast and a reported yield in shillings. Across all of them the median delivered 97 percent of its forecast, and 23 of 44 fell short. Single measures alone are more scattered: the middle half delivered between 8 percent and 137 percent of forecast.

So the tool does two honest things. It works out what a rate change would raise if nothing else changed, on a base the repository actually holds. Then it shows what forecasts of that kind have tended to deliver, and refuses to show a range when fewer than five similar lines exist. It does not model how taxpayers respond, and a reported yield is URA's own attribution, not a causal estimate.

3Does it hold up?

Would the lab have got it right?

The fairest test is to run the lab as if in the year before a past change, knowing only the data then available, and set the result beside what the Ministry forecast and what URA later reported. For uGX 100 more per litre on petrol and diesel (FY2021/22), the lab would have costed UGX 224.4 billion (UGX 220.1 billion to UGX 241 billion); URA reported UGX 204.2 billion, 91 percent of the lab's figure. Two other past measures cannot be replayed: the base has fewer than four clean years before them, and the lab refuses to project from less.

The lab re-run on past measures
MeasureData known toLab, UGX bnOfficial forecast, UGX bnURA reported, UGX bn
UGX 100 more per litre on petrol and diesel (FY2018/19 budget proposal)FY2017/18history too short196.4 (MoFPED)none printed
UGX 100 more per litre on petrol and diesel (FY2021/22)FY2020/21224.4 (220.1 to 241)none found204.21
UGX 200,000 per motorcycle at first registration (FY2018/19)FY2017/18history too short8 (MoFPED)none printed

The projections, tested on each base's own past

Projection back-tests by base
BaseYears testedMedian error, percentOutcome inside the full range
Petrol and diesel imports66.750 percent
Petrol imports68.750 percent
Diesel imports67.950 percent
Beer sales410.6100 percent
Spirits sales69.6100 percent
Soft drink sales472.575 percent
Sugar sales243.9100 percent
Cement sales335.567 percent
Motorcycles registered for the first time429.150 percent
Excise on phone talk time64100 percent
Excise on bank charges67.683 percent
Excise on mobile money transfers68.667 percent
Excise on cigarettes622.567 percent

Each year is projected from the years before it only, and compared with what happened. A base whose projections miss widely carries a higher uncertainty rating in the lab.

Three past measures, rerun on the base of the year before

Static estimate against the official forecast and the reported yield
MeasureBaseStatic estimate, UGX bnOfficial forecast, UGX bnURA reported, UGX bn
UGX 100 more per litre on petrol and diesel (FY2018/19 budget proposal)1,923.84 million litres, FY2017/18192.4196.4 (MoFPED)none printed
UGX 100 more per litre on petrol and diesel (FY2021/22)2,157.94 million litres, FY2020/21215.8none found204.21
UGX 200,000 per motorcycle at first registration (FY2018/19)42,228 motorcycles, FY2017/188.58 (MoFPED)none printed

UGX 100 more per litre on petrol and diesel (FY2018/19 budget proposal): the static estimate is UGX 192.4 billion, 98 percent of the official forecast; URA printed no yield in shillings, so the estimate cannot be checked against an outcome.

UGX 100 more per litre on petrol and diesel (FY2021/22): the static estimate is UGX 215.8 billion; URA later reported 94.6 percent of the static estimate.

UGX 200,000 per motorcycle at first registration (FY2018/19): the static estimate is UGX 8.5 billion, 105.6 percent of the official forecast; URA printed no yield in shillings, so the estimate cannot be checked against an outcome.

These are mechanical checks on three measures with a real base, not a validation of the method. Where the base series jumps implausibly from one year to the next, the calculator flags the year rather than hiding it.

4The full track record

Every past forecast against what URA reported, and what else was moving

1. A static estimate on a real base

A rate change times the base the repository holds for the year before, with nothing else changing: no one buys less, smuggles more or pays late. Real responses usually make the true yield smaller. Modelled estimate: A mechanical or model calculation, with every assumption shown.

Base, FY2024/252,720.93 million litres

Times the change in the rate× 100 UGX per litre

A year's yield, before any responseUGX 272.1 bn

Import volumes as computed in the repository's customs sheet from URA data book figures; the sheet also carries a directly reported petrol volume for three years only. Source: data/raw/Customs_Trade.json (URA Annual Data Book; computed volumes).

2. What similar measures delivered against their forecasts

Each dot is a past measure or tax-head line with an official forecast and a URA reported yield, placed by the yield over the forecast. Choose the kind of measure; the range shown is the middle half of what that class delivered, applied to your forecast. It is a track record, not a prediction, and a reported yield is URA's attribution, not a causal estimate. Derived: Calculated by this register from observed values, with the rule stated.

10 similar lines. The median delivered 111% of its forecast; the middle half delivered between 92% and 131%. 4 of 10 came in below the forecast.

Enter a forecast to read it through this record.

1%10%50%100%200%500%1,000%3,000%delivered the forecastthe classthe restEXCISEDUVATMEASUINCOMETAENVIRONMVATMEASUEXCISEDUINCOMETACOMMONEXINCOMETAEXCISEDUVATMEASUCUSTOMSMDAILYEXCLEVYONMOADMINISTINCOMETAEXCISEDUVATMEASUINTERNATOTHERMEAELECTRONWITHHOLDWITHHOLDDRUGSANDCOMMONEXINCOMETAEXCISEDUCUSTOMSMADMINISTEXCISEDUVATMEASUCUSTOMSAADMINISTEXPORTLELEVYOFUSEXPORTLESTAYOFTHIMPORTDUADMINISTVATMEASUVATMEASUEXCISEDUNONTAXREreported yield as a share of the official forecast, logarithmic; note size is the forecast; values beyond 1% and 3,000% sit at the edge

Class median 111%; middle half 92% to 131%.

Each note is one past line, a promise of revenue sized by its forecast: blue notes are the chosen class, above the rule, grey notes the rest; the shaded band is the class's middle half and the blue line its median. Sources: URA Annual Revenue Reports FY2015/16 to FY2022/23 and MoFPED's FY2018/19 Citizen's Guide, as recorded in the register.
The 10 lines in the chosen class
FYLineForecast, UGX bnReported, UGX bnShare of forecast
2015/16Excise duty measures147203.87138.7%
2017/18Excise duty measures24.527.09110.6%
2018/19Excise duty measures669.7761.09113.7%
2018/19Daily excise duty of UGX 200 on over-the-top (OTT) services28449.5217.4%
2018/19Levy on mobile money115157.23136.7%
2018/19Excise duty of UGX 200 per litre of cooking oil339.841,328%
2019/20Excise duty measures16.9400%
2020/21Excise duty measures305.78277.8990.9%
2021/22Excise duty measures293.2280.6695.7%
2024/25Excise duty measures217.82241.6110.9%

3. What else was moving that year

A measure's reported yield rides on the economy and on administration as much as on the law. Before reading any yield as the effect of a change, look at the year it took effect. Observed: A value or event as an official source records it, copied without calculation.

Economic and administrative conditions by financial year
FYReal GDP growth, %Inflation, %UGX per USD (change, %)Imports, growth %Fuel volume growth, %Arrears recovered, UGX bnRefunds paid, UGX bnAlso that year
2015/164.657.63,4367203
2016/173.85.73,507 (2.1)-16.683.67321175
2017/186.23.43,651 (4.1)30.3711.66598204
2018/196.83.13,750 (2.7)51.231.94695340
2019/203.133,729 (-0.6)-8.24-1.56726375COVID-19 disruption; Digital tax stamps begin
2020/213.32.53,697 (-0.9)31.3310.811,025387COVID-19 disruption; EFRIS registration begins
2021/224.583.43,573 (-3.4)-14.241,197440
2022/235.348.83,776 (5.7)30.121,251543
2023/246.143.163,779 (0.1)-0.061,613637
2024/256.33.453,710 (-1.8)36.071,666723
  • Real GDP growth, headline inflation, average exchange rate, imports and fuel volume growth: data/raw/MacroEconomic.json (URA Annual Data Book and UBOS).
  • Arrears recovered (domestic taxes and customs): data/raw/Enforcement.json (URA Annual Data Book).
  • Tax refunds paid: data/raw/Customs_Trade.json (URA Annual Data Book).
  • COVID-19 disruption: FY2019/20 and FY2020/21, the years the brief for this register names. Digital administration: the implementation dates recorded in the register's events.