Financial Clarity. Revenue Growth.

Double-entry accounting, automated billing, and real-time budget tracking — built into the platform

"What gets measured gets managed — what gets automated gets done."

6 Revenue Streams
ETB 250M 5-Year Budget
Year 2 Break-even Target
Real-time Ledger

01 — The Challenge The ECA Financial Challenge

The OPI assessment reveals ECA’s financial management as its strongest area — yet still critically underdeveloped. Revenue diversification is non-existent.

Today
100%
Membership dues only
With ERP
6
Diversified revenue streams

OPI Assessment Findings

Revenue Generation & Management: 48% — Highest OPI score but still amber. Basic revenue collection works; strategic management does not. 48%
“No well-structured annual financial plan template” — budgeting is ad hoc, not systematic. OPI: N
“No revenue streams other than membership fees” — 100% dependency on a single income source. OPI: N
“No clear & achievable revenue generation scheme” — no pricing models, no projections, no strategy. OPI: N
The platform changes this. Every service page in this concept note (Compliance, Matchmaking, Academy, Events) generates revenue. The ERP module tracks it all in a single, auditable ledger.

02 — Revenue Dashboard Live Revenue Tracking

A real-time view of budget versus actual across all six revenue streams. Dashboard updates instantly as payments are reconciled via SpacetimeDB WebSocket.

FY 2027 Revenue Dashboard

Membership Dues
ETB 7.2M
90% of ETB 8.0M
Compliance Services
ETB 2.1M
60% of ETB 3.5M
Matchmaking Commission
ETB 1.49M
75% of ETB 2.0M
Academy Fees
ETB 900K
60% of ETB 1.5M
Event Revenue
ETB 750K
63% of ETB 1.2M
Coffee Digest Subs
ETB 180K
60% of ETB 300K
Total Revenue
ETB 12.62M
76% of ETB 16.5M
All figures are illustrative Year 1 targets. The dashboard is live — every payment, invoice, and reconciliation updates the bars in real time via SpacetimeDB subscriptions.

03 — Billing Automation Automated Billing Flows

Each revenue stream has a BPMN-driven billing workflow. Invoices are generated, sent, and reconciled automatically — staff intervene only on exceptions.

Membership Dues
Annual via Stripe
Invoice Email Payment Link Auto-reconcile Status Update

Annual membership renewal triggers invoice generation. Stripe handles payment collection. On settlement, the ledger is auto-reconciled and member status updated to “Active”.

Compliance Fee
Per-shipment ($75–$150)
Verification Done Invoice Attach to Cert Payment Receipt

When a compliance verification completes, the fee is calculated based on lot complexity. Invoice attaches to the certificate — no cert issued until payment clears.

Matchmaking Commission
Success-based (3%)
Deal Closed Calculate 3% Invoice Exporter Payment Revenue

Commission is only charged on confirmed deals. The CRM marks a deal as “Won”, the ERP calculates the 3% commission, and invoices the exporter automatically.

Auction Commission
Event-based (8% on premium)
Lot Sold Calculate 8% Invoice Seller Payment Split 70/30

Auction premium (bid price minus reserve) incurs an 8% commission. Revenue split: ECA 70% / Embassy 30%. Both journal entries created atomically.

04 — Chart of Accounts Structured for ECA

A purpose-built chart of accounts maps every transaction to the right category. Revenue accounts mirror the six revenue streams; project accounts track B³ spending.

1000
Assets
Cash, bank accounts, receivables, prepaid grants, fixed assets
2000
Liabilities
Payables, deferred revenue, grant obligations, accrued expenses
3000
Equity
Retained surplus, reserve fund, restricted grant equity
4000
Revenue
4100 Membership Dues
4200 Compliance Services
4300 Matchmaking Commission
4400 Academy Fees
4500 Event Revenue
4600 Coffee Digest Subs
5000
Cost of Revenue
Compliance operating costs, platform fees, instructor costs, event direct costs
6000
Operating Expenses
Staff, rent, travel, marketing, professional services, admin
7000
Project Expenses (B³)
7100 P1: Lean Structure
7200 P2: Outsourcing
7300 P3: Rebranding
7400 P4: Digital Presence
7500 P5: Project Banking
Double-entry enforced: Every transaction creates a balanced debit/credit pair. The post_move reducer in SpacetimeDB validates that journal entries balance to zero before posting. Out-of-balance entries are rejected at the database level.

05 — B³ Budget Tracking Budget vs Actual — B³ Projects

Each B³ strategy project has a dedicated budget code. Spending is tracked in real time against approved budgets with RAG status indicators.

Project Budget (ETB M) Spent (ETB M) Remaining Status
P1: Lean Structure 5.0 3.2 1.8 On track
P2: Outsourcing 8.0 4.5 3.5 On track
P3: Rebranding 3.0 1.8 1.2 On track
P4: Digital Presence 12.0 6.5 5.5 Over budget
P5: Project Banking 4.0 0.5 3.5 Early stage
On track: Spend ≤ 80% of pro-rata budget
Early stage: < 20% of budget consumed, execution risk
Over budget: Spend > 100% of pro-rata allocation

P4 Alert: Digital Presence project is ETB 1.5M over pro-rata budget due to platform development costs exceeding estimates. Requires board review at Q2 meeting. Variance auto-flagged by the ERP system.

06 — Grant Management Development Finance Tracking

Grants from DFIs (Development Finance Institutions) have strict reporting requirements. Every expense tagged to a grant auto-generates funder reports.

IFAD — International Fund for Agricultural Development
Coffee Value Chain Digitization
ETB 15,000,000
Duration: 3 years (2026–2029)
Disbursed: ETB 6,200,000 (41%)
Milestones: 4 of 12 completed
Drawdown 41%
BOP INC — Base of the Pyramid Innovation Center
Smallholder Digital Onboarding
ETB 5,000,000
Duration: 1 year (2027)
Disbursed: ETB 1,800,000 (36%)
Milestones: 2 of 6 completed
Drawdown 36%
Every expense tagged with a grant code flows into a funder-specific report template. Quarterly reporting is auto-generated — no manual data assembly. Drawdown schedules are tracked against milestones.

07 — Reporting Auto-Generated Financial Reports

No more manual spreadsheets. Financial reports are generated from the live ledger data, formatted for each audience: board, auditors, funders, and management.

Monthly P&L
Monthly
Quarterly Board Pack
Quarterly
Annual Audit Inputs
Annual
Per-Project Variance
Monthly
Dues Collection Rate
Monthly — Target: 90%
Grant Funder Reports
Quarterly per grant
30 min
To generate quarterly board pack
Previously: 2–3 weeks manual work
Zero
Manual data entry for reporting
All reports derived from the live ledger
Audit-ready
Every transaction has a paper trail
Double-entry guarantee: debits = credits always

08 — Technical Architecture How Fermia Powers ERP

The ERP module runs on real Fermia accounting reducers — the same double-entry engine that passed 41 end-to-end tests. This is not a mock; it is production infrastructure.

Double-Entry Ledger

Every transaction creates balanced journal entries via acct_reducers.rs. The post_move reducer validates debit/credit balance at the SpacetimeDB level — impossible to create unbalanced entries.

Real-Time Ledger

SpacetimeDB WebSocket subscriptions push every journal entry, payment, and reconciliation to the browser in real time. No polling, no stale data.

Stripe Integration

Membership payments, compliance fees, and event registrations flow through Stripe. Webhook callbacks trigger auto-reconciliation reducers.

Auto-Reconciliation

When a Stripe payment settles, the ERP matches it to the open invoice, creates the receipt journal entry, and updates the member/order status — all in one atomic reducer call.

Dedicated Tables

Financial data uses dedicated SpacetimeDB tables (Account, Journal, JournalEntry, Payment) — not OODB. This ensures referential integrity and compile-time type safety for critical financial operations.

41 Tested Reducers

The accounting engine has 41 reducers tested end-to-end: create invoices, post moves, create payments, reconcile, cancel — with verified double-entry balances.

09 — Data Architecture ERP Object Model

The accounting data flows through a chain of dedicated SpacetimeDB tables. Each entity is linked by typed references, forming an auditable financial graph.

Financial Object Chain

Account
code, name
account_type
balance
Journal
name, code
journal_type
default_account_id
JournalEntry
ref, date
journal_id
status, total
Posting
account_id
debit, credit
move_id
Payment
amount, method
partner_id
status
Reconciliation
payment_id
move_line_ids
reconciled_at

Each arrow is a typed foreign key reference. post_move atomically creates Postings and updates Account balances. reconcile_payment links Payments to JournalEntry lines.

Financial Clarity for Ethiopia’s Coffee Future

From a single revenue stream to six. From manual spreadsheets to a real-time ledger. From ad-hoc budgeting to automated B³ tracking.

Explore Compliance See the Technology