Captures user-confirmed CRA registration & filing setup: - Annual GST/HST filer (return Mar 31, instalments if prior net tax ≥ \$3k) - Annual T2 filer (return Jun 30, balance due Mar 31 for CCPC) - HST# 741224877 currently stored as 9-digit BN root only; normalize to full 15-char '741224877 RT0001' for tax-report validation - Quick Method opportunity downgraded — \$400k threshold applies to associated-group totals; Nexa+Westin+Divine combined likely exceeds it - Add HST cadence escalation flag (quarterly auto-trigger at \$1.5M) - Acceptance criteria expanded with HST# format, filer config, and intercompany invoice test case Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
28 KiB
Nexa Systems Inc — Chart of Accounts & Accounting Setup Design
Date: 2026-05-12
Target: odoo-nexa production instance, database nexamain
Status: Design — pending implementation plan
1. Context
Nexa Systems Inc is a Canadian CCPC providing IT services: custom software development, custom ERP, business apps, hosting, custom websites, and custom web apps. Operations are Canada-wide with planned global expansion. Workforce: solo founder today (Gurpreet, Canadian), hiring plan favours Canadian T4/T4A with occasional India contractors for burst capacity. Nexa will pursue SR&ED tax credits.
Current state (as of 2026-05-12):
- Odoo 19 Enterprise, l10n_ca localization loaded
- 426 GL accounts (most unused — generic Canadian template bloat)
- 49 active taxes with duplicates
- 14 journals incl. 7 bank accounts (overprovisioned)
- 776 journal entries, 125 invoices, data 2020-01-01 to 2026-05-04
- Historical Odoo data is NOT authoritative — accountant has filed externally on Excel-based records. Past will be reconciled later.
- All prior years filed with CRA. Fiscal year-end Dec 31.
CRA registration & filing cadence:
- Business Number / HST account:
741224877(currently stored as 9-digit BN root only on company record; needs to be updated to full 15-char format741224877 RT0001for Odoo's Canadian tax reports to validate cleanly). - GST/HST filing: annual. Return due 3 months after fiscal year-end (March 31).
- T2 corporate income tax filing: annual. Return due 6 months after fiscal year-end (June 30). Balance owing due 3 months after year-end (March 31) for CCPCs eligible for SBD; 2 months otherwise.
- HST instalments: annual filers must remit quarterly instalments if their net tax for the prior year was ≥ $3,000. Track via account 118200 GST/HST Instalments Paid.
- T2 instalments: monthly or quarterly instalments required if Part I tax owing in prior year ≥ $3,000.
Goals:
- CRA compliance — clean tax handling, T2 Schedule 125 alignment, audit-ready
- Tax savings — SR&ED claim infrastructure from day 1, zero-rated export handling, CCA structure
- Automation — fiscal positions, default accounts, bank feeds, subscription billing
- Ease of use — invoicing is one-click after customer/product selection
Scope: Chart of accounts structure + tax/fiscal-position setup + analytic plans + automation hooks. Out of scope: bank feed onboarding (separate sub-project), CCA custom module (defer until volume warrants), historical data reconciliation (separate sub-project when accountant records arrive).
2. Approach
Approach #2 — Hybrid: keep l10n_ca's 6-digit code scheme (Canadian accountants recognize it), aggressively curate (~370 unused accounts archived, ~20 renamed, ~70 added), supplement with three analytic plans for finer reporting without GL proliferation.
Rejected alternatives:
- Surgical — keep all 426 accounts unchanged. Rejected: bookkeeping burden, no IT-services shape.
- Clean slate (custom 4-digit) — toss l10n_ca. Rejected: accountants would have to learn it; loses pre-mapped CRA tax structure.
3. Code Skeleton
1xxxxx ASSETS
111xxx Cash & cash equivalents
112xxx Accounts receivable
113xxx Prepaid expenses
114xxx Other current assets
115xxx Due from shareholder / related parties
118xxx Tax assets (HST ITC, instalments)
151xxx Capital assets — cost
154xxx Accumulated depreciation (contra)
2xxxxx LIABILITIES
211xxx Accounts payable
213xxx HST/GST/QST collected
214xxx Net tax payable
215xxx Source deductions payable
216xxx Corporate income tax payable
221xxx Due to shareholder
222xxx Due to related parties
251xxx Long-term debt
3xxxxx EQUITY
311xxx Share capital + contributed surplus
321xxx Retained earnings + dividends
4xxxxx REVENUE (by service line — jurisdiction handled by tax codes, not by account)
411xxx Recurring revenue (SaaS, hosting, support)
412xxx Project revenue (custom dev, web app, website, ERP)
413xxx Services (consulting, training, support hourly)
414xxx Reseller revenue (third-party software/hardware)
419xxx Sales adjustments (discounts, returns, bad debt recovery)
5xxxxx DIRECT COSTS (COGS)
511xxx Infrastructure & hosting costs
512xxx Project direct costs (subcontractors, project software, project travel)
513xxx Cost of resold goods
519xxx COGS adjustments
6xxxxx OPERATING EXPENSES
611xxx Personnel — internal staff (T4)
612xxx Personnel — contract (T4A non-project)
621xxx Office & facilities
631xxx Technology — operating (internal SaaS subs)
641xxx Marketing & sales
651xxx Professional fees
661xxx Insurance
671xxx Travel & entertainment
681xxx Training & development
691xxx Banking & finance charges
699xxx Other (bad debt, donations, fines, FX losses, depreciation)
7xxxxx Other income (interest, FX gains)
8xxxxx Other expenses (rare; mostly absorbed in 691/699)
Three analytic plans (orthogonal tagging, applied per journal line):
| Plan | Required On | Purpose |
|---|---|---|
| Project | revenue, COGS, project costs | Project P&L, customer profitability, WIP, billable-hour realization |
| Department | payroll, OpEx | Departmental P&L, overhead allocation |
| SR&ED Tag | labour, contractors, materials (R&D) | T661 SR&ED claim — eligibility classification |
4. Revenue Accounts (4xxxxx)
Recurring Revenue
411100 SaaS Subscription Revenue
411200 Hosting & Infrastructure Revenue
411300 Support & Maintenance Contracts
411400 Domain/SSL/Renewal Pass-through Revenue
411500 Setup / Onboarding Fees
Project Revenue (one-time, milestone-billed)
412100 Custom Software Development
412200 Custom Web Application Development
412300 Custom Website Development
412400 ERP Implementation & Customization
412500 Mobile App Development ← reserved for future
412600 Business App / Integration Work
Services (hourly, retainer)
413100 Consulting & Advisory
413200 Training & Workshops
413300 Technical Support — Per-incident / Hourly
Reseller / Pass-through
414100 Third-party Software Resale (M365, Adobe)
414200 Hardware Resale
Adjustments (contra-revenue)
419100 Sales Discounts
419200 Sales Returns & Refunds
419300 Bad Debt Recovery
Design rule: one revenue account per service line. Jurisdiction (ON/Atlantic/QC/export/etc.) tracked entirely through tax codes and fiscal positions, NOT duplicate accounts.
5. Direct Costs / COGS (5xxxxx)
Infrastructure & Hosting
511100 Cloud Infrastructure (AWS, Hetzner, OVH, DigitalOcean, Linode)
511110 CDN & Edge Services (Cloudflare, Fastly)
511120 Backup & Storage Services
511130 Database & Backend Services (Supabase, hosted Postgres, Redis)
511140 Monitoring & Observability (customer-facing only)
511150 SSL Certificates & Domains (wholesale for resale)
511160 DNS & Email Hosting (wholesale)
Third-party APIs & Per-transaction Costs
511200 Third-party API Costs (Twilio, SendGrid, OpenAI)
511210 Per-customer Licensing & Royalties
Note: 511100–511160 are shared between SaaS revenue (411100) and Hosting revenue (411200).
Allocation to specific revenue line happens via the Project analytic plan, not separate accounts.
Project Direct Costs
512100 Subcontracted Labour — Canadian (T4A) ← SR&ED-eligible
512110 Subcontracted Labour — Foreign ← NOT SR&ED-eligible
512200 Project-specific Software & Licenses
512300 Project Travel & Onsite (rebilled)
512400 Project Hardware (passed through)
Resold Goods & Services
513100 Cost of Software Resold
513200 Cost of Hardware Resold
Adjustments
519100 COGS Adjustments / Write-offs
Design choices:
- Salaries in OpEx, not COGS — keeps SR&ED tracking clean; allocation to projects via Project analytic plan.
- Stripe/merchant fees in OpEx (691200) — re-class to COGS later if SaaS revenue dominates.
- Canadian vs Foreign subcontractor split — critical for SR&ED (80% × 35% = 28% credit on CA arm's length; 0% on foreign).
6. Operating Expenses (6xxxxx)
Personnel — Internal Staff (T4)
611100 Salaries & Wages — Development ← SR&ED-eligible base
611200 Salaries & Wages — Sales & Marketing
611300 Salaries & Wages — Admin & Operations
611400 Salary — Shareholder/Officer (Gurpreet) ← 75% SR&ED cap (specified employee)
611500 Employer CPP / QPP Contributions
611600 Employer EI Premiums
611700 Employer Health Tax (EHT/QHST)
611800 WCB / WSIB Premiums
611900 Employee Benefits (health, dental, group)
611950 Bonuses & Incentives
611960 Vacation Pay Accrual
Personnel — Contract (non-project)
612100 Contract Labour — Canadian (admin/marketing/freelance)
612200 Contract Labour — Foreign
Office & Facilities
621100 Rent — Commercial Office
621200 Home Office — Business Portion ← own account; allocated %
621300 Utilities — Commercial
621400 Internet & Phone — Business
621500 Office Supplies & Consumables
621600 Cleaning & Maintenance
621700 Office Snacks & Refreshments
Technology — Operating
631100 Software — Productivity (M365, Slack, Notion, Linear, GitHub)
631200 Software — Development Tools (Cursor, Figma, IDEs)
631300 Software — Internal Infrastructure
631400 Software — Security & IT
631500 Software — Sales & Marketing
Marketing & Sales
641100 Advertising — Digital Ads
641200 Advertising — Content / SEO
641300 Trade Shows & Conferences
641400 Promotional Items / Branded Swag
641500 Website — Own (nexasystems.ca)
Professional Fees
651100 Legal Fees — General
651200 Accounting & Bookkeeping
651300 Tax Preparation (T2, T1, GST/HST)
651400 Business Consulting
Insurance
661100 Commercial General Liability
661200 Professional Liability / E&O
661300 Cyber Liability
661400 Property Insurance
661500 Directors & Officers Insurance
Travel & Entertainment
671100 Travel — Flights, Hotels, Ground Transport
671200 Meals & Entertainment — 50% Deductible ← own account; 50% adjustment at year-end
671300 Vehicle — Operating
671400 Mileage Reimbursement — Personal Vehicle
Training & Development
681100 Conferences & Seminars
681200 Courses & Certifications
681300 Books & Publications
681400 Professional Memberships & Dues
Banking & Finance
691100 Bank Service Charges
691200 Merchant Processing Fees (Stripe, PayPal, Square)
691300 Wire Transfer & FX Fees
691400 Interest Expense — Bank Loans / LOC
691500 Interest Expense — Credit Cards
691600 Late Payment Penalties — Non-deductible
Other
699100 Bad Debt Expense
699200 Donations & Sponsorships
699300 Penalties & Fines — Non-deductible
699400 Realized FX Losses
699500 Depreciation / CCA Expense
Notable design decisions:
- Salaries split by function (dev/sales/admin) — so SR&ED proxy applies cleanly to dev only.
- Owner/Shareholder salary isolated (611400) — for T2 Schedule 11 (Compensation of Officers) and CRA reasonableness defence.
- Non-deductible items isolated (691600, 699300) — prevents accidental deduction.
- Meals & Entertainment own account (671200) — accountant applies the 50% adjustment cleanly.
- Home office own account (621200) — business-use % applied to the whole account.
7. Capital Assets & CCA (1xxxxx + asset module)
Capital Assets — Cost
151100 Computer Hardware & Equipment (CCA Class 50, 55% DB)
151200 Office Furniture & Equipment (CCA Class 8, 20% DB)
151300 Vehicles (CCA Class 10 / 10.1)
151400 Leasehold Improvements (CCA Class 13, SL)
151500 Acquired Software/Intangibles (CCA Class 14.1, 5% DB)
151600 Tools & Small Equipment <$500 (CCA Class 12, 100% Y1)
Accumulated Depreciation (contra)
154100 Acc. Dep — Computer Hardware
154200 Acc. Dep — Office Furniture
154300 Acc. Dep — Vehicles
154400 Acc. Dep — Leasehold Improvements
154500 Acc. Dep — Acquired Software
Asset model approach: book straight-line depreciation in Odoo for financial reporting (clean monthly journal); maintain CCA schedule separately for T2 filing. CCA rates: Class 50 effective 82.5% Y1 (with AccII through 2027); Class 14.1 software 100% Y1; Class 12 small tools 100% Y1.
8. Tax Accounts (1xxxxx + 2xxxxx)
Tax Assets
118100 HST/GST Input Tax Credit (ITC) Receivable
118200 HST/GST Instalments Paid
118300 QST Input Tax Refund Receivable
Tax Liabilities
213100 HST/GST Collected on Sales ← single bucket; tax report breaks down by code
213500 QST Collected
214100 Net HST/GST Payable
215100 Source Deductions Payable — Federal Tax
215200 Source Deductions Payable — CPP
215300 Source Deductions Payable — EI
216100 Corporate Income Tax — Federal Payable
216200 Corporate Income Tax — Provincial Payable
216300 Corporate Tax Instalments Paid (contra)
9. Shareholder, Associated Corporations & Equity
Associated corporations (Gurpreet >25% owner of each → ITA s.256 associated group):
- Nexa Systems Inc (this company)
- Westin Healthcare Inc
- Divine Mobility Inc
Treatment: Westin and Divine are regular Customers and Vendors of Nexa, NOT slush accounts. Their transactions flow through normal AR/AP. They get partner records tagged Related Party — Associated Corporation for disclosure tracking. The "Due To/From Related Party" GL buckets exist only for true intercompany loans (cash moved between the corps' bank accounts without an invoice).
Due From — Assets
115100 Due From Shareholder — Gurpreet
115900 Due From Associated Corporations (intercompany loans only — NOT customer AR)
Due To — Liabilities
221100 Due To Shareholder — Gurpreet (short-term, <1 year)
221200 Shareholder Loan — Gurpreet (long-term, with commercial terms)
222900 Due To Associated Corporations (intercompany loans only — NOT vendor AP)
Equity
311100 Share Capital — Common Shares
311200 Share Capital — Preferred Shares (placeholder)
311300 Contributed Surplus
321100 Retained Earnings — Current Year
321200 Retained Earnings — Prior Years
321900 Dividends Declared (contra)
Partner setup (under Contacts, not GL accounts):
Westin Healthcare Inc→ partner with both Customer and Vendor flags; taggedRP-AssociatedDivine Mobility Inc→ partner with both Customer and Vendor flags; taggedRP-Associated- Nexa invoices Westin/Divine like any client → AR in 112xxx, revenue in 4xxxxx, HST 13% (Ontario)
- Westin/Divine bill Nexa → AP in 211xxx, expense in 6xxxxx / COGS in 5xxxxx
Intercompany compliance flags (CRITICAL — drives major tax decisions):
-
Small Business Deduction (SBD) sharing — ITA s.125(5.1): The $500k federal SBD limit is shared across all associated corporations. If Nexa, Westin, and Divine are each profitable, they collectively get one $500k pool, not three. The corps must file Schedule 23 (T2) allocating the limit. Strategy: allocate the limit to whichever corp has the highest taxable income each year.
-
SR&ED expenditure limit shared — ITA s.127(10.2): The $3M expenditure limit for the 35% refundable ITC is also shared across the associated group. Same Schedule 23 mechanism. Nexa being the dev shop probably consumes most/all of it.
-
Transfer pricing — ITA s.247: Services between related corps must be priced at fair market value. Nexa invoicing Westin at $50/hr while billing arm's-length clients $150/hr will be scrutinized. Document the rate methodology. Penalty for non-compliance is 10% of the adjustment.
-
Subsection 15(2) shareholder loans: outstanding >1 year past FY end → taxable to Gurpreet personally.
-
T2 Schedule 9 (Related and Associated Corporations) must be filed by Nexa listing Westin and Divine.
-
GAAR risk: aggressive intercompany pricing or loan arrangements designed primarily for tax benefit can be challenged under general anti-avoidance rules.
10. Analytic Plans
10.1 Project Plan
- One analytic account per customer engagement
- Naming:
PRJ-{YYYY}-{CUST}-{SHORTNAME}(e.g.,PRJ-2026-WESTIN-ERP) - Required on revenue, COGS, project costs
- Linked to Odoo Project module for time tracking → automatic GL posting
10.2 Department Plan
DEPT-DEV— DevelopmentDEPT-SALES— Sales & MarketingDEPT-ADMIN— Admin & OperationsDEPT-HOSTING— Hosting Operations (optional future split)- Required on payroll, OpEx
10.3 SR&ED Tag Plan
SRED-T4-DEV-SALARY— T4 dev employees on R&D (full proxy 55%)SRED-SPECIFIED-EMPLOYEE— Gurpreet/officers (75% basic salary cap)SRED-CONTRACTOR-CA-ARM-LENGTH— Canadian arm's length (80% eligible)SRED-CONTRACTOR-CA-NON-ARM-LENGTH— affiliated CA contractorsSRED-MATERIALS-CONSUMED— R&D materialsSRED-OVERHEAD-PROXY-BASIS— direct labour basisNOT-ELIGIBLE— default
T661 generation at year-end: filter analytic report on SR&ED tag → eligible salaries + 55% proxy + 80% contractor + materials = total qualified expenditures × 35% refundable ITC.
11. Tax Setup & Fiscal Positions
Consolidated active taxes (~14, down from 49):
| Tax | Rate | Sale / Purchase | Applies |
|---|---|---|---|
| HST 13% Ontario | 13% | Both | ON |
| HST 15% Atlantic | 15% | Both | NB, NS, PE, NL |
| GST 5% | 5% | Both | AB, MB, SK, BC, YT, NT, NU |
| GST 5% + PST 7% BC | 12% group | Both | BC (goods, rare for services) |
| GST 5% + PST 7% MB | 12% group | Both | MB |
| GST 5% + PST 6% SK | 11% group | Both | SK |
| GST 5% + QST 9.975% QC | 14.975% group | Both | QC |
| Zero-rated Export | 0% | Sale | US, EU, ROW |
| Tax Exempt | 0% | Sale | Cert-holders |
Fiscal Positions (auto-applied based on customer billing address):
| Position | Customer Location | Auto-Substitute Default Tax |
|---|---|---|
| CA — Ontario (default) | ON | HST 13% |
| CA — Atlantic | NB/NS/PE/NL | HST 15% |
| CA — Quebec | QC | GST 5% + QST 9.975% |
| CA — BC | BC | GST 5% (PST per-product) |
| CA — Prairies / Territories | AB/MB/SK/YT/NT/NU | GST 5% |
| Export — US | United States | 0% Zero-rated |
| Export — International | Outside CA/US | 0% Zero-rated |
| Tax Exempt | Tagged customers | 0% |
Invoice flow: customer → fiscal position auto-applies → product picks default tax → fiscal position substitutes → no manual tax decisions.
Export advantage: zero-rated sales charge no HST but retain ITC claims on all related inputs. For a small shop with 30% US revenue, this is ~$5–15k/year in recovered HST.
12. Cleanup Plan
Phase 1 — Archive (~370 accounts)
- Every l10n_ca account NOT in the keep-list (built from Sections 4–9).
- Constraint: Odoo blocks archiving accounts with postings. Archive zero-history only.
- Accounts with history we no longer want: stop posting; they go to $0 going forward.
Phase 2 — Rename (~20 accounts)
| Old | New |
|---|---|
| 1400 Transferred to Gurpreet | 221100 Due To Shareholder — Gurpreet |
| 1505 Sent to India | 612200 Contract Labour — Foreign |
| 1580 Transferred to Westin | ARCHIVE — Westin is an associated corp, future transactions go through normal AR/AP via partner record Westin Healthcare Inc |
| 1590 Transferred to Divine | ARCHIVE — Divine is an associated corp, future transactions go through normal AR/AP via partner record Divine Mobility Inc |
| 1600 Transferred to Manpreet | ARCHIVE — Manpreet is an employee of another company, not a related party of Nexa; historical transactions to be re-classified by accountant during reconciliation |
| 1500 Food & Entertainment | 671200 Meals & Entertainment — 50% Deductible |
| 1501 Office Expenses | 621500 Office Supplies & Consumables |
| 411000 Inside Sales | ARCHIVE (replaced by 412xxx) |
| 412000 Harmonized Provinces Sales | ARCHIVE (jurisdiction = tax codes) |
| 413000 Non-Harmonized Provinces Sales | ARCHIVE |
| 414000 International Sales | ARCHIVE |
| 12000 Abdul & Future Mobility | ARCHIVE (use partner subledger) |
| 12001 MSI Account | ARCHIVE |
| 110010 Bank Fee | 691100 Bank Service Charges |
| 511100 Inside Purchases | ARCHIVE |
Phase 3 — Add (~70 new accounts)
All per Sections 4–9.
Phase 4 — Bank Consolidation
Current 8 bank journals (BMO, RBC, RBC VISA, Scotia ×3, Bank, Cash). Audit; archive inactive. Target: ≤5 active (primary operating, USD for future global, LOC, 1–2 credit cards).
Phase 5 — Lock Prior Periods
Set fiscalyear_lock_date = 2025-12-31. Blocks postings to closed periods. Forces all 2026 work into new structure.
13. Automation Hooks
Product Categories with Default Accounts
| Product Category | Default Income | Default COGS | Default Tax |
|---|---|---|---|
| Services / SaaS Subscription | 411100 | — | per fiscal position |
| Services / Hosting | 411200 | — | per fiscal position |
| Services / Support Contract | 411300 | — | per fiscal position |
| Services / Custom Software Dev | 412100 | — | per fiscal position |
| Services / Web App Dev | 412200 | — | per fiscal position |
| Services / Website Dev | 412300 | — | per fiscal position |
| Services / ERP Implementation | 412400 | — | per fiscal position |
| Services / Consulting | 413100 | — | per fiscal position |
| Services / Training | 413200 | — | per fiscal position |
| Services / Setup Fee | 411500 | — | per fiscal position |
| Resale / Software | 414100 | 513100 | per fiscal position |
| Resale / Hardware | 414200 | 513200 | per fiscal position |
Bank Reconciliation Rules
| Pattern (description contains) | Auto-categorize To | Tax |
|---|---|---|
AMAZON WEB SERVICES, AWS |
511100 Cloud Infrastructure | HST 13% ITC |
HETZNER, OVH, DIGITALOCEAN, LINODE |
511100 | 0% foreign |
CLOUDFLARE, FASTLY |
511110 CDN | mixed |
GITHUB, JETBRAINS, CURSOR |
631200 Software — Dev Tools | HST 13% ITC |
MICROSOFT, SLACK, NOTION, LINEAR |
631100 Software — Productivity | HST 13% ITC |
STRIPE PAYOUT |
AR receipts journal | — |
STRIPE FEE |
691200 Merchant Processing | exempt |
GOOGLE ADS, LINKEDIN ADS |
641100 Advertising | HST 13% ITC |
Bank Feeds (Plaid via Odoo Enterprise)
Daily auto-import → bank reconciliation rules → ~70% of transactions auto-categorized.
Subscription Module
Already installed. Use for SaaS/Hosting/Support contracts: recurring invoices, Stripe auto-charge, MRR/ARR/churn dashboards.
Default Journals
- Customer Invoices →
INV - Vendor Bills →
BILL - Bank feeds → respective bank journals
- HR Expenses →
EXP(add if missing) - Misc →
MISC - Exchange Difference →
EXCH
14. Out-of-Scope (Future Sub-Projects)
- Historical reconciliation — load accountant's Excel records into new structure (requires accountant docs).
- Custom CCA module — only if asset count grows; until then, accountant maintains CCA schedule separately.
- Multi-currency setup — add USD bank + currency-rate-live config when first US client signs.
- Payroll system — when first T4 employee is hired; integrate with Wagepoint/Payworks/ADP or Odoo Payroll.
- Approval workflows — purchase approval, expense approval limits.
- Inventory — N/A unless reselling hardware regularly.
15. Tax-Saving Opportunities Enabled
| Opportunity | Mechanism | Estimated Annual Value | Notes |
|---|---|---|---|
| SR&ED ITC | Analytic SR&ED tag + T661 filing | $30k–$100k (refundable) | $3M expenditure limit SHARED across Nexa/Westin/Divine — allocate to Nexa via S23 |
| Zero-rated exports | Fiscal position for US/international | $5–15k recovered HST on inputs | Per-company |
| Small Business Deduction (SBD) | Federal 9% on first $500k taxable income | ~$30k/yr if hitting threshold | $500k limit SHARED across associated group — allocate to highest-income corp via S23 |
| CCA Class 50 + AccII | 82.5% Y1 deduction on computers/servers | Time-value, front-loads deductions | Per-company |
| Quick Method GST/HST | If <$400k sales, simpler method | $500–2k/yr cash if eligible | LIKELY UNAVAILABLE — Quick Method $400k threshold applies to associated-group totals; Nexa + Westin + Divine combined revenue probably exceeds limit. Re-verify with accountant. |
| OIDMTC (Ontario Interactive Digital Media) | If building interactive media products | 35–40% of eligible labour | Strict eligibility test; need to verify product fits |
| Apprenticeship Job Creation TC | 10% of eligible apprentice wages, max $2k/yr per apprentice | Per apprentice hired | Activates when first apprentice T4 employee hired |
| Intercompany cost recovery | Bill associated corps for shared services (back-office, hosting, IT) | Allocates expenses to highest-tax-rate corp | Requires arm's-length pricing documentation |
16. Risks & Open Questions
- Associated corporation tax planning — Westin Healthcare Inc, Divine Mobility Inc, and Nexa Systems Inc share the $500k SBD limit and the $3M SR&ED expenditure limit. Yearly Schedule 23 allocation decision needs accountant input. Recommendation: allocate SR&ED limit primarily to Nexa (dev shop); allocate SBD to whichever corp has highest taxable income each year.
- Transfer pricing on intercompany services — Nexa billing Westin/Divine must be at fair market value. Document hourly rate methodology and apply consistently across all clients. Penalty: 10% of any adjustment.
- Past data backposting — once accountant records arrive, mapping old transactions into new structure requires care to avoid breaking the post-2025-12-31 lock.
- BC PST on software services — BC PST exempts custom software developed for a specific customer; off-the-shelf software and certain SaaS subscriptions ARE taxable. For Nexa's mix (most work is custom dev = exempt; SaaS sold off-the-shelf to BC customers = taxable at 7%), each BC customer/product combo needs review. Default to "GST only" for custom dev; flag SaaS-to-BC for review at first sale.
- Quebec QST registration — required if Nexa has QC customers and revenue >$30k. Confirm registration status. If not yet registered and you start taking QC clients, registration with Revenu Québec is separate from CRA.
- HST filing cadence review — currently annual. Once revenue clears $1.5M (combined Nexa-only, not associated group), CRA may auto-move you to quarterly filing. Monitor and update filing cadence in tax report config when it happens.
- Specified employee SR&ED math — Gurpreet's salary cap is 75%, no bonus inclusion. Accountant must apply at T661 time.
- Multi-company Odoo (future sub-project) — Westin and Divine currently run on separate Odoo databases (odoo-westin, odoo-mobility). Future option: migrate all three into one multi-company nexamain database to enable auto-mirrored intercompany invoices (Nexa invoices Westin → auto-creates Bill in Westin's books). Major data-migration effort; only worth it once intercompany volume justifies the effort.
17. Acceptance Criteria
- All 11 sections of CoA approved and present in odoo-nexa nexamain DB
- ≥370 unused accounts archived
- 14 active taxes (down from 49)
- 8 fiscal positions configured with auto-detection
- 3 analytic plans created (Project, Department, SR&ED Tag) with seed analytic accounts
- Product categories created with default accounts
- Bank reconciliation rules created
- Fiscal year locked at 2025-12-31
- Company HST/BN number stored in full 15-char form (
741224877 RT0001) - HST report config set to annual filer, fiscal-year-end Dec 31, deadline March 31
- Westin Healthcare Inc and Divine Mobility Inc partner records created with Customer + Vendor flags, tagged
RP-Associated - Test invoice flows through correctly for: ON customer (HST 13%), US customer (Zero-rated), QC customer (GST+QST)
- Test vendor bill creates correct ITC for: Canadian vendor (HST ITC), foreign vendor (no ITC)
- Test intercompany invoice: Nexa → Westin generates proper AR + 13% HST collected (Westin is Ontario-based)
- Bank consolidation complete; ≤5 active bank journals