Categories
The backbone of every Jijenga intelligence product — and how to keep them accurate.
TL;DR
Every number in your Operating Statement, Velocity Lab, Monthly Brief, and Fuliza Shield comes from categorised transactions. The accuracy of your categories determines the accuracy of everything else.
What categories are
When Jijenga imports your M-Pesa statement, every transaction gets assigned to a category. These categories are the foundation of all analysis — without them, Jijenga can tell you what you spent, but not what you spent it on.
The three-layer structure
Categories are organised in three levels:
Type — the broadest level, based on what kind of money movement it is:
| Type | What it covers |
|---|---|
| EXPENSE | Money going out for goods and services |
| INCOME | Money coming in — salary, business, transfers received |
| TRANSFER | Money moves between accounts or people |
| INVESTMENT | Loan repayments, savings, investment purchases |
Bucket — the category within a type. These are Jijenga's built-in groupings. Every transaction lands in one of these:
| Type | Buckets |
|---|---|
| EXPENSE | 🍽️ Food & Dining · 🛒 Groceries · 🚗 Transport · 🏠 Rent & Housing · 💡 Utilities · 📱 Phone & Data · 💊 Health & Wellness · 🎬 Entertainment & Leisure · 🎓 Education · 🛍️ Shopping · 💳 Financial Services · 🧾 Fees & Charges · 🛡️ Insurance · 💻 Technology · 🛍️ Online Shopping · 💼 Services · 🏛️ Government & Legal · 🙏 Charity & Faith |
| INCOME | 💼 Salary & Wages · 📈 Business & Freelance · 💹 Investment Income · 🎁 Gifts & Grants · 🏛️ Government Benefits · 💰 Other Income |
| TRANSFER | 👤 Personal · 🏦 Banking · 💳 Credit Card Payments · 💵 Cash Operations · 🔄 Reversals & Corrections |
| INVESTMENT | 🌱 Savings & Investments · 💳 Loan Repayments · 💰 Loan Principal · 📈 Investment Purchases · 💸 Investment Sales |
Sub-bucket — the specific entity within a bucket. This is where the detail lives. Sub-buckets are created in two ways:
- Automatically by Jijenga — when Jijenga classifies a transaction for a
merchant or counterparty it hasn't seen before, it creates a sub-bucket for
that entity. The next time you transact with the same merchant, Jijenga
already knows where it goes. Examples:
Carrefour Gcm 06,Galitos Imaara,Safaricom,Equity Bulk Account - By you — you can create custom sub-buckets for recurring expenses that Jijenga doesn't automatically recognise (see Creating a custom sub-bucket)
M-Pesa personal sends and the Personal bucket
Every time you send money to a person via M-Pesa — a friend, a family member, anyone — that transaction lands in the 👤 Personal bucket under TRANSFER. Jijenga creates a sub-bucket for that person's name automatically.
This is often wrong. M-Pesa sends are used for everything:
- Sending rent to your landlord's number → should be 🏠 Rent & Housing
- Buying food from a mama mboga who doesn't have a till → should be 🍽️ Food & Dining
- Contributing to a chama → should be a custom sub-bucket
- Paying a freelancer → could be 💼 Services
Personal sends are the most common source of miscategorisation. When you see a transaction sitting in 👤 Personal, ask yourself: what was this money actually for? Then change the category to reflect reality.
You can correct a personal send in the QUEUE or directly in the Ledger by tapping the transaction and selecting the correct bucket and sub-bucket. Jijenga remembers the correction — if you send money to the same person again, it will suggest the corrected category next time.
The QUEUE — where your attention is needed
Access categories via the CATEGORY tab in the bottom navigation.
After every import, some transactions land in the ATTENTION_QUEUE. These are transactions where Jijenga has a suggestion but wants you to confirm it before it counts in your analysis.
Each queue item shows:
- The transaction — date, description, amount, and direction (in or out)
- Jijenga's suggestion — the category it believes this belongs to,
shown as
BUCKET, with a confidence percentage next to it - A priority badge — HIGH (red), MEDIUM (amber), or LOW (muted)
The priority tells you which items matter most. High priority transactions are the ones where getting the category right has the biggest impact on your analysis. Work through them top-down.
Two actions for every queue item
CONFIRM — you agree with Jijenga's suggestion. One tap, the transaction is categorised and removed from the queue. Jijenga notes the confirmation.
CHANGE — Jijenga got it wrong. Tap CHANGE to open the category picker and select the correct category. Jijenga remembers this correction — the same merchant or counterparty will be handled correctly on future imports.
Filtering the queue
The queue can be filtered by priority (HIGH / MEDIUM / LOW) and sorted by newest, oldest, or lowest confidence. If you're short on time, filter to HIGH priority and clear those first — they have the biggest effect on your numbers.
Empty queue
When the queue is empty, the page shows ALL CAUGHT UP / NO_PENDING_ITEMS. This is the state you want before closing a month in the Monthly Brief.
The CATALOG — your full category tree
The CATALOG tab shows every category in your Jijenga setup, organised as a tree. Tap any node to expand it and see the full hierarchy below it.
The catalog has two types of categories:
- System categories — Jijenga's built-in buckets, covering the full Kenyan spending landscape. These are read-only.
- Auto-created sub-buckets — created by Jijenga as it learns your merchants and counterparties. You can edit or delete these.
- Your categories — sub-buckets you've created yourself. You can edit or delete these.
Creating a custom sub-bucket
If you have a recurring expense that needs its own category — a specific chama contribution, a domestic worker's payment, a freelance income stream — create a custom sub-bucket:
- Go to the CATALOG tab
- Tap the + button (bottom right)
- Select the PARENT_BUCKET this sub-bucket belongs under
- Enter a NAME (e.g.
Chama Weekly,House Help,Freelance Design) - Optionally add a DESCRIPTION
- Tap CREATE
Your custom sub-bucket appears immediately in the category tree and in the category picker across the whole app.
How Jijenga gets better over time
Every correction you make through the QUEUE or Ledger is remembered. When you CHANGE a suggestion, Jijenga updates its understanding of that merchant or counterparty. When you CONFIRM a suggestion, Jijenga notes the validation.
The more you interact with the queue, the less ends up in it. Long-term users with months of corrections see significantly smaller queues after each import — the same merchants rarely appear twice.
Tips
- Personal sends (👤 Personal) deserve a second look — they're often miscategorised because M-Pesa send money is used for everything from rent to groceries. Review them before closing a month.
- Clear the queue immediately after every import while the transactions are still fresh — you'll categorise faster when you remember the context
- A month with 95%+ categorization generates a sharper Monthly Brief from Nia — the queue is directly connected to the quality of your brief
- Use the LOW_CONFIDENCE sort to find the transactions Jijenga is least certain about — those are the ones most worth reviewing carefully
See also: How to Categorize Transactions · Monthly Brief