Back to work
A business competition index across 38 provinces
Built a national composite index from a cross-province survey, then moved the whole computation off spreadsheets and onto a platform that can be re-run every cycle.
- Year
- 2025
- Sector
- Public sector regulator
- Our role
- Sampling design, index construction, platform build
Problem
- The index was rebuilt every year by a different person, with computation steps scattered across many spreadsheet files.
- Year-on-year differences were hard to explain: it was unclear whether they came from changes on the ground or changes in how the number was computed.
- Sample allocation across provinces was not explicitly tied to the precision being targeted.
Approach
- Rewrote the index framework: dimension definitions, normalisation scheme, and weighting rationale documented as a single reference.
- Designed the 38-province sample allocation against a precision target, with a repeatable selection procedure.
- Isolated the computation engine into its own service so the methodology can be audited without touching the interface.
- Built a dashboard surfacing scores by dimension and region, with indicator definitions attached to the numbers.
Outcome
- The next index cycle runs by re-running the pipeline rather than rebuilding the computation.
- Score movements between periods can be traced back to the data changes that caused them.
- Sensitivity analysis showed how far rankings move when weights change, turning the weighting discussion from argument into numbers.
Stack
- Next.js
- FastAPI
- PostgreSQL
- Docker
Have a question that needs a defensible answer?
Tell us the context. If the question is not sharp yet, sharpening it is the first part of the work.
