Revenue Accounts
Revenue accounts group fee allocations and other revenue entries so you can track balances per income stream (Tuition, Transport, Library, etc.).
Navigation: Finance ▸ Revenue Accounts.
Accounts List
The table contains the following columns:
- Name – the friendly label shown throughout the app.
- Code – optional short identifier (e.g., REV-TUI).
- Description – context for staff.
- Current Balance – calculated on the fly: fee allocations + other revenue.
- Status – Active/Inactive toggle button (submits to
revenue-accounts.toggle).
- Actions – Details, Edit (opens modal), Delete (blocked if transactions exist).
- The “Add Revenue Account” button launches the same modal in create mode.
Create / Edit Fields
| Field |
Description |
| Name * |
Required and shown everywhere (e.g., “Tuition Fees”). |
| Code |
Optional short code for exports. |
| Description |
Optional notes that appear on the index table and detail page. |
Fee Types: Assign a revenue account while configuring fee types in Settings ▸ Fee Types so every payment automatically updates the correct balance.
Revenue Account Detail Page
- Summary Cards: “Total from Fees”, “Total from Other Revenue”, and “Total Balance” (sum of the first two).
- Account Details: Name, Code, Description, Status, and Current Balance.
- Fee Types Table: Columns for Name, Default Amount, Frequency, and Status. Lists every fee type linked to this account.
- Recent Other Revenues: Paginated table with Date, Description, Received From, Amount.
Deletion rules: Accounts with linked fee types or other revenue entries cannot be deleted. Deactivate the account instead if you no longer use it.
How Balances Are Calculated
- Fee Payments: When a payment item is saved, the system creates
payment_fee_allocations pointing to the invoice’s fee types and their assigned revenue accounts. The amount is proportional to each fee line.
- Other Revenue: Every entry requires a revenue account, adding the amount directly to the same balance.
- Displayed Balance: The controller sums allocations + other revenue each time the index or detail page is loaded, ensuring the value reflects the latest data.