Skip to content
Portfolio — 2026Bulawayo, Zimbabwe

Knowledge Mhodi

Research

000Founder · Researcher · Systems builder
KM
03Live
  • Data & Research
  • AI & Decision Support

“What will life actually cost me?” — a cost-of-living intelligence layer for Zimbabwe.

Role
Founder & builder
Year
2025
Status
Live
zimindex.co.zw
ZiMINDEX home page

Hover to scroll the page

Price observations

Official ZIMSTAT indicators

Automated data collectors

Tariff points reproduced

01The problem

One US dollar can be 26.65 ZiG officially and 40 in cash on the same day, and ZIMSTAT publishes three inflation rates for the same month. Every tool that collapses that into one column throws away the information a household most needs.

In Zimbabwe the price of bread is a number plus a currency plus a rate basis plus a place plus a date. ZiMINDEX keeps all five, and turns them into a personal picture of a household’s month.

02What I built

  1. 01A monthly simulator: home, household, shopping and power worked out line by line, in USD or ZiG, at a named rate.
  2. 02A stepped electricity engine that reproduces the tariff publisher’s own totals at all seven published consumption points, including the 6% rural electrification levy.
  3. 03Eight scheduled collectors for exchange rates, fuel, tariffs, produce and official statistics — running separately so a slow source never blocks a page.
  4. 04An assistant grounded in the same functions the interface uses. It answers the core questions on a deterministic engine with zero API keys, and is tested with grounding, refusal and prompt-injection evals.
  5. 05A community price pipeline that validates, de-duplicates, confidence-scores and moderates contributions — an evidence system rather than a comment box.
  6. 06Bespoke SVG charts that can show currency-era breaks, uncertainty bands and thin data honestly.

03In the wild

ZiMINDEX on a phone

04Decisions that shaped it

01

Every number carries its provenance

Source, method, observation date, currency, rate basis and confidence travel with every figure, and every figure expands into the steps that produced it.

02

Show the hole, don’t fill it

Rent is the largest line in most budgets, and property portals disallow crawling it. So rent is not collected, and the interface shows the gap instead of taking data against a publisher’s wishes.

03

robots.txt is re-read on every run

Not once at build time. A publisher who adds a restriction tomorrow stops being collected tomorrow.

04

A missing rate fails loudly

No currency conversion happens without naming its basis, and a missing rate never silently falls back to another.

05Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • SQLite
  • Turso
  • Drizzle ORM
  • D3
  • Zod
  • LLM integration
  • Vitest
  • Playwright
  • GitHub Actions
  • Docker
  • Vercel