Knowledge Base Finance
Financial Statements Engine
Trial Balance, Income Statement, Balance Sheet and Cash Flow — generated in real time from a double-entry general ledger, auditable to every source transaction.
Overview
The EIN 360 Financial Statements module produces four core reports from the General Ledger, generated in real time from posted journal entries. Every number is auditable back to its source transaction.
| Report | Standard | Purpose |
|---|---|---|
| Trial Balance | IAS 1 / IFRS | Verifies debit-credit equality across all accounts |
| Income Statement | IAS 1.81–105 | Revenue vs expenses over a period |
| Balance Sheet | IAS 1.54–80 | Financial position at a point in time |
| Cash Flow | IAS 7 | Cash movements by activity category |
Compliance framework
Follows IFRS as adopted by the UAE: IAS 1 (Presentation), IAS 7 (Cash Flows), IAS 16 (PP&E / Depreciation), IFRS 16 (Leases), and UAE Federal Decree-Law No. 47 of 2022 (Corporate Tax).
Architecture
Every financial transaction creates a balanced journal entry where total debits always equal total credits. This is enforced at the database constraint level.
gl_journal_entries (header)
id, journal_date, source, description, status
gl_journal_lines (details)
account_id → gl_accounts
debit_amount (always ≥ 0)
credit_amount (always ≥ 0)
CONSTRAINT: SUM(debit) = SUM(credit)
Only 'Posted' entries appear in reports
Chart of accounts
| Code range | Type | Normal balance | IFRS class |
|---|---|---|---|
| 1xxx | Asset | Debit | Financial Position |
| 2xxx | Equity | Credit | Financial Position |
| 3xxx | Liability | Credit | Financial Position |
| 4xxx | Income | Credit | Profit or Loss |
| 5xxx | Expense | Debit | Profit or Loss |
Automated journal sources
| Source | Trigger | Debit | Credit |
|---|---|---|---|
| Invoice | Invoice issued | Accounts Receivable | Revenue + VAT Output |
| Receipt | Payment received | Bank / Cash | Accounts Receivable |
| Credit Note | CN issued | Revenue | Accounts Receivable |
| Payroll | Payroll posted | Salary Expense | Salary Payable |
| Depreciation | Monthly run | Depreciation Expense | Accumulated Depreciation |
| Store Sale | POS sale | Cash + COGS | Revenue + Inventory |
Trial Balance
Lists all GL accounts with aggregate debit and credit totals. If total debits ≠ credits, there is a system error. EIN 360 enforces balance at the journal level, so the Trial Balance always balances.
- Balanced check:
SUM(debits) = SUM(credits) - Positive net = debit balance (Assets, Expenses)
- Negative net = credit balance (Liabilities, Equity, Income)
- Optional
asOfdate filter for point-in-time snapshots
Income Statement (P&L)
Measures financial performance over a period.
Revenue — for Income accounts: Credit Total − Debit Total. Income accounts have a credit normal balance.
Expenses — for Expense accounts: Debit Total − Credit Total. Expense accounts have a debit normal balance.
Net Income = Total Revenue − Total Expenses
Revenue is recognized at invoice issuance following IFRS 15’s five-step model: identify contract → identify obligations → determine price → allocate → recognize.
Balance Sheet
Shows financial position at a point in time. It must satisfy:
Assets = Liabilities + Equity
EIN 360 programmatically verifies this equation and displays a pass/fail indicator.
Contra-assets — Accumulated Depreciation accounts have a credit normal balance, creating negative amounts that reduce total assets.
Retained earnings — auto-calculated by running the P&L from inception to the balance sheet date. No manual period-end closing needed — the system performs a virtual close in real time.
Cash Flow Statement
Uses the Indirect Method (IAS 7.18b) — starts with net profit, then adjusts for non-cash items and working-capital changes.
Operating Activities:
Net Profit + Depreciation
± Working Capital Changes (AR, Inventory, AP, Payables)
Investing Activities:
− Purchase of PP&E, Vehicles, Computers
Financing Activities:
+ Capital Contributions ± Loans ± Lease Payments
Opening Cash + Net Change = Closing Cash
Data Integrity
| Safeguard | How it works |
|---|---|
| Posted-only | Only journals with status = ‘Posted’ appear |
| Immutable | DB triggers prevent modification of posted entries |
| Multi-tenant RLS | PostgreSQL Row-Level Security isolates data |
| Real-time | No pre-aggregated tables — computed from source |
| Audit trail | Every journal records timestamp, user, source |