zoho books teardown
Zoho Books — product teardown (reference for Caesar)
Section titled “Zoho Books — product teardown (reference for Caesar)”What this is. A full walkthrough of the live Zoho Books demo (
zoho.com/ca/books/accounting-software-demo, CA edition), captured 2026-06-18 by driving the running app and reading its DOM. This is the product we mirror/clone for Caesar — seebrd.mdfor what we keep, drop and add (summarised in §13 below).Demo caveat: it’s a read-mostly “Demo Org” with seeded fake data; create/save actions are disabled, so forms were inspected for structure (fields, line grids, actions) rather than submitted. Fields tagged like
ad / sint / molestiasare demo custom fields, not standard.
1. Global shell / chrome
Section titled “1. Global shell / chrome”A persistent three-region layout, light theme, very dense.
- Top bar: org switcher (“Demo Org” / “This is a Test organization”), global Search (
Search in <module> ( / )), Quick Create (+), Recent Activities, Refer and Earn, Notifications, Settings (gear), Help (helpline phone), profile (“Hello, Demo User”). - Left nav (primary): Home · Items · Banking · Sales · Purchases · Time Tracking · Tax Returns · Accountant · Reports · Documents · Configure Features list. Modules expand in place to reveal sub-items (e.g. clicking Sales reveals Customers/Estimates/Invoices/…).
- Main content: module list views and detail/forms.
- Quick Create (+) menu shortcuts: Create Invoice, Create Bill, Create Expense, New Invoice, New Recurring Invoice, New Customer Payment, New Bill, New Vendor Payment, New Recurring Bill.
Design language (observed computed styles)
Section titled “Design language (observed computed styles)”- Font: Inter (fallback Source Sans Pro / Helvetica / Arial). Base size 13px — dense.
- Primary button: solid blue
#408DFB, white text, ~5px radius, normal weight (400), compact padding. - Light surfaces, table-dominant, minimal chrome. Status communicated via uppercase text badges.
- Implication for Caesar: mirror the information density and structural patterns, but re-skin
entirely in the Rechaj design system (brand green
#01E46F, General Sans, 4px grid, no card strokes, 600-weight headings). We clone the IA and flows, not the visual style.
2. Information architecture — full route map
Section titled “2. Information architecture — full route map”SPA with hash routing (#/…). Every primary surface:
| Module | Route | Sub-items (routes) |
|---|---|---|
| Home | #/home |
Dashboard #/home/dashboard · Getting Started #/home/gettingstarted · Announcements #/home/announcement · Recent Updates #/home/recentupdates |
| Items | #/inventory/items |
(single list) |
| Banking | #/banking |
per-account transactions #/banking/transactions?account_id=… |
| Sales | — | Customers #/contacts · Estimates #/quotes · Invoices #/invoices · Payments Received #/paymentsreceived · Recurring Invoices #/recurringinvoices · Credit Notes #/creditnotes |
| Purchases | — | Vendors #/vendors · Expenses #/expenses · Recurring Expenses #/recurringexpenses · Bills #/bills · Payments Made #/paymentsmade · Recurring Bills #/recurringbills · Vendor Credits #/vendorcredits |
| Time Tracking | — | Projects #/timesheet/projects · Timesheet #/timesheet/alltimeentries |
| Tax Returns | — | GST/HST #/taxreturns/hstreturns · BC PST · QST · MB RST · SK PST · Tax Payments #/taxreturnpayments/dues · Tax Adjustments #/taxadjustment/list |
| Accountant | — | Manual Journals #/accountant/journals · Bulk Update #/accountant/bulkupdateaccounts · Currency Adjustments #/accountant/bcyadjustment/list · Chart of Accounts #/accountant/chartofaccounts · Transaction Locking #/accountant/transactionlock |
| Reports | #/reports |
74 reports across 14 categories (§11) |
| Documents | #/documents/inbox |
All Documents · Files · Bank Statements · Trash · (Enable Autoscan/OCR) |
| Settings | #/settings |
full taxonomy in §12 |
3. Dashboard (the command-centre analog)
Section titled “3. Dashboard (the command-centre analog)”Widget grid, with an Accrual / Cash basis toggle:
- Total Receivables — Current vs Overdue (e.g. Total Unpaid Invoices $372,580.05; Current $0.00 / Overdue $372,580.05).
- Total Payables — Current vs Overdue (Total Unpaid Bills $249,849.46).
- Cash Flow — fiscal-year line chart: Cash as on
, + Incoming, − Outgoing, = Cash as on . - Income and Expense — fiscal-year bar chart.
- Top Expenses — by category, for a chosen period.
- Projects — watchlist.
- Bank and Credit Cards — balances per account.
- Account Watchlist — selected GL accounts to monitor (accrual).
→ Maps closely to Caesar’s command centre (BRD §7): Receivables, Payables, Cash, Income/Expense, Bank balances. Caesar adds the live operational overlay (swap revenue vs SRRR, fixed-asset register, requisitions, consolidated D:E/covenant).
4. Sales module (Accounts Receivable)
Section titled “4. Sales module (Accounts Receivable)”| View | Columns | Statuses seen | Actions |
|---|---|---|---|
Customers #/contacts |
Name, Company Name, Email, Work Phone, Receivables, Unused Credits | — | New |
Estimates #/quotes |
Date, Estimate#, Reference#, Customer, Status, Amount | DRAFT, INVOICED | New |
Invoices #/invoices |
Date, Invoice#, Order Number, Customer, Status, Due Date, Amount, Balance Due | DRAFT, PARTIALLY PAID, (Sent/Paid/Overdue) | New, View (saved filters), pagination “50 per page” |
Payments Received #/paymentsreceived |
Date, Branch, Payment#, Type, Reference#, Customer, Invoice#, Mode, Amount, Unused Amount | Invoice Payment / Retainer Payment | New |
Recurring Invoices #/recurringinvoices |
Customer, Profile Name, Frequency, Last Invoice Date, Next Invoice Date, Status, Amount | ACTIVE, EXPIRED, STOPPED | New |
Credit Notes #/creditnotes |
Date, Credit Note#, Reference#, Customer, Invoice#, Status, Amount, Balance | CLOSED, VOID, PENDING APPROVAL | New |
Invoice create form (#/invoices/new): header = Customer Name, Invoice#, Order Number, Invoice Date, Terms (→ Due Date), Salesperson, Terms & Conditions. Line grid: Item Details · Quantity · Rate · Discount · Tax · Amount (Add New Row, Add Items in Bulk). Footer: Sub Total, Shipping Charges (+Apply Tax on Shipping), Discount, Round Off, Adjustment, Total. Actions: Save as Draft · Save and Send · Make Recurring · Upload File · Cancel.
Customer create form (#/contacts/new): Type = Business/Individual; Primary Contact (Salutation/First/Last), Company Name, Display Name, Email, Phone (Work/Mobile); Currency, Tax Rule, Opening Balance, Payment Terms; Enable Portal? + Portal Language; Documents; “Add more details” (address / contact persons / custom fields / reporting tags / remarks).
5. Purchases module (Accounts Payable)
Section titled “5. Purchases module (Accounts Payable)”| View | Columns | Statuses | Actions |
|---|---|---|---|
Vendors #/vendors |
Name, Company Name, Email, Work Phone, Payables, Unused Credits | — | New |
Expenses #/expenses |
Date, Expense Account, Reference#, Vendor, Paid Through, Customer, Status, Amount | — | New, “2 New” (bulk) |
Recurring Expenses #/recurringexpenses |
(recurring profile pattern) | New | |
Bills #/bills |
Date, Bill#, Reference#, Vendor, Status, Due Date, Amount, Balance Due | DRAFT, PENDING APPROVAL, (Open/Paid/Overdue) | New, View, pagination |
Payments Made #/paymentsmade |
Date, Payment#, Reference#, Vendor, Bill#, Mode, Amount, Unused Amount | — | New |
Recurring Bills #/recurringbills |
(recurring profile pattern) | New | |
Vendor Credits #/vendorcredits |
Date, Credit Note#, Reference#, Vendor, Status, Amount, Balance | VOID, OPEN, DRAFT | New |
Bill create form (#/bills/new): header = Vendor Name, Bill#, Order Number, Bill Date, Due Date, Payment Terms. Line grid: Item Details · Account (expense COA account) · Quantity · Rate · Tax · Customer Details (for billable) · Amount. Footer: Sub Total, Discount %, Total. Actions: Save as Draft · Save as Open · Make Recurring. Approval is a separate submit step → lands in PENDING APPROVAL (this is exactly Caesar’s BRD §8.2 / §12 approval-matrix need).
6. Banking & reconciliation
Section titled “6. Banking & reconciliation”- Banking
#/banking: card/list of accounts with columns Account Details · Uncategorized · Pending Checks · Amount in Bank · Amount in Zoho Books. Actions: Import Statement, Add Bank or Credit Card; period filter (“Last 30 days”), chart toggle. - The “Amount in Bank vs Amount in Zoho Books” delta + “Uncategorized” count is the reconciliation surface; each account drills to its transactions (
#/banking/transactions?account_id=…&filter_by=Status.All) for categorise/match. - → Maps to Caesar BRD §8.4 (bank feeds per subsidiary, automated reconciliation, group cash in USD).
- Full element-level Banking teardown (build contract):
banking-teardown.md— overview + transactions captured end to end; sub-flow forms/modals flagged for screenshot capture.
7. Items / Inventory
Section titled “7. Items / Inventory”- Items
#/inventory/items: Name · SKU · Type · Description · Rate. Type values include Goods/Service (demo shows “Digital_service”). Action: New. - → Caesar uses Items/Inventory as the receipt point that converts to a capitalised fixed asset on deployment (BRD §8.5–8.6) — the most MocX-specific flow, absent in vanilla Zoho.
8. Accountant module (the GL core)
Section titled “8. Accountant module (the GL core)”| View | Structure |
|---|---|
Manual Journals #/accountant/journals |
List: Date, Journal#, Reference#, Status (DRAFT/PUBLISHED), Notes, Amount, Documents. Action: New Journal. |
Chart of Accounts #/accountant/chartofaccounts |
List: Account Name, Account Code, Type. 52 default accounts (§10). Action: New Account. |
Transaction Locking #/accountant/transactionlock |
Period locking — per-module lock to a date, or “Lock All Transactions”. (Caesar BRD non-negotiable: period locking.) |
Currency Adjustments #/accountant/bcyadjustment/list |
FX revaluation: Date, Currency, Exchange Rate, Gain or Loss, Notes. Action: Make an Adjustment. |
Bulk Update #/accountant/bulkupdateaccounts |
Bulk re-account transactions. |
Manual Journal form (#/accountant/journals/new): header = Date, Journal#, Reference#, Notes, Currency, “Cash based journal” toggle, Journal Type. Line grid: Account · Description · Contact · Tax · Debits · Credits. Footer: Sub Total, Total ($), Difference (must be 0 → enforces balanced double-entry). Actions: Save as Draft · Save and Publish (publish = posted). → Directly = Caesar’s GL journal entry.
Key concept — sub-ledger → GL: every transaction (invoice, bill, payment, expense) auto-posts a journal. On a transaction’s detail page a “Journal” action shows the underlying double-entry posting. Caesar inverts the emphasis (the ledger is the system of record; sub-ledgers feed it summarised journals) but the mental model is the same.
9. Transaction lifecycle & cross-cutting patterns
Section titled “9. Transaction lifecycle & cross-cutting patterns”- Document detail pattern (e.g.
#/invoices/2): formatted document (Invoice#, Bill To, line items, totals) + lifecycle action bar (Edit · Send Mail · Share · Reminders · PDF/Print · Record Payment · Journal · More) + an activity/audit timeline (“Invoice sent via email”, “Customer viewed on…”, “Payment Initiated”) and Comments & History. - Status vocabulary per doc type: Draft → (Pending Approval) → Sent/Open → Partially Paid → Paid/Closed; plus Void, Overdue, Expired, Stopped. Uppercase text badges.
- Approval: documents can sit in PENDING APPROVAL (seen on Bills, Credit Notes) — an approval step between draft and open.
- Recurring: invoices/bills/expenses support recurring profiles (frequency, next-run).
- Attachments: Upload File on every transaction; Documents module + Autoscan (OCR).
- Multi-currency: per-contact currency, currency on journals, FX revaluation, realized/unrealized gain-loss reports.
- Multi-branch: “Branch” appears on transactions (e.g. Payments Received → “Head Office”).
- Custom fields & Reporting Tags: transactions carry custom fields and Reporting Tags (see §12) — Zoho’s dimensional slicing mechanism.
10. Default Chart of Accounts (52 accounts) & type taxonomy
Section titled “10. Default Chart of Accounts (52 accounts) & type taxonomy”Account types observed (count): Expense (21), Income (7), Equity (4), Other Current Liability (4), Other Current Asset (3), Cash (3), Accounts Payable (1), Accounts Receivable (1), Cost of Goods Sold (1), Other Expense (1), Fixed Asset (1), Stock (1, Inventory Asset), Other Liability (1), Bank (1), Credit Card (1), Payment Clearing Account (1).
Representative accounts: Accounts Payable, Accounts Receivable, Advance Tax, Bad Debt, Bank Fees and Charges, Cost of Goods Sold, Depreciation Expense, Drawings, Exchange Gain or Loss, Furniture and Equipment (Fixed Asset), Inventory Asset (Stock), Opening Balance Adjustments/Offset, Owner’s Equity, Petty Cash, Prepaid Expenses, Retained Earnings, Sales, Tax Payable, Undeposited Funds, Unearned Revenue, Bank/Cash/Credit Card Account, Payment Clearing Account.
→ Caesar wants one governed group COA (IFRS-aligned, lean) mapped from this, with analytical detail living in segments rather than a wide COA (BRD §6). The Fixed Asset / Depreciation / Inventory Asset accounts are the seed for the asset sub-ledger flow.
11. Reports catalog (74 reports, 14 categories)
Section titled “11. Reports catalog (74 reports, 14 categories)”- Business Overview (5): Profit and Loss · Cash Flow Statement · Balance Sheet · Business Performance Ratios · Movement of Equity
- Sales (3): Sales by Customer · by Item · by Sales Person
- Receivables (8): Customer Balances · AR Aging Summary · AR Aging Details · Invoice Details · Estimate Details · Customer Balance Summary · Receivable Summary · Receivable Details
- Payments Received (4): Payments Received · Time to Get Paid · Credit Note Details · Refund History
- Recurring Invoices (1)
- Payables (10): Vendor Balances · Vendor Balance Summary · AP Aging Summary · AP Aging Details · Bills Details · Vendor Credits Details · Payments Made · Refund History · Payable Summary · Payable Details
- Purchases and Expenses (8): Purchases by Vendor / by Item · Expense Details · Expenses by Category / Customer / Project / Employee · Billable Expense Details
- Taxes (1): Tax Summary
- Banking (1): Reconciliation Status
- Projects & Timesheet (7)
- Accountant (6): Account Transactions · Account Type Summary · General Ledger · Detailed General Ledger · Journal Report · Trial Balance
- Currency (2): Realized Gain or Loss · Unrealized Gain or Loss
- Activity (5): System Mails · Activity Logs & Audit Trail · Exception Report · Portal Activities · Client Reviews
- Plus Custom Reports + Favorites. Action: Create Custom Report.
→ P&L / Balance Sheet / Cash Flow / General Ledger / Trial Balance / AR & AP Aging / Audit Trail cover Caesar BRD §10. Caesar adds per-segment slicing (cluster/SPV P&L) and the consolidated group roll-up.
12. Settings taxonomy
Section titled “12. Settings taxonomy”Grouped left-nav inside Settings:
- Organization — Org Profile
#/settings/orgprofile, Branding, Currencies#/settings/currencies, Opening Balances#/settings/openingbalance/details. - Taxes & Compliance — Taxes / Return Settings
#/settings/taxes/returnsettings. - Users & Roles — Users
#/settings/users, Roles#/settings/roles(default: Admin = unrestricted; Staff = all except reports/settings/accountant; Staff-Assigned-Customers-Only; custom roles support per-module permissions → segregation of duties). - Preferences — General + per-module (Contacts, Accountant, Timesheet, Portal, Quotes, Invoices, Recurring Invoices, Credit Notes, Delivery Notes, Packing Slips, Expenses, Items).
- Online Payments — customer & vendor payment gateways.
- Customisation — Reporting Tags
#/settings/reportingtags(Tag Name + named Options, can be Mandatory) · Transaction Number Series (auto-numbering) · PDF Templates. - Reminders & Notifications, Developer & Data (API, Data Backup), Integrations (SMS, Zapps, other apps, Zoho Sign).
Reporting Tags = the dimension mechanism. Free-form tags with options, attachable per transaction/line, optionally mandatory. This is Zoho’s analog to Caesar’s segment spine — but Caesar elevates dimensions to a first-class, structured 4-segment model (Subsidiary / Location / Class / Department) rather than generic tags (BRD §6). Important design divergence.
13. Caesar mapping — mirror / drop / add
Section titled “13. Caesar mapping — mirror / drop / add”Mirror (clone the IA, flows, forms):
- Sales (AR): Customers, Invoices, Payments Received, Credit Notes, (Estimates optional).
- Purchases (AP): Vendors, Bills, Payments Made, Expenses, Vendor Credits — plus the requisition→PO→bill approval chain (Zoho’s PENDING APPROVAL is the seed; Caesar formalises the amount/entity approval matrix).
- Banking + reconciliation surface.
- Accountant: Manual Journals (debit/credit + Difference=0), Chart of Accounts, Transaction Locking (period lock), Currency Adjustments (FX reval).
- Reports: P&L, Balance Sheet, Cash Flow, GL, Trial Balance, AR/AP Aging, Audit Trail.
- Patterns: document detail + activity/audit timeline, sub-ledger→GL “Journal” link, status lifecycle, attachments, multi-currency, recurring.
- Dashboard → command centre.
Drop / defer (per BRD §14 out-of-scope or not-MocX):
- Estimates/Quotes, customer/vendor portals, online payment gateways, reminders/email templates, client reviews, CRM-ish bits.
- Time Tracking / Projects billing (not core; revisit only if billable ops need it).
- Canada-specific Tax Returns (GST/HST, PST, QST…) → replaced by Nigerian VAT/WHT + FIRS e-invoicing (BRD §8.9).
- Riders are not customers — revenue arrives as summarised daily journals by cluster, not per-rider invoices (BRD §2, §8.3). So the high-volume AR invoicing path is not mirrored for swap revenue.
Add (Caesar-native, beyond Zoho):
- Subsidiary tree + elimination entity and native group roll-up (Zoho needs separate orgs; this is the reason for Caesar — BRD §5).
- First-class 4-segment dimensional spine (Subsidiary/Location/Class/Department) instead of Reporting Tags (BRD §6).
- Fixed-asset sub-ledger seeded from the deployed fleet, capitalisation from Hermes deployment events, depreciation, collateral/SPV tagging (BRD §8.5).
- Inventory→capitalised-asset conversion flow (BRD §8.6).
- Liabilities/facility schedules (Telpo facility, asset-finance, deferred tail) with D:E & covenant headroom (BRD §8.7).
- Intercompany flows + elimination (BRD §8.8).
- Summarised-journal ingestion from Hermes / billing / Polaris / banks (BRD §9).
- Command centre overlay of booked ledger + live operational feeds (BRD §7).
- Cluster / SPV-pool reporting off the segment spine; consolidated group statements.
Captured from the live CA demo, 2026-06-18. Representative create-forms inspected: Invoice, Bill, Manual Journal, Customer (others follow the same header + line-grid + footer pattern). Next batches design Caesar’s flows against this baseline — command centre first (see ../flows/README.md).