Claim-First Expense Platform for a Canadian Engineering Firm
Designed and built a clickable expense management platform for a Canadian consulting engineering firm: approvers decide claims line by line with policy flags, finance audits flagged and sampled claims, GST/HST and QST are read from each receipt for input tax credits, and approved claims are reimbursed in EFT payment runs.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, approvals inbox, claim review, finance review queue and payment runs, with receipt viewer, flag detail and payment run panels. Every one of the 29 demo claims opens its own review page.
Duplicate receipt image, missing or invalid supplier tax number above $100, over limit, missing receipt above $25, past the 60-day window, foreign tax coded as HST, mileage off the mapped route by more than 10% and more. Approving past a blocking flag needs an override reason.
HST, GST only, GST plus PST and GST plus QST, with US receipts shown as not recoverable. Meals are limited to a 50% ITC, and mileage and per diem allowances carry a notional ITC.
83 expense lines (56 receipts, 20 mileage trips, 6 per diems, 7 paid in US dollars) from 26 employees in 4 offices, 9 projects for 7 clients and 13 EFT payment runs.
Laurentide Pass, a consulting engineering firm of about 640 people, ran expenses on an emailed Excel template with paper receipts posted to Ottawa from site offices. Claims took four to six weeks to reimburse, finance keyed every line into Sage and split GST, HST and QST by eye, input tax credits were lost on receipts without a supplier registration number, the same hotel folio was sometimes claimed twice, and rebillable project costs were missed on client invoices.
Birchbark runs the claim-first loop: employees spend their own money and claim it back, approvers decide each claim with its policy flags in view, finance audits flagged and sampled claims before release, tax is extracted per line for GST/HST input tax credits and QST input tax refunds, and approved claims are paid by EFT in scheduled payment runs.
With no company cards, every control happens after the money is spent. Each claim line has to pass the firm's policy, Canadian tax rules that change by province and the approval chain, and engineers on remote sites still expect to be paid within days.
Ontario and the Atlantic provinces charge HST, Alberta charges GST only, British Columbia, Saskatchewan and Manitoba add a provincial sales tax that is generally not recoverable, and Quebec adds QST. The place of supply decides what can be claimed, and US sales tax cannot be claimed at all.
The Input Tax Credit Information Regulations set what a receipt must show by amount band, including the supplier's GST/HST registration number, and QST refunds need the QST number. Year end was too late to find out a receipt did not qualify.
A reimbursement with a receipt is generally not a taxable benefit, while an allowance is taxable unless it is reasonable. Per-kilometre rates switch band at 5,000 km a year, a trip cannot be paid as both mileage and fuel, and meals carry a 50% limit for both income tax and ITCs.
The same folio could be claimed by the engineer and by the project lead who booked it. Approvers go on site for weeks, and a changed bank account just before a payment run is a classic fraud signal.
Mapped 8 user roles, 40 screens (28 staff web screens and 12 screens in the English and French employee mobile app) and the data model for entities, employees, receipts with OCR results and image hash, expense lines, claims, flags, delegations, payment runs, exports and rebill batches. Wrote down the rules the design follows: CRA guidance on reimbursements and allowances, reasonable per-kilometre rates, GST/HST input tax credits and QST refunds, notional ITCs under section 174 of the Excise Tax Act, the 50% meals limit, Bank of Canada exchange rates, six-year record keeping with imaged receipts, PIPEDA, PIPA, Quebec Law 25 and the Charter of the French Language.
Built 5 key screens on a production dashboard kit: the dashboard with KPIs, claim pipeline against target ages and work by role, the approvals inbox with delegation and bulk approve of clean claims, claim review with tax, FX, mileage band and per diem detail per line, the finance review queue with tax at risk and a duplicates view, and payment runs with pre-release checks and CPA 005 file details. All actions run on local state.
Receipt OCR (such as Veryfi, Mindee or Amazon Textract), route distances from Google Maps or Mapbox, Bank of Canada daily rates, CPA 005 EFT files or Plooto, exports to QuickBooks Online, Sage Intacct or NetSuite, HRIS sync, single sign-on and push notifications. An audit log of every approval, override, tax correction and payment release, rates confirmed with the client's tax adviser, the employee mobile app and the remaining screens for tax recovery, exports, rebilling, policy, reports and settings.
Each flag states the rule and the numbers behind it, such as a Calgary hotel at $289.00 a night against a $240.00 limit, next to the employee's justification. The inbox can show only clean claims, and bulk approve skips any claim with a blocking flag.
Every line shows the tax extracted, the supplier registration check and whether the ITC is full, limited to 50% or not available. The review queue totals the tax at risk on each claim, so missing numbers are chased while the receipt can still be replaced.
A duplicate flag matches the receipt image hash across employees, or the same merchant, amount and date, so a hotel folio claimed by two people is blocked on both claims, and the duplicates view lists every match for the finance reviewer.
A payment run needs a second approver before the CPA 005 file is generated, warns when a payee changed bank details in the last 48 hours, shows bank accounts masked to the last 3 digits and tracks each EFT return with its reason.

Designed and built a clickable accounts payable platform for an Indian auto components maker with four plants and a GSTIN in each state: invoice capture with field confidence, three-way matching against POs and goods receipts, GST and TDS per invoice, MSME due dates from the acceptance date, an exceptions queue and GSTR-2B reconciliation.

Designed and built a clickable filing workbench for a Brisbane payroll bureau that runs payroll for about 380 Australian employers: a pay run board with cut-off timers, a pay run review with automated checks and a four-eyes rule, STP Phase 2 lodgments with plain-English ATO guidance, and state payroll tax returns with group apportionment.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab