If your business has been running for a while, your AgroYield reports should NOT start at zero. The Opening Balances feature captures everything you owned, owed, and held at the start of your bookkeeping period — typically January 1st of the current year.
When to use this
- You're migrating to AgroYield from manual records (spreadsheets, paper, another app)
- Your business existed before today and you want clean, accurate reports going forward
- A new fiscal year is starting and you want to lock the prior year's closing position as this year's opening
What gets recorded
Seven categories per proper accounting standards (Nigerian GAAP / IFRS for SMEs):
- Opening stock — products on hand at period start, with quantity + unit cost
- Customer balances (AR) — money customers owe you carried in from before
- Cash + bank balances — what's in each account
- Fixed assets — equipment / vehicles / machinery at net book value (cost minus accumulated depreciation)
- Supplier balances (AP) — money you owe suppliers
- Retained earnings — accumulated profit from prior years (leave blank if unknown; the system absorbs it into the auto-capital line)
- Capital (auto-calculated) — owner's equity, computed automatically so the trial balance lands at zero
How it works — simplified balancing
You only enter individual amounts per category — no need to be an accountant. AgroYield auto-computes the capital balancing line at post-time:
Total Assets (debits) = ₦5,000,000 (stock + customers + cash + fixed assets)
Total Liabilities (credits) = ₦800,000 (suppliers)
Capital balancing line = ₦4,200,000 (auto-injected)
──────────
Trial balance = ₦0 ✓
Once posted, every report on the platform — Customer Statement, Inventory, P&L, Balance Sheet — reflects your true starting position.
Step-by-step
- Navigate to /business/opening-balances from the dashboard
- Click Start a new opening balance
- Set the period start date (default: Jan 1 of current year) + a label (e.g. "FY 2026")
- Click Start draft — you land in the wizard
- For each category that applies, fill the inline form + click Add line:
- Stock: pick a product → enter quantity + unit cost
- Customer balances: pick a customer → enter the outstanding amount
- Cash: enter a bank/account label + amount
- Suppliers: enter supplier name + amount owed
- Fixed assets: enter asset name + net book value
- Watch the trial balance preview at the bottom — it shows total assets vs total liabilities + the auto-capital figure
- When you're done, click Post opening balance. Once posted, entries become read-only.
What posting changes
- Customer statements show
Opening balanceas the top row of the transaction history - Customer outstanding totals include the carry-forward
- The opening balance becomes immutable (audit trail requirement per Nigerian GAAP)
- Reports (
/business/reports) now respect the posted opening position:- A green period banner at the top confirms the cut-off date
- Inventory Valuation card shows an "Opening | Net movement | Current" breakdown when at least one product has an opening-stock entry, plus an "Opening: ₦X" badge next to low-stock items so you can see which lines are running down from the carry-forward
- P&L (KPIs + monthly chart + expense breakdown + invoice status counts) filter to dates ≥ the period start, so revenue and expenses from before the cut-off don't double-count against the opening figures
- Balance Sheet (new section below the monthly chart) shows Assets, Liabilities, Equity with LIVE current positions:
- Cash & bank sums every active account in your bank accounts list (Monnify wallet + every external account you've captured — GTBank, Zenith, UBA, petty cash). The line shows the account count + in/out totals + stale-account warning beneath the current figure. The breakdown table lists each account with its current balance + last-updated time. A drill-down below that lists the Monnify ledger entries (credits/debits, narration, Monnify reference). External-account balance changes show in the audit log under each account.
- Customers owe (AR) uses the formula
opening + invoices issued in-period − invoices paid in-period, scoped to invoices withis_active = true. The drill-down lists every invoice movement (issued or paid) in chronological order with deep-links into each invoice. - Suppliers owed (AP) uses
opening + net AP correction journal entries. AgroYield doesn't currently track bills-received-but-unpaid separately (every expense logged is treated as already-paid), so the only in-period AP movement is via correction journal entries. A future epic adds asupplier_billstable for bill-payable tracking. - Inventory uses the live business_products cost valuation
- Equity = opening capital + retained earnings + auto-capital + period net income
- Balanced check at the bottom: if
Assets ≠ Liabilities + Equity, the imbalance amount is flagged with guidance to file a correction
Correcting mistakes after posting
You can't edit a posted opening balance — that would break audit-trail integrity. Two paths:
- If you spotted the error immediately and the balance is still in draft: just delete the draft and start over.
- If already posted: file a correction journal entry. The original line stays in the audit trail; the correction sits alongside it and adjusts the affected accounts. The net effect flows into downstream reports automatically.
How to file a correction
- Open the posted opening balance at
/business/opening-balances/<id> - Click File a correction → in the amber "posted" banner
- Fill in: reference label, reason (audit-trail value — minimum 5 chars), and at least 2 journal lines
- Each line is either a debit or a credit (not both); total debits MUST equal total credits
- Optionally link the correction to a specific original entry via the dropdown
- Click File correction — the entry is recorded permanently and downstream reports auto-update
Locking at year-end
When you and your accountant agree the books are final for the period (typically year-end close), click 🔒 Lock permanently in the same banner. Once locked:
- No further corrections can be filed
- The lock cannot be undone (would require a DB migration — intentional safeguard)
- Reports continue to display the period normally
Audit trail
Every state transition (draft → posted → locked) and every correction is recorded in business_opening_balance_audit — an append-only event log. The trail captures: actor, timestamp, event type, and event-specific payload. Useful for: regulatory audits, lender due-diligence, accountant year-end review.
Frequently asked questions
Q: Do I need to enter all 7 categories? A: No. Enter only the categories that apply to your business. Suppliers can be skipped if you don't have any payables; fixed assets can be skipped if you don't own equipment.
Q: My liabilities exceed my assets — what does that mean? A: The auto-capital figure would be negative, which means owner's equity is negative — the business is technically insolvent. The wizard blocks posting in this case. Re-check the numbers; likely an input error.
Q: Can I have multiple opening balance periods? A: Yes. Each fiscal year can have its own opening balance. The most-recently-posted period is what reports reference.
Q: I'm halfway through the year — can I still do this? A: Yes. Set the period_start_date to whenever your records start being clean (e.g. April 1 mid-year migration is fine). Reports will respect that cut-off.
Related
- Customer statements — see opening balances reflected here
- Privacy & data handling — how we store financial data

