Accounting Module · Reference Guide
Cash Flow Management - Complete Guide for Admin and Staff
How cash flow - from Money In and Money Out to Reconciliation and Close Day - is managed branch-wise and institute-wide, as an Admin and as a Staff member.
Three core concepts
Get these three straight before anything else makes sense.
- Branch - every transaction (income, expense, deposit, transfer) belongs to a specific branch. Only Admin can select
Institute-wideto see every branch at once; writing an entry (Record Income, etc.) always requires a specific branch to be selected first. - Wallet - every branch has four wallets:
Branch Cash(cash on hand),Bank(the bank account),Cash in Transit(cash sent to the bank but not yet confirmed), andTransfer Clearing(cash mid-transfer between branches). There is also aStaff Cashwallet for cash handed directly to an employee. - Business Date - every branch (and the institute as a whole) tracks its own "today" separately.
Close Dayadvances that branch's business date to the next day.
Admin vs Staff - at a glance
Both use the exact same Accounting screen - what differs is how much of it they can see and write to.
Admin - institute level
- Every branch, plus
Institute-wide, automatically - no separate grant needed. - Money In/Out, Bank Deposits, Move Money, Reconciliation, Close Day - everywhere, no limits.
- The
Capitaltab (Owner Contribution/Withdrawal) is Admin-only. Close Institute-Wideis Admin-only (see below).- Can approve an expense they created themselves.
Staff - branch level
- Seeing the Accounting tab at all requires Panel Access (
Accounting). - Can only act inside branches they've been given Branch Access to -
Institute-widenever appears. - Every individual action (recording income, approving an expense, ...) needs its own Finance Permission grant - see "Granting Finance Permission" below.
Close Institute-Widenever appears.
Admin - institute-level control
Logged in as Admin, the branch selector at the top of the Accounting workspace shows an `Institute-wide` option.
- Overview, Trial Balance, Profit & Loss, Balance Sheet, Cash Flow, Reports - all show every branch combined.
Money In,Money Out,Bank Deposits,Accounts,Reconciliation- writing here still requires picking a specific branch first ("Please select a specific branch first").- Only the
Close Daytab shows something extra whileInstitute-wideis selected - the Institute Consolidated Close panel (see below).
In practice: do day-to-day work (Money In/Out, Reconciliation) with a specific branch selected, e.g. Head Office. Use the Institute-wide view mainly for reports and for confirming the overall picture at month end.
What Admin does in each tab
| Tab | What Admin can do (institute-wide) |
|---|---|
Money In | Record income in any branch - category, wallet, amount. |
Money Out | Create an expense, Approve/Reject it, and Pay an approved one - anywhere. |
Accounts | View a branch's wallet balances (Cash/Bank/Transit). |
Bank Deposits | Record cash sent to the bank (Record Deposit) and confirm it landed (Confirm Bank Credit). |
Move Money | Move cash between two branches - New Transfer → Approve → Dispatch → Confirm Received, all by the same Admin if needed. |
Capital | Owner investing money in, or withdrawing from, the business (Owner Contribution / Owner Withdrawal) - never touches Profit & Loss. Admin only. |
Reconciliation | End-of-day cash count for a branch - Prepare → Count → Approve. |
Close Day | Close a single branch for the day, and close the whole institute for the day. |
Check Bank | Import a bank statement and match it against the ledger. |
Finance Settings | Fee Rules, Income/Expense Categories, Accounting Periods - Admin only. |
Institute-Wide Close - one important warning
The second panel inside `Close Day`'s `Institute-wide` view, visible only to Admin.
Everything below has to be true before Close Institute-Wide becomes clickable:
- Every branch in the institute has already closed the day (Branches closed: X/X)
- Unposted transactions: 0
- Unmatched transfers: 0
- Open reconciliation exceptions: 0
Important: closing institute-wide cannot be undone - unlike a branch close, there is no "Reopen" for this. It permanently advances the institute's business date to the next day. Only do this once every branch is genuinely reconciled and closed correctly.
How Staff access is built
What a Staff member sees and can do in Accounting comes from three independent layers.
- 1
1. Panel Access - makes the tab visible at all
Staff Manager→ pick the employee →Panel Accesstab - check theAccountingpanel. Without this, Staff doesn't even see an Accounting tab. - 2
2. Branch Access - which branch they can work in
Staff Manager→ pick the employee →Branch Accesstab - choose which branch(es) to grant. Only those branches appear in their branch selector. - 3
3. Finance Permission - permission for the specific action
Even with Panel + Branch, each individual action -
Record Income,Approve(an expense),Close Business Day- needs its own specific permission grant, optionally capped by a maximum amount. See "Granting Finance Permission" below.
What Staff sees and can do
With all three layers in place, a Staff member can do the following in their assigned branch (the exact same UI as Admin):
Money In/Money Out- record income/expenses, and approve expenses if they hold that permission.Bank Deposits/Move Money- request deposits/transfers, dispatch, confirm.Reconciliation/Close Day- do their branch's daily cash reconciliation and close the day.- The
Capitaltab andClose Institute-Widenever appear - Admin-only, always. - View-only areas (
Payments to Review,Student Fees,Bank Deposits,Check Bank,Reports,Finance Settings) each need their own matching Panel Access grant on top of the baseAccountingpanel.
Granting Finance Permission - the Finance Permissions tab
Each specific finance action - Record Income, Approve Expense, Close Business Day, and every other code in the reference table below - is granted from Staff Manager → pick the employee → the Finance Permissions tab (the third tab, alongside Panel Access and Branch Access).
- Pick the permission from the full catalog - the same codes listed in the reference table below.
- Optionally scope it to one branch. Leave the branch field on
Institute-wideto grant it across every branch that Staff member can already reach via Branch Access. - Optionally cap it with a
Max amount- e.g. anEXPENSE_APPROVEgrant capped at 50,000 is rejected by the server for anything higher, no matter what the form allows. Revokeremoves the grant immediately - there is no separate expiry step for a manual revoke.
A Staff member who has the Accounting panel and the right Branch Access but is still missing the specific grant here gets a server-side "Missing finance permission" error the moment they try the action - that's exactly what this tab is for.
A full day's journey - inside one branch
What Admin, or a Staff member with the right grants, does across a day for a single branch.
- 1
Through the day - recording transactions
Money In(income),Money Out(expenses - Create → Approve → Pay), and as neededBank Deposits(sending cash to the bank) andMove Money(moving cash to/from another branch). - 2
Confirming a bank deposit
A deposit sits as
DISPATCHEDright afterRecord Deposit(cash is in the Cash in Transit wallet). Once the bank statement shows it credited, clickConfirm Bank Credit. - 3
End of day - Reconciliation
Open the
Reconciliationtab and clickPrepare Today's Reconciliation- the system works out how much cash should be on hand (Expected Closing Cash). - 4
Physically counting the cash
Count the cash on hand for real, enter it under
Actual Counted Cash, and clickRecord Count. - 5
Approve Reconciliation
If the count matches, click
Approve Reconciliation. If it doesn't,Approve With Difference Adjustment- the difference posts to the ledger. - 6
Close Day (branch)
Once the
Close Daychecklist is all green (Reconciliation approved ✓, Staff cash reconciled ✓, No blocking issues ✓), clickClose Business Day- this branch's business date moves to the next day. - 7
(Admin only) Institute-Wide Close
Once every branch has closed, Admin can
Close Institute-Wide- the whole institute's business date advances. Cannot be undone.
Reconciliation - what counts as a blocking issue?
The system checks these automatically before Approve is allowed - any unresolved blocking item disables the button.
| Check | Type | Fix |
|---|---|---|
| Unconfirmed cash receipts | Blocking | Verify them under Payments to Review |
| A bank deposit still in transit | Blocking | Bank Deposits → Confirm Bank Credit |
| An internal transfer not yet complete | Blocking | Finish it via Move Money → Approve/Dispatch/Receive |
| An unresolved staff cash handover | Blocking | Complete the handover |
| An expense still awaiting approval | Warning only | Can be approved, but not required |
| A bank-transfer payment awaiting review | Warning only | Doesn't touch cash, so not required |
Close Day (branch) - can it be reopened?
Yes - a branch-level Close Day done by mistake can be undone (this does not apply to Institute-Wide Close).
- Anyone holding the
DAY_REOPENpermission can reopen a closed branch day, with a reason. - Reopening automatically invalidates that day's Reconciliation approval too, moving it to
REOPENED- it needs to be approved again before closing once more.
Permission code reference table
Admin always has every one of these, on every branch, automatically. Staff needs each code granted individually via the `Finance Permissions` tab in `Staff Manager` (see above), optionally scoped to specific branches or capped by amount.
| Code | Unlocks | Tab | Branch scope |
|---|---|---|---|
| INCOME_CREATE | Record Income | Money In | Per-branch |
| EXPENSE_CREATE | New Expense, Pay Expense | Money Out | Per-branch |
| EXPENSE_APPROVE | Approve / Reject Expense | Money Out | Per-branch |
| BANK_DEPOSIT_CREATE | Record Deposit | Bank Deposits | Per-branch |
| BANK_DEPOSIT_CONFIRM | Confirm Bank Credit | Bank Deposits | Per-branch |
| TRANSFER_CREATE | New Transfer, Dispatch | Move Money | Source branch |
| TRANSFER_APPROVE | Approve Transfer | Move Money | Source branch |
| TRANSFER_RECEIVE | Confirm Received | Move Money | Destination branch |
| RECONCILIATION_PREPARE | Prepare, Record Count | Reconciliation | Per-branch |
| RECONCILIATION_APPROVE | Approve Reconciliation | Reconciliation | Per-branch |
| DAY_CLOSE | Close Business Day | Close Day | Per-branch |
| DAY_REOPEN | Reopen (branch close) | Close Day | Per-branch |
| BANK_RECONCILE | Import/Match/Approve statement | Check Bank | Per-branch |
| BANK_ACCOUNT_MANAGE | Add/Edit bank account | Accounts | Per-branch |
| REFUND_CREATE / REFUND_APPROVE | Request / approve a refund | Payments | Per-branch |
| MANUAL_JOURNAL | New Manual Journal Entry | Journal | Institute-wide |
| FEE_SETTINGS_MANAGE | Fee Rules, Cancel Invoice | Finance Settings | Institute-wide |
| FINANCE_REPORT_VIEW / JOURNAL_VIEW | View reports (read-only) | Reports / Journal | Per-branch |
Important warnings - in short
Institute-Wide Close cannot be undone. Branch Close has a Reopen; the institute-level close does not.
If a Staff member is missing a Finance Permission, they'll see a "Missing finance permission" error even with the right Panel and Branch Access - check the Finance Permissions tab in Staff Manager for the branch scope and max amount on that grant.
The Capital tab and Institute-Wide Close never appear for Staff - they're designed to be Admin-only.