A multi-tenant Flask app that gives every South African stokvel (informal savings group) the record-keeping, transparency, and forward planning that a bank account alone doesn't provide — group membership, a shared ledger, live statistical forecasting per member, and admin-controlled payouts, all isolated per group and backed by a real database
# Stokvel Forecasting Platform
A multi-tenant Flask app that gives every South African stokvel (informal
savings group) the record-keeping, transparency, and forward planning that
a bank account alone doesn't provide — group membership, a shared ledger,
live statistical forecasting per member, and admin-controlled payouts, all
isolated per group and backed by a real database instead of a spreadsheet.
## The problem
Stokvels move an estimated R50+ billion a year in South Africa, and an
estimated 1 in 4 adults belongs to one. Structurally, though, most stokvels
are still run the way they were forty years ago: a treasurer's notebook, a
WhatsApp group, and a spreadsheet that only one person understands. That
creates real, recurring problems:
- **No shared source of truth.** Members have to trust the treasurer's word
on who's paid, who hasn't, and what the group's balance actually is —
there's no record they can check themselves.
- **Disputes are hard to resolve.** When a member disputes a contribution
or a payout, "check the notebook" isn't a great audit trail, and there's
no record of who approved what, or when.
- **No way to see trouble coming.** A member who's quietly missed two
contributions in a row looks the same as one who's on track, right up
until the group needs the money and it isn't there.
- **Payouts rely on manual coordination.** Rotation order, approval
thresholds, and "has everyone agreed" tend to live in someone's head or
a chat thread, not in a system that enforces them.
- **Onboarding a new member is manual.** Someone has to explain the rules,
add them to every group chat, and manually back-fill their history.
This app addresses each of those directly: a shared, per-group ledger that
every member can see; role-based admin controls with an audit log for every
state change; a live forecast per member that flags irregular contribution
patterns before they become a shortfall; a configurable withdrawal-approval
workflow instead of an ad-hoc group deci …