Files
Odoo-Modules/docs/superpowers/specs/2026-05-12-nexa-coa-design.md
gsinghpal daf1235e20 docs(nexa-coa): annual HST + T2 filing cadence; HST# normalization
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>
2026-05-12 13:20:16 -04:00

28 KiB
Raw Blame History

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 format 741224877 RT0001 for 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:

  1. CRA compliance — clean tax handling, T2 Schedule 125 alignment, audit-ready
  2. Tax savings — SR&ED claim infrastructure from day 1, zero-rated export handling, CCA structure
  3. Automation — fiscal positions, default accounts, bank feeds, subscription billing
  4. 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: 511100511160 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; tagged RP-Associated
  • Divine Mobility Inc → partner with both Customer and Vendor flags; tagged RP-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):

  1. 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.

  2. 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.

  3. 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.

  4. Subsection 15(2) shareholder loans: outstanding >1 year past FY end → taxable to Gurpreet personally.

  5. T2 Schedule 9 (Related and Associated Corporations) must be filed by Nexa listing Westin and Divine.

  6. 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 — Development
  • DEPT-SALES — Sales & Marketing
  • DEPT-ADMIN — Admin & Operations
  • DEPT-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 contractors
  • SRED-MATERIALS-CONSUMED — R&D materials
  • SRED-OVERHEAD-PROXY-BASIS — direct labour basis
  • NOT-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 ~$515k/year in recovered HST.

12. Cleanup Plan

Phase 1 — Archive (~370 accounts)

  • Every l10n_ca account NOT in the keep-list (built from Sections 49).
  • 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 49.

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, 12 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 $515k 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 $5002k/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 3540% 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

  1. 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.
  2. 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.
  3. Past data backposting — once accountant records arrive, mapping old transactions into new structure requires care to avoid breaking the post-2025-12-31 lock.
  4. 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.
  5. 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.
  6. 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.
  7. Specified employee SR&ED math — Gurpreet's salary cap is 75%, no bonus inclusion. Accountant must apply at T661 time.
  8. 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