Dashboard
Accountant-grade overview with year-to-date revenue, expenses, GST, tax estimates, filing dates, and missing items.
Fiscal today
Current-year control totals
Recent expense activity
| Date | Vendor | Category | Entity | Amount | GST | File |
|---|
Recent income activity
| Date | Source | Type | Entity | Amount | GST | File |
|---|
Outstanding items
CRA dates
Expense Log
Full ledger with allocation, GST, file tracking, and shared-expense splits visible in one grid.
| Date | Vendor | Category | Entity | Description | File | Amount | GST rate | GST | Total | Biz % | OEC % | OEC $ | APF $ | Flags |
|---|
Income Log
Separate revenue tracking for OEC and APF, including invoices, retainers, cash, and historical Uber income.
| Date | Entity | Type | Client / Source | Invoice # | Description | File | Amount | GST rate | GST | Invoice total |
|---|
OEC Fiscal (May–Apr)
Monthly corporate operating view with full category matrix, totals, and estimated small business tax.
APF Fiscal (Jan–Dec)
Monthly self-employment view with net income, CPP estimate, and personal tax estimate.
GST Tracker
Quarter-by-quarter GST collected, ITCs, and net owing or refund for OEC and APF.
Personal T1 Organizer
Medical, donations, RRSP, slips, and installments organized separately from APF but visible for the same T1 planning picture.
Medical & dental
| Date | Provider | Receipt # | Notes | Amount | File |
|---|
Charitable donations
| Date | Charity | Receipt # | Notes | Amount | File |
|---|
RRSP contributions
| Date | Institution | Receipt # | Notes | Amount | File |
|---|
TFSA tracker
| Date | Institution | Reference | Notes | Contribution | Withdrawal | Transfer | File |
|---|
T-slips received
| Date | Slip type | Payer | Slip # | Notes | Amount | File |
|---|
Tax installments paid
| Date | Description | Reference | Notes | Amount | File |
|---|
Personal income (from Income Log)
Income entries tagged Personal — T-slips, government benefits, other personal income
| Date | Type | Source / payer | Description | Amount | File |
|---|
Corporate Compensation & Shareholders
Manual entry fields for future salary, bonus, and dividend planning without a payroll engine. Use this as an accountant-ready register for shareholder ownership, compensation, and T4/T5 prep support.
Shareholder register
| Name | Ownership % | Share class | Voting | Start date | Notes |
|---|
Salary / bonus tracker
| Pay date | Recipient | Gross | CPP wh | Tax wh | Employer CPP | Net pay | Remit date | T4 note |
|---|
Dividend tracker
| Declare | Pay date | Recipient | Ownership % | Type | Cash paid | T5 / resolution ref | Notes |
|---|
Payroll
Employee roster, pay runs, CRA remittances, and T4 data. Pay runs auto-post to Expense Log as Salaries & Wages (GIFI 9060).
CRA rates (2024) — update annually in Settings
CPP employee: 5.95% on earnings over $3,500 to YMPE $68,500
EI employee: 1.66% up to $63,200
EI employer: 2.32% (1.4× employee)
Remittance due: 15th of following month
Employee / contractor roster
| Name | Type | Province | Rate | Pay freq. | Start date | Status | Notes |
|---|
Pay runs
| Pay date | Employee | Gross | CPP (ee) | EI (ee) | Tax wh | Net pay | Emp CPP | Emp EI | Total cost | Remit by | T4 note | Posted |
|---|
CRA remittance schedule
T4 annual summary (current year)
| Employee | Gross (Box 14) | CPP (Box 16) | EI (Box 18) | Tax wh (Box 22) | Net paid | Note |
|---|
Vendor Dictionary
Future-entry defaults for category, entity, business-use percentage, OEC/APF split, and GST treatment.
| Vendor | Entity | Category | Biz % | OEC % | GST rate | Notes |
|---|
Audit Log
Chronological record of every change to expenses, income, and vendors. Sorted newest first.
| Timestamp | Type | Action | Record | Entry date | Entity | Amount | Details |
|---|
Scanner
Batch receipt and invoice intake queue. Historical Uber statements stay supported, but no future Uber workflow is assumed.
Scanner URL, token, and Anthropic API key are configured in Settings → Infrastructure.
| File | Status | Doc type | Vendor / Source | Category | Entity | Amount | Date | Suggested filename |
|---|
Settings
All configuration lives here — branding, entities, tax rates, infrastructure, and accountant access. Changes save to KV and apply immediately.
Branding
Auto follows your OS dark/light preference. Manual choice is saved and overrides system setting.
Entities
Tax & personal rates
Payroll rates (CRA — update annually)
Employer CPP = employee CPP. Employer EI = employee EI × multiplier.
Home office & motor vehicle
Data encryption
Unknown
—
AES-256-GCM encryption happens in your browser before data leaves. The data worker only ever sees ciphertext blobs.
The encryption key is derived from your DATA_TOKEN via PBKDF2 (100,000 iterations).
If you lose your DATA_TOKEN, encrypted data is unrecoverable — keep a JSON backup before enabling, and again before rotating the token.
Local cache (your browser) stays plaintext for performance — same trust boundary as the running app.
Accountant access
Send the app URL and password separately to your accountant.
White-label deployment guide
To onboard a new client to Ledger Pro, follow these steps:
- Create a Cloudflare KV namespace for the client (e.g.
CLIENT_DATA) in the Cloudflare dashboard. - Deploy a copy of the data worker with the client's KV binding and a unique
DATA_TOKENsecret. - Deploy a copy of the scanner worker (or share an existing one) with a unique
SCANNER_TOKEN. - Create an R2 bucket (e.g.
{client}-receipts) and deploy the receipts worker with the R2 binding and DATA_TOKEN secret. - Hand the client this HTML file hosted on Cloudflare Pages.
- Client opens Settings and enters: data worker URL, data token, scanner URL, scanner token, receipts worker URL + token, client code, their own Anthropic API key.
- Client configures branding (app name, owner name, logo) and entity details (corp name, sole prop name, fiscal start month, tax rates).
- Client clicks Migrate local → KV to push initial data.
- Optional: Client uploads a vendor CSV to seed their dictionary.
- Set the accountant password and share the magic URL
?accountant=PASSWORDwith their accountant.
Bulk receipt upload
For records with a filename but no attached receipt: select your saved receipt files and they'll be matched by exact filename, uploaded to R2, and linked to the corresponding expense or income record. Files with no matching record are skipped.
Data backup
Export JSON after every major session. Store dated backups locally.