Welcome to DrycleanPro
Quick tour
A two-minute walkthrough of the dashboard — take in clothes, mark them ready, and collect payment.
A two-minute walk through the dashboard — take in clothes, mark them ready, and collect payment. This is the shortest tour; read Getting Started first if you're brand new.
The everyday flow, end to end
The whole rhythm of the app is one customer journey, three taps:
- Take in the clothes —
+ New Orderfrom the sidebar (or the floating button on mobile).
- Pick the customer (or Add new on the spot — name + phone is enough).
- Tap items from the price list — they stack into a cart with prices that match your branch.
- Optionally snap a photo (stain, damage, before-and-after proof) and add a delivery fee or discount.
- Save. The order gets a ticket number like
DC-20260517-0001and starts at status Brought In.
- Move it through the stages. Open the order from the Orders list and tap Change Status — Brought In → Washing → Ready → On the Way → Picked Up. Each change can fire an automatic SMS or push notification to the customer (toggle this in Settings → Notifications).
- Collect payment. From the order detail page, tap the + under the Payment section. Pick cash / transfer / card / POS, type the amount, save. Multiple part-payments work the same way. The order shows "Paid" once the total is settled.
What the customer sees
When you share mypancho.com/p/{your_id}/drycleanpro/track (or {yourdomain}/track) with a customer, they type their phone number to look up their order. If you've also given them a portal PIN, they can sign in for the full view — order status, balance, messages, receipt download.
What you see on the dashboard
The home page is a snapshot of right now: today's revenue, unpaid orders, orders ready for pickup, and recent activity. Tap any tile to jump to that filtered list.
Where things tuck themselves
If a button isn't on the obvious screen, look in the More menu (three dots) on the same row or in the top-right of the detail page. That's where Edit, Delete, Archive, and audit-log links usually live.
You'll learn the rest by doing
The remaining lessons go deeper — managing the day's orders, pricing tiers, branching out, customizing labels. But this loop (take in → progress → collect) is 90% of the daily work.
Managing the day's orders
Filtering by stage, swapping pickup details, and sending automatic ready-for-pickup texts.
A working day in DryCleanPro means moving orders from "Brought In" to "Picked Up" without letting anything fall through the cracks. This lesson is about the Orders screen and the tools on it.
The order list
Orders in the sidebar shows every order at the current branch, newest first. The status pill on each row tells you where it is in the workflow.
Filter chips at the top let you focus:
- Brought In — clothes you've received, not yet started
- Washing — currently being processed
- Ready — done, waiting for the customer
- On the Way — out for delivery
- Picked Up — collected (the "done" state)
- Cancelled — anything you've cancelled
Tap a filter chip to narrow the list; tap All to clear.
The Ready queue is your priority
Click Ready to see every order waiting to be collected. These are the orders earning you nothing while they sit, and the customers most likely to message you ("Is my stuff ready yet?"). Clear this queue first thing in the morning by either:
- Calling/messaging the customer to come pick up, or
- Marking On the Way if you're delivering it.
Changing the pickup / delivery details
Open an order → tap Edit at the top. You can change the promised-ready date, swap the customer, edit items, adjust the delivery fee, add a discount. Save once and the receipt + tracking page update instantly.
Automatic ready-for-pickup messages
In Settings → Notifications, turn on Notify on status change and the customer gets a text/push the moment you move their order to Ready. The default copy is something like "Hi {name}, your order {ticket} is ready for pickup." — you can rewrite this in Settings → Labels under "Status: Ready" if you want a different vibe.
For SMS to actually send, you'll also need to fill in Twilio credentials (Settings → Notifications → SMS section). Without them, the system only sends push notifications to customers who have signed in to the portal.
Past-due and overdue reminders
DryCleanPro runs an automatic check once a day: orders that should've been picked up by now get a polite reminder text. Configure how many days are "past due" vs "overdue" in Settings → Notifications.
Handling tricky moments
- Customer paid in cash but you forgot to record it → open the order, tap + in the Payment section, set the date back to when it happened. The activity log keeps the audit trail.
- Wrong items added → Edit the order, remove the bad lines, save. The total recalculates automatically.
- Customer wants a refund → take a negative payment (type a minus amount). The total adjusts and shows "Refunded" on the receipt.
- Cancel an order → from the order detail page, Change Status → Cancelled. The order stays in the system for your records but won't count toward revenue.
When the day's done
The Dashboard's "Today's Revenue" tile is the quickest sanity check before closing up. Open it for the breakdown — cash vs transfer vs card — so you know what to count in the till.
Pricing & customer tiers
Setting up your price list and tagging regulars with VIP pricing tiers.
Your price list is the spine of every order. This lesson covers building it once, keeping it tidy, and giving regular customers a different price tier without rewriting the menu.
Where the price list lives
Settings → Price List. Categories on the outside ("Tops", "Suits", "Bedding", "Bottoms"), items inside each with a name and unit price.
Add a category → tap into it → add items. Drag to reorder. Toggle the active switch to hide an item temporarily without deleting it.
One price list per branch
If you have multiple branches, each branch has its own price list. That's deliberate — different locations often have different rents, so the same shirt might be ₦1,500 at one shop and ₦2,000 at another.
When you add a new branch, DryCleanPro auto-copies the price list from your first branch. You won't see an empty menu — the new location lands with everything ready to go. Edit prices afterwards and the changes apply only to that branch.
Customer pricing tiers
Every customer has a Pricing Level (1–5). By default everyone is level 1.
On the price list, each item can have a different price per level — that lets you bump regulars to level 2 (a small discount) or VIPs to level 3 (a bigger one), without rewriting the menu or remembering custom prices on the fly.
To change a customer's tier: open their profile → Edit → Pricing Level field → pick a number. The next new order for that customer automatically uses the matching prices.
Currency
The currency code is set once at signup based on your phone's country and can't be changed later. The symbol that displays on receipts and totals is set in Settings → Business Info → Currency Symbol. New installs default to ₦; you can override it with $, £, €, kr, or any text you want.
Changing prices later
Edit any item — the new price applies to new orders only. Existing orders keep the price they were created at. This is intentional: you don't want a customer's receipt total to change after you've already given it to them.
If you want to revisit an old order with the new price, edit the order, remove the line item, and re-add it.
Removing items you no longer sell
Two ways:
- Toggle off the active switch — the item disappears from new-order screens but stays on existing orders. Safe; reversible.
- Delete the item — gone for good. Orders that already used it keep their copy of the price.
For an entire category, delete it the same way. Existing orders keep their items; only the new-order picker stops showing them.
Getting started with DrycleanPro
A quick tour of DrycleanPro: how to open it, what each section is for, and where to go first.
Run your whole dry cleaning or laundry shop from one app — take in clothes, track them from wash to pickup, collect money, and keep customers updated. This is the first lesson; by the end you'll know where every section lives and what to do on day one.
Your first 10 minutes
- Open Settings → Business Info. Type your shop name, your contact phone, and double-check the Currency Symbol field. New installs default to ₦; change it if you trade in another currency.
- Set up your first branch. A "branch" is just a physical location. The install ships with one — open Locations from the dropdown at the top of the sidebar (next to the DRYCLEANPRO label) and rename it. Add the address, phone, and email so they show on receipts.
- Build your price list. From Settings → Price List, add categories ("Tops", "Suits", "Bedding") and items inside each with prices. If you add a second branch later, its price list will be auto-copied from your first branch — you don't start from scratch.
- Add your staff. Settings → Staff → "Add staff". Enter their name, phone, and a 4–8 digit PIN. Pick Staff for regular team members or Admin for senior staff (admins also see Settings and Reports).
- Test a customer. Add one customer (Customers → Add) and a sample order (New Order). Mark it through the status flow so you see exactly what your customers will see on the tracking page.
That's the whole setup. Everything else you learn by doing.
Where things live (sidebar)
- Dashboard — today's numbers + shortcuts
- Orders — every order, filterable by status
- Customers — your customer list with order history per person
- Settings — business info, price list, staff, notifications, tracking page settings
Two sign-in URLs to know
DryCleanPro has two public links — keep them straight:
/trackis for your customers. They type their phone to look up their order. Share this on receipts, WhatsApp, your website./staffis for your team. They sign in with phone + PIN and land directly on the admin dashboard. Share this only with people who work for you.
Both links are shown ready-to-copy in Settings — under "Staff Sign-in URL" and "Customer Tracking Page" respectively.
When you're stuck
- Support in the platform sidebar opens a conversation with our team — usually a few hours to first reply.
- Every page has a Watch tab at the top when a video lesson is available. The written guide is always the source of truth and stays current as DryCleanPro evolves.
Working in DrycleanPro day-to-day
The rhythm of using DrycleanPro — how to add things, find them again, edit them, and keep your lists tidy.
Most of your time inside DryCleanPro is the same handful of moves repeated — add an order, find a customer, update a status, collect a payment. Once you've done each of these once, the whole app feels familiar.
Taking in clothes (new orders)
+ New Order from the sidebar.
- Pick the customer. Search by name or phone. If they're new, Add new lets you create them right inside the new-order flow — name and phone are the only required fields.
- Add items. Tap items from your price list. Each tap adds one; tap again to increase quantity. The total updates as you go.
- Optional extras. Delivery fee, discount, item photos, internal notes. None of these are required.
- Save. The order gets a ticket number and lands at Brought In status. Print or share the receipt right away if you want.
Finding an order later
Three ways:
- Orders list — every order, newest first. Filter chips at the top: Brought In / Washing / Ready / On the Way / Picked Up / Cancelled.
- Search bar — type a ticket number, customer name, or phone.
- Customer profile — open the customer, scroll to Recent orders.
Moving an order through stages
Open the order, tap Change Status, pick the next stage. If you've turned on Notify on status change in Settings → Notifications, the customer gets a text or push message automatically. You don't have to remember to send it.
The Ready stage is the most useful trigger — that's when the customer needs to know to come collect.
Taking a payment
From inside any order:
- Tap + in the Payment section (or Receive payment on mobile).
- Pick the method (Cash / Bank Transfer / Card / POS / Other), type the amount, save.
- Take part-payments the same way — keep tapping + each time another instalment comes in. The order auto-shows "Paid" when the total is settled.
Editing customers
Open the customer profile → tap Edit in the header to change name, phone, address, or notes. The phone format is flexible — 08012345678, 0801 234 5678, and +2348012345678 all save the same way.
Recording an expense
If you've turned the Expenses feature on (Settings → Expenses & Profit → Track expenses), there's an Expenses tab in your menu. The flow is similar to taking a payment — except it's money going out:
- Tap Expenses → Record an expense.
- Pick a category (Rent, Utilities, Supplies, Staff, Maintenance, Transport, Marketing, Bank & Fees, Other).
- Pick what it was for (Electricity, Detergent, Salaries…). If you set a suggested amount on that item under Manage Expense Categories, it pre-fills.
- Type the amount, set the date (defaults to today, can backdate), add an optional note.
- Save.
To edit or remove an expense later: tap the row. The same sheet slides up — change the amount, date or note, or hit Remove this expense at the bottom.
Checking your profit at a glance
Once you're recording both sales (orders + payments) and expenses, the Reports page shows a Profit & Loss panel at the top with three plain numbers:
- Money in — what customers paid you.
- Money out — what you spent.
- Net profit — what's left.
One-tap pills switch the timeframe between Today / Week / Month / Year. Tap Show breakdown to see which expense category ate the most money. No graphs — just the three numbers that matter.
Deleting things
Both customers and locations have a single Delete action with a clear confirmation that lists exactly what'll be wiped:
- Customer with no orders → "Delete customer? — {name} will be removed from your customer list."
- Customer with orders → "Delete customer and all their data? — Will also delete N orders, payments, photos and notes."
- Branch with data → "Delete {name} and all its data? — Will permanently remove: N customers, N price categories, plus every payment, photo, note tied to them."
For locations there are two safety rails: you can't delete the branch you're currently switched to, and you can't delete your only remaining branch.
If you want to keep a customer's history but hide them from the active list, use Archive customer instead. Archived customers can be restored at any time.
When the screen looks slightly different
Buttons sometimes move between releases. The More menu (three dots) on the row or detail page is where less-used actions live. The CHANGELOG (linked from the marketplace app card) lists everything that's changed recently.
Sharing DrycleanPro with the people you serve
Connect a custom domain, share your public link, and give customers a clean way to interact with you.
DryCleanPro is most useful when you share the right links with the right people. There are three of them — and they're all on copy-ready cards in Settings.
The two sign-in pages
For your customers — /track
mypancho.com/p/{your_id}/drycleanpro/track (or {yourdomain}/track).
Customers type their phone number to look up an order. If you've given them a portal PIN, they can sign in on the same page for the full view (status, balance, messages, receipt). Share this on receipts, WhatsApp, and your website.
For your team — /staff
mypancho.com/p/{your_id}/drycleanpro/staff (or {yourdomain}/staff).
Staff type their phone + the PIN you set in Settings → Staff. They land straight on the admin dashboard — same screens you see as the owner, but limited to what their role allows (Staff role gets Dashboard / Orders / Customers / New Order; Admin role also gets Settings / Reports).
Don't mix these up. Customers shouldn't see /staff (it'll just reject their portal PIN with a redirect message); staff shouldn't share /track for sign-in (the copy reads "Check your laundry" and is confusing).
Both URLs are copy-ready in Settings:
- Settings → Staff has a "Staff Sign-in URL" card.
- Settings → Customer Tracking Page has the "Customer Page URL" card.
The third link — per-order invoices
Every order has a one-tap Share on WhatsApp button that generates a unique invoice URL like mypancho.com/p/{your_id}/drycleanpro/invoice?token=xxx. The token is order-specific — no signin needed, but only that one order is visible. Use this when a customer asks for a receipt without giving them portal access.
Your own domain (optional)
Want customers to see your domain instead of mypancho.com? Set one up from Account → Domains on the platform sidebar:
- Add the domain you own (
bonaklaundry.com,sparkle.ng, etc.). - Point its DNS at Pancho (the screen shows the exact records).
- Pick DryCleanPro as the app the domain serves.
- Wait for verification + SSL — usually under 5 minutes.
After that, every customer-facing URL uses your domain automatically. /track, /staff, and /invoice all work on the custom domain too.
Inviting and managing staff
Settings → Staff lists everyone. Tap Add staff to bring on a new team member — name, phone, role (Staff or Admin), and a 4–8 digit PIN.
After adding, share the staff sign-in URL with them and tell them their PIN (one-time). They can change the PIN themselves once signed in — or you can reset it from the same list with Reset PIN.
When someone leaves the team, hit Revoke to disable their sign-in. If you re-hire them later with the same phone, just Add staff again with the same number — DryCleanPro recognises the previous record and revives it with the new PIN.
Tip: Give every staff member their own login. Activity logs only make sense when actions are tied to individual people.
When sharing doesn't work the way you expect
- Customer says your link doesn't load → check your domain DNS records first.
- Staff types the right PIN but gets an error → check Settings → Staff that their row still says "active" (not revoked).
- For everything else, Support in the platform sidebar is the fastest path.
Customizing DrycleanPro for your business
Tweak labels, statuses, and features under Settings so DrycleanPro speaks your business's language.
DryCleanPro ships with sensible defaults, but most of the names, statuses, and behaviors can be changed so the app sounds like your shop instead of ours. Everything in this lesson lives under Settings.
Settings, top to bottom
The Settings page is one long stack of sections. The ones you'll actually touch:
- Staff — add team members and their PINs. The big copy-ready "Staff Sign-in URL" card lives here too — that's what you share with your team.
- Business Info — shop name, contact phone, Currency Symbol. New installs default to ₦; type a different symbol if you trade in another currency.
- Bank Account — turn on "Show Bank Details on Receipt" if you want bank info printed at the bottom of every receipt.
- Printing — toggle for small Bluetooth/USB receipt printers.
- Order Features — flags for order photos, customer messaging, etc.
- Expenses & Profit — turn on expense tracking, show/hide the Profit & Loss panel on Reports, set the default P&L timeframe, and jump to Manage Expense Categories from the same section.
- Notifications — push (ntfy) + SMS (Twilio) toggles, who gets notified, and what triggers a message.
- Price List — categories and items, with per-tier pricing.
- Customer Tracking Page — toggle receipt viewing and PDF download for customers; the copy-ready Customer Page URL card is here.
- Labels — rename anything: "order" → "ticket", "customer" → "client", or the status names ("Brought In" → "Received", "Ready" → "Done").
A sensible order to customize in
- Business Info first. Shop name and currency symbol show up on receipts and the tracking page — set those before doing anything else.
- Add your branches. From the Locations switcher at the top of the sidebar, rename the default branch and add others if you have them.
- Build the price list. Categories, then items inside.
- Add your staff and share the staff sign-in URL.
- Tune labels last. Once you've used the app for a couple of days, you'll know which words feel wrong. Open Settings → Labels and rename them. The change ripples through every screen automatically.
Currency: code vs symbol
Two different things, set in two different ways:
- Currency code (USD, NGN, etc.) is locked at signup based on your phone's country code. Don't add real money data with the wrong code — contact support before you do if it's wrong.
- Currency symbol (₦, $, £, kr) is what shows on screens and receipts. Set it in Settings → Business Info → Currency Symbol. New DryCleanPro installs default to ₦. Change it any time without affecting old orders.
Pricing changes are forward-only
When you edit an item price, it applies to new orders only. Existing orders keep their original price. This is deliberate — receipt totals shouldn't change after the fact.
Turning on Expenses & Profit (optional but powerful)
The feature is off by default for new and existing installs so nobody gets surprised. To switch it on:
- Settings → Expenses & Profit → Track expenses (toggle on).
- Save Expenses Settings.
The moment you save, DrycleanPro seeds the 9 standard expense categories (Rent, Utilities, Supplies, Staff, Maintenance, Transport, Marketing, Bank & Fees, Other) plus ~30 starter items for your current branch — so you can record an expense right away without typing anything in.
Two related sub-toggles live in the same section:
- Show Profit & Loss in Reports — keep this on if you want the "money in, money out, what's left" panel at the top of Reports. Turn it off if you'd rather log expenses privately without a profit number on the same page as your team.
- Default P&L period — Today / Week / Month / Year. Pick what the panel opens to.
Right under those sits Manage Expense Categories — same place you'll come back to whenever you need to rename a category, add a new one, or set a suggested amount for a recurring item like "Monthly rent — ₦150,000".
When in doubt, leave it on the default
Every setting has a sensible default picked for typical dry-cleaning shops. If a toggle's purpose isn't obvious, leave it as-is and ask Support — they can tell you exactly what each one does without you having to experiment on live data.
Staff and team
Add staff with their own phone + PIN, share the dedicated /staff sign-in URL, and manage their access over time.
Everything you need to bring your team into DryCleanPro — adding them, sharing the sign-in link, and managing access over time.
Adding a staff member
- Open Settings → Staff.
- Tap Add staff.
- Type their Name, Phone (10-digit local format like
08012345678), and pick a Role (Staff or Admin). - Set an Initial PIN (4–8 digits). This is what they'll type to sign in. Pick something easy to remember and tell them in person.
- Save.
The two roles, explained
- Staff — sees Dashboard, Orders, Customers, and can create new orders / take payments. Cannot see Settings, Reports, or the staff list.
- Admin — full access. Sees everything you see as the owner. Use this for senior team members you trust completely.
Both roles share one sign-in URL: /staff.
Sharing the staff sign-in URL
The URL is in Settings → Staff → Staff Sign-in URL as a copy-ready card. It looks like:
mypancho.com/p/{your_id}/drycleanpro/staff
If you've connected a custom domain, it's simply {yourdomain}/staff.
Send this to each team member by WhatsApp/SMS along with their PIN. They tap the link, type their phone + PIN, and land on the admin dashboard immediately.
Tip: Have each person bookmark the URL on their phone's home screen so it opens like an app. Their session stays signed in until they tap Sign out.
What staff sees once they're in
The same admin interface you see — the layout, the sidebar, the Orders list, the New Order button. Just filtered by their role's permissions. They never see your billing, plan, or other Pancho apps you've installed.
When they sign out (sidebar pill on desktop, "Sign out" button on mobile), they return to the staff sign-in page, not Pancho's login.
Reset a PIN
If someone forgets theirs, open Settings → Staff, find their row, tap Reset PIN, type a new PIN, and tell them what it is. Done in 10 seconds.
Removing someone who left
Tap Revoke on their staff row. Their PIN stops working immediately; any open session they have is killed.
If you re-hire them later with the same phone number, just Add staff again — DryCleanPro recognises the previous record and revives it with the new role + PIN. The old one doesn't block you.
Things that are NOT staff-level
A few things only the install owner (the Pancho account that pays the bill) can do:
- Billing, upgrade plans, manage payment cards
- Manage other staff (the Staff list itself is admin-only via Settings)
- Uninstall the app or change the install owner
If your staff need access to one of these, they'd need to be added as a Pancho admin user separately — out of scope for the staff list.
Common questions
Can a staff member have a PIN AND also have a portal PIN as a customer? Yes — they're separate. If they're both staff and a customer (maybe they bring their own clothes in), they sign in to /staff with the staff PIN and /track with the customer PIN.
Can two staff have the same phone? No — phones are unique per branch. The "Add staff" form rejects duplicates.
What happens if I delete a branch with staff attached? Per the cascade delete, those staff records are removed. If staff work at multiple branches, set their entity_id (branch) accordingly first.
Branches and locations
Run more than one shop — add branches, switch between them, and let new branches auto-inherit your price list.
Running more than one shop? DryCleanPro handles multiple branches out of the box — each with its own orders, customers, staff, and price list — all under one Pancho account.
What a branch is
A branch (also called a "location") represents one physical shop. Each branch has its own:
- Orders + payments + revenue
- Customer list
- Staff team
- Price list (categories + items + prices)
- Bank account on receipts (optional)
Customers in one branch are separate from customers in another. If the same person uses both shops, they'll have two records — one per branch.
Adding a branch
Top of the sidebar, under the DRYCLEANPRO label, there's a dropdown showing your current branch. Open it → tap Manage locations (or click Locations in the sidebar if you have a "Locations" page enabled) → + Add.
Fill in the name, address, phone, and email. Save.
Auto-copied price list: The new branch lands with a full price list — every category and item from your first branch is auto-copied across. You'll see a toast like "Branch added · 104 prices copied from your first branch." Edit the new prices to match the local market.
Switching between branches
Tap the branch name at the top of the sidebar — the dropdown shows every branch you have. Pick one and everything on screen (orders, customers, reports, dashboard numbers) re-scopes to that branch instantly.
On mobile, tap the branch pill at the top of the header to get the same switcher sheet.
Editing a branch's info
From the Locations page, tap the pencil icon on the branch card. Edit name, address, phone, email. Save.
Deleting a branch
Two safety rails first:
- You can't delete your only branch — you'd have nowhere to put orders.
- You can't delete the branch you're currently switched to — switch to another first.
Past those, tap Delete location in the Edit sheet. The confirmation tells you exactly what'll be wiped — for example: "Delete LBS Branch and all its data? This will permanently remove: 19 customers, 9 price categories, plus every payment, photo, note and notification tied to them."
This is a cascade — orders, payments, customers, staff, attachments, price list — everything in that branch goes. Use it when you've closed a shop permanently. For temporary closures, just leave the branch alone; nothing happens until you change it.
Reports across branches
The Dashboard and Reports respect the currently-selected branch. To compare branches, switch to each and look. There's no combined-all-branches view in DryCleanPro yet — by design, the day-to-day staff workflow is single-branch.
Common questions
Can different branches have different prices? Yes — each branch has its own price list, edited independently.
Can a staff member work at two branches? Each staff row is tied to one branch via entity_id. If someone works at both, add them as a staff member at each branch (they'll have one row + PIN per branch).
Can a customer have orders at two branches? Each customer record is tied to one branch. If the same person uses both shops, they'll have two records — one per branch — with separate order histories.
What happens to orders when I switch branches? Nothing — orders stay where they were created. You just see a different set of them in the Orders list depending on which branch you're switched to.
Tracking what you spend, knowing what you keep
Record your shop's expenses and see your real profit each week — what came in, what went out, and what stayed.
Tracking what you spend, knowing what you keep
Running a dry-clean shop costs money every single day. Rent. Electricity. Detergent. Staff. Fuel for the generator. Money for delivery. Bank charges. POS fees. The little things add up — and at the end of the month, the question every owner asks is the same: "I made some money this month… but did I actually keep anything?"
DrycleanPro answers that question for you, in plain numbers, without needing an accountant.
What this does, in one minute
- You record what you spent — rent, fuel, detergent, anything. Just type the amount and date.
- DrycleanPro adds up your sales (money in) and your expenses (money out).
- Then it shows you the difference — the money you actually kept — under Reports.
No graphs to read. No accounting words. Just three lines: money in, money out, what's left.
Turning it on
It's off by default so existing shops don't get surprised. To enable it:
- Open Settings.
- Find the Expenses & Profit section.
- Tap Track expenses to turn it on.
- Tap Save Expenses Settings.
The moment you save, two things happen automatically:
- A new Expenses tab appears in your menu.
- The 9 standard expense categories (Rent & Premises, Utilities, Supplies, Staff, Maintenance, Transport, Marketing, Bank & Fees, Other) plus ~30 starter items get seeded for your current branch — so you can record your very first expense within seconds without typing anything in.
New branches you add later will inherit your expense categories automatically, the same way they inherit your price list.
Recording an expense
- Tap Expenses in the menu.
- Tap the big Record an expense button.
- Pick a category (Rent, Utilities, Supplies, Staff, Maintenance, Transport, Marketing, Bank & Fees, or Other).
- Pick an item from that category (Electricity, Detergent, Salaries, etc.).
- Type the amount. If the item has a suggested amount set up, it pre-fills automatically.
- Set the date (defaults to today, but you can backdate).
- Add an optional note ("Filled diesel for generator", "Paid March rent", etc.)
- Save.
Editing or removing an expense
Made a typo, or want to delete one you recorded by mistake? Tap any expense row in the list. A sheet slides up showing the amount, date, and notes — change whatever you need and tap Save. Admins also see a Remove this expense link at the bottom for full deletion.
Customising your categories
If your shop has expenses we didn't think of, add them:
- Open Settings → Expenses & Profit.
- Tap Manage Expense Categories.
- Add a new category like "Loan repayments" or "Religious offerings".
- Add items under each category. You can even pre-fill a suggested amount so it appears automatically when you record (handy for things like "Monthly rent — ₦150,000" that's the same every time).
Seeing what you actually kept (Profit & Loss)
Go to Reports. A new Profit & Loss panel appears at the top showing:
- Money in — what customers actually paid you (not what they owe).
- Money out — what you spent.
- Net profit — what's left. Green when positive, red when you lost money.
- Profit margin — what percent of your sales actually stayed with you.
Switch between Today / Week / Month / Year with one tap. Tap Show breakdown to see which category ate the most money.
A real example
Let's say in one month:
- Customers paid you ₦340,000 in total.
- You spent ₦150,000 on rent, ₦40,000 on electricity, ₦35,000 on detergent, ₦80,000 on salaries, ₦20,000 on fuel, and ₦5,000 on POS fees.
- Money in: ₦340,000
- Money out: ₦330,000
- Net profit: ₦10,000
- Profit margin: 2.9%
You made ₦340,000 — but only kept ₦10,000. That's something worth knowing. Maybe rent is too high. Maybe you need to raise prices a little. Maybe you can switch detergent supplier. Now you have the numbers to make that call instead of guessing.
When you don't want a P&L on Reports
Some owners just want to log expenses for their own records but don't want a "profit" number staring at them — maybe it's a slow month, maybe a partner sees the same screen. You can:
- Keep recording expenses (Track expenses = ON)
- Hide the P&L panel (Show Profit & Loss in Reports = OFF)
Your expenses are still tracked. They just don't show as profit/loss until you turn that back on.
Picking your default P&L view
Under the same Expenses & Profit settings group there's a Default P&L period dropdown — choose whether the Profit & Loss panel opens to Today, This Week, This Month, or This Year by default. Most shops keep it on This Month.
Letting staff record expenses (but not delete them)
Staff members can also see the Expenses tab and record new expenses — useful when an employee fills the generator or buys detergent on your behalf and needs to log it. They can view + create but they cannot delete expenses or manage categories. Only admins can do that. No extra setup — staff permissions for Expenses are wired up out of the box.
Turning the feature off later
If you decide you don't want this feature anymore, toggle Track expenses off in Settings. The Expenses tab disappears, but your data stays — turn it back on later and everything is still there. We never throw away your records.
That's the whole thing. Record what you spend, see what you keep. The shop owners we built this for aren't accountants — they just want to know if the month was good or bad. Now they can.