Inspiration
According to Rwanda's central bank, Agriculture employs about 70% of the population and drives roughly 25% of GDP, yet as of June 2025 it accounted for just 2.7% of total bank loans. At the release of the September 2025 Monetary Policy and Financial Stability Statement, BNR Governor Soraya Hakuziyaremye mentioned that "we were half happy that at least we see agriculture now coming in the top ten sectors that are financed. But as we've seen, the financing is still less than 3 per cent of the total outstanding loan portfolio." In MINAGRI's National Agriculture Financial Services Strategy (NAFSS 2024-2028), it states that one of the reasons is due to the lack of data on farmers and the viability of their activities which hinders them from getting loans.
That is the problem that Imboni aims to solve. Lenders who already have capital have no reliable way to see a smallholder farmer's creditworthiness .
Mobile money reaches over 85% of adults in Rwanda. That transaction history is a data source Imboni aims to turn into a credit signal for smallholder farmers using AI and ML models.
What it does
Imboni is a credit-scoring engine for MFIs and SACCOs. The smallholder farmer are the subject of the product. The MFI or SACCO holds capital it can't safely deploy into a market covering most Rwandan households, because its existing underwriting tools produce false negatives on smallholder farmers who would be profitable to serve if scored correctly. During the hackathon, we built a loan-officer-facing web dashboard that does the following:
Loads a farmer's mobile money transaction history and computes an explainable, 300-850 behavioural credit score from five weighted signals: income reliability, cashflow health, savings discipline, market access, and digital footprint. These are engineered around agricultural income patterns which are seasonal.
Cross-references the farmer against a Credit Reference Bureau record if any exists.
Combines data from CRB and Mobile money into a deterministic decision: approve or decline, and a specific loan limit in RWF, with a short explanation for such credit score. For example: "currently in arrears at another lender, limit reduced 60%" or "existing loan exposure deducted to avoid debt-stacking."
How we built it
Frontend: A Next.js (React) app with API routes doing the actual computation, a lightweight custom session-based login for loan officers.
Backend/Scoring engine The feature engineering and scoring logic runs on the backend. We compute monthly cashflow trends, detect recurring transfers as a proxy for savings discipline, measure counterparty diversity as a proxy for market access, and combine five weighted behavioural signals into a single score.
Data: We generated synthetic data using Python. We don't yet have a commercial data-sharing agreement with a telco. So we built a Python-generated synthetic dataset of farmer MoMo transaction histories across a 12-month window, which models agricultural seasonality. We paired it with a synthetic Credit Reference Bureau dataset which models bureau scores, arrears, and negative listings.
Challenges we ran into
We faced challenges when deciding on how to get data to test our idea and when we chose to generate synthetic data, we needed to use generate one that was useful which took some time. Seasonal agricultural income doesn't look like income from salaries.
Accomplishments that we're proud of
We are proud to have built a scoring pipeline that actually runs: it takes the synthetic transaction data, computes several behavioural signals, checks the CRB record, and produces a loan decision with a stated reason for every adjustment. We confident our solution solves a real problem based on references from BNR's governor, the Ministry of Agriculture, the Bankers' Association, and MINAGRI's NAFSS 2024-2028 strategy.
What we learned
Initially, we scoped our solution for the farmers, but later realized our customers are the MFI and SACCOs while the farmers are the customers we aim to acquire for the MFI and SACCO. We updated out interface to fit this use case. In addition, building agricultural seasonality into the scoring features also took more care than expected, since standard credit-scoring examples assume steady salaried income, which does not match how a farmer's cash flow moves through the year.
What's next for Imboni
Train an explainable ML model. We are currently working on getting into Rwanda's BNR Regulatory Sandbox (Regulation 41/2022) as the path to testing against real data under supervision. Move data ingestion from synthetic to a direct MTN/Airtel data-sharing agreement. Once the scoring logic works properly and is validated with an MFI or SACCO partner, we plan to also pursure instant USSD-based micro-lending backed by a BRD-BDF portfolio guarantee.
Built With
- data-analysis
- feature-engineering
- financial-inclusion
- fintech
- javascript
- json
- mobile-money
- next.js
- node.js
- python
- react
Log in or sign up for Devpost to join the conversation.