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>
553 lines
28 KiB
Markdown
553 lines
28 KiB
Markdown
# 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: 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; 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 ~$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
|
||
|
||
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.
|
||
8. **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.
|
||
6. **Specified employee SR&ED math** — Gurpreet's salary cap is 75%, no bonus inclusion. Accountant must apply at T661 time.
|
||
7. **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
|