docs: nexa systems CoA + accounting setup design spec
Comprehensive chart-of-accounts redesign for odoo-nexa nexamain DB: hybrid approach over l10n_ca, three analytic plans (Project/Department/SR&ED Tag), fiscal positions for auto tax handling, cleanup plan for the ~370 unused accounts and 49 messy taxes, automation hooks via product categories and bank reconciliation rules. Goals: CRA compliance, SR&ED claim infrastructure, zero-rated export handling, one-click invoicing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
517
docs/superpowers/specs/2026-05-12-nexa-coa-design.md
Normal file
517
docs/superpowers/specs/2026-05-12-nexa-coa-design.md
Normal file
@@ -0,0 +1,517 @@
|
||||
# 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.
|
||||
|
||||
**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 & Related Party (1xxxxx + 2xxxxx + 3xxxxx)
|
||||
|
||||
```
|
||||
Due From — Assets
|
||||
115100 Due From Shareholder — Gurpreet
|
||||
115200 Due From Related Party — Westin Healthcare
|
||||
115900 Due From Related Parties — Other
|
||||
|
||||
Due To — Liabilities
|
||||
221100 Due To Shareholder — Gurpreet (short-term)
|
||||
221200 Shareholder Loan — Gurpreet (long-term)
|
||||
222100 Due To Related Party — Westin Healthcare
|
||||
222900 Due To Related Parties — Other
|
||||
|
||||
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)
|
||||
```
|
||||
|
||||
**Compliance flags**:
|
||||
- Subsection 15(2): shareholder loans >1 year past fiscal year-end → taxable to shareholder.
|
||||
- Related-party transactions must be at arm's length pricing (transfer-pricing rules).
|
||||
- T2 Schedule 50 lists all >10% shareholders.
|
||||
|
||||
## 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 | 222100 Due To Related Party — Westin Healthcare |
|
||||
| 1590 Transferred to Divine | If shareholder: 221xxx Due To Shareholder — Divine; if related party: 222xxx (requires Gurpreet to confirm relationship before cleanup) |
|
||||
| 1600 Transferred to Manpreet | If shareholder: 221xxx Due To Shareholder — Manpreet; if related party: 222xxx (requires Gurpreet to confirm relationship before cleanup) |
|
||||
| 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 |
|
||||
|---|---|---|
|
||||
| SR&ED ITC | Analytic SR&ED tag + T661 filing | $30k–$100k (refundable, depends on dev spend) |
|
||||
| Zero-rated exports | Fiscal position for US/international | $5–15k recovered HST on inputs |
|
||||
| Small Business Deduction (SBD) | Federal 9% on first $500k taxable income | ~$30k/yr if hitting threshold |
|
||||
| CCA Class 50 + AccII | 82.5% Y1 deduction on computers/servers | Time-value, but front-loads deductions |
|
||||
| Quick Method GST/HST | If <$400k sales, simpler method | $500–2k/yr cash if eligible |
|
||||
| OIDMTC (Ontario Interactive Digital Media) | If building interactive media products | 35–40% of eligible labour |
|
||||
|
||||
## 16. Risks & Open Questions
|
||||
|
||||
1. **The "Transferred to Divine/Manpreet" accounts** — relationship unconfirmed. Need user input before final mapping.
|
||||
2. **Westin Healthcare relationship** — common-ownership? Same shareholder? Drives transfer-pricing compliance.
|
||||
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.
|
||||
6. **Specified employee SR&ED math** — Gurpreet's salary cap is 75%, no bonus inclusion. Accountant must apply at T661 time.
|
||||
|
||||
## 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
|
||||
- [ ] 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)
|
||||
- [ ] Bank consolidation complete; ≤5 active bank journals
|
||||
Reference in New Issue
Block a user