jaz-cli 2.8.0 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/skills/api/SKILL.md +1 -1
- package/assets/skills/conversion/SKILL.md +1 -1
- package/assets/skills/jobs/SKILL.md +58 -1
- package/assets/skills/jobs/references/sg-tax/add-backs-guide.md +354 -0
- package/assets/skills/jobs/references/sg-tax/capital-allowances-guide.md +343 -0
- package/assets/skills/jobs/references/sg-tax/data-extraction.md +408 -0
- package/assets/skills/jobs/references/sg-tax/enhanced-deductions.md +248 -0
- package/assets/skills/jobs/references/sg-tax/exemptions-and-rebates.md +197 -0
- package/assets/skills/jobs/references/sg-tax/form-cs-fields.md +191 -0
- package/assets/skills/jobs/references/sg-tax/ifrs16-tax-adjustment.md +194 -0
- package/assets/skills/jobs/references/sg-tax/losses-and-carry-forwards.md +269 -0
- package/assets/skills/jobs/references/sg-tax/overview.md +207 -0
- package/assets/skills/jobs/references/sg-tax/wizard-workflow.md +391 -0
- package/assets/skills/transaction-recipes/SKILL.md +1 -1
- package/dist/__tests__/jobs-audit-prep.test.js +3 -3
- package/dist/__tests__/jobs-bank-recon.test.js +5 -5
- package/dist/__tests__/jobs-credit-control.test.js +1 -1
- package/dist/__tests__/jobs-fa-review.test.js +1 -1
- package/dist/__tests__/jobs-payment-run.test.js +3 -3
- package/dist/__tests__/jobs-supplier-recon.test.js +6 -6
- package/dist/__tests__/tax-sg-capital-allowances.test.js +389 -0
- package/dist/__tests__/tax-sg-exemptions.test.js +232 -0
- package/dist/__tests__/tax-sg-form-cs.test.js +687 -0
- package/dist/__tests__/tax-validate.test.js +208 -0
- package/dist/commands/init.js +7 -2
- package/dist/commands/jobs.js +1 -1
- package/dist/commands/tax.js +195 -0
- package/dist/index.js +2 -0
- package/dist/jobs/audit-prep.js +4 -4
- package/dist/jobs/bank-recon.js +4 -4
- package/dist/jobs/credit-control.js +5 -5
- package/dist/jobs/fa-review.js +4 -4
- package/dist/jobs/gst-vat.js +3 -3
- package/dist/jobs/payment-run.js +4 -4
- package/dist/jobs/supplier-recon.js +3 -3
- package/dist/tax/format.js +18 -0
- package/dist/tax/sg/capital-allowances.js +160 -0
- package/dist/tax/sg/constants.js +63 -0
- package/dist/tax/sg/exemptions.js +76 -0
- package/dist/tax/sg/form-cs.js +349 -0
- package/dist/tax/sg/format-sg.js +134 -0
- package/dist/tax/types.js +9 -0
- package/dist/tax/validate.js +124 -0
- package/dist/utils/template.js +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api
|
|
3
|
-
version: 2.
|
|
3
|
+
version: 2.9.0
|
|
4
4
|
description: Complete reference for the Jaz/Juan REST API — the accounting platform backend. Use this skill whenever building, modifying, debugging, or extending any code that calls the API — including API clients, integrations, data seeding, test data, or new endpoint work. Contains every field name, response shape, error, gotcha, and edge case discovered through live production testing.
|
|
5
5
|
license: MIT
|
|
6
6
|
compatibility: Requires Jaz/Juan API key (x-jk-api-key header). Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: conversion
|
|
3
|
-
version: 2.
|
|
3
|
+
version: 2.9.0
|
|
4
4
|
description: Accounting data conversion skill — migrates customer data from Xero, QuickBooks, Sage, MYOB, and Excel exports to Jaz. Covers config, quick, and full conversion workflows, Excel parsing, CoA/contact/tax/items mapping, clearing accounts, TTB, and TB verification.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: jobs
|
|
3
|
-
version: 2.
|
|
3
|
+
version: 2.9.0
|
|
4
4
|
description: 10 accounting jobs for SMB bookkeepers and accountants — month-end, quarter-end, and year-end close playbooks plus 7 ad-hoc operational jobs (bank recon, GST/VAT filing, payment runs, credit control, supplier recon, audit prep, fixed asset review). Each job is a step-by-step blueprint with API calls, recipe references, calculator commands, and verification checks. Paired with an interactive CLI blueprint generator (jaz jobs).
|
|
5
5
|
license: MIT
|
|
6
6
|
compatibility: Works with Claude Code, Claude Cowork, Claude.ai, and any agent that reads markdown. For API payloads, load the jaz-api skill. For individual transaction patterns, load the transaction-recipes skill.
|
|
@@ -102,3 +102,60 @@ jaz jobs fa-review [--json]
|
|
|
102
102
|
- **[references/supplier-recon.md](./references/supplier-recon.md)** — Supplier statement reconciliation
|
|
103
103
|
- **[references/audit-prep.md](./references/audit-prep.md)** — Audit preparation pack
|
|
104
104
|
- **[references/fa-review.md](./references/fa-review.md)** — Fixed asset register review
|
|
105
|
+
|
|
106
|
+
## Tax Computation — Singapore Form C-S
|
|
107
|
+
|
|
108
|
+
Corporate income tax computation for Singapore-incorporated companies. The AI agent acts as the **tax wizard** — pulling data from Jaz, classifying GL items, asking the user targeted questions, and assembling the input for the CLI computation engine.
|
|
109
|
+
|
|
110
|
+
**Scope:** Form C-S (revenue ≤ $5M, 18 fields) and Form C-S Lite (revenue ≤ $200K, 6 fields). NOT Form C.
|
|
111
|
+
|
|
112
|
+
### How It Works
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
┌──────────────────────────────┐ ┌───────────────────────────────┐
|
|
116
|
+
│ Reference Docs (this skill) │ │ CLI Computation Engine │
|
|
117
|
+
│ "The Wizard Script" │ │ jaz tax sg-cs [--json] │
|
|
118
|
+
│ - Guides AI agent │ │ - Pure deterministic math │
|
|
119
|
+
│ - API calls to make │ │ - Accepts structured JSON │
|
|
120
|
+
│ - Questions to ask user │ │ - Outputs workpaper + │
|
|
121
|
+
│ - Classification rules │ │ Form C-S fields + │
|
|
122
|
+
│ - SG tax rules reference │ │ carry-forwards │
|
|
123
|
+
└──────────────┬───────────────┘ └───────────────┬───────────────┘
|
|
124
|
+
│ │
|
|
125
|
+
└────────► AI Agent ◄────────────────┘
|
|
126
|
+
1. Reads reference docs
|
|
127
|
+
2. Pulls Jaz API data
|
|
128
|
+
3. Classifies GL items
|
|
129
|
+
4. Asks user questions
|
|
130
|
+
5. Assembles input JSON
|
|
131
|
+
6. Runs jaz tax sg-cs
|
|
132
|
+
7. Presents results + filing guidance
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### CLI Commands
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Full computation (JSON input from wizard or file)
|
|
139
|
+
jaz tax sg-cs --input tax-data.json [--json]
|
|
140
|
+
echo '{ "ya": 2026, ... }' | jaz tax sg-cs --json
|
|
141
|
+
|
|
142
|
+
# Simple mode (manual flags)
|
|
143
|
+
jaz tax sg-cs --ya 2026 --revenue 500000 --profit 120000 --depreciation 15000 --exemption pte [--json]
|
|
144
|
+
|
|
145
|
+
# Capital allowance schedule (standalone)
|
|
146
|
+
jaz tax sg-ca --input assets.json [--json]
|
|
147
|
+
jaz tax sg-ca --ya 2026 --cost 50000 --category general --acquired 2024-06-15 [--json]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Tax Reference Files
|
|
151
|
+
|
|
152
|
+
- **[references/sg-tax/overview.md](./references/sg-tax/overview.md)** — SG CIT framework: 17% rate, YA concept, Form C-S eligibility, key deadlines
|
|
153
|
+
- **[references/sg-tax/form-cs-fields.md](./references/sg-tax/form-cs-fields.md)** — All 18 Form C-S + 6 C-S Lite fields with IRAS labels and CLI mapping
|
|
154
|
+
- **[references/sg-tax/wizard-workflow.md](./references/sg-tax/wizard-workflow.md)** — Step-by-step wizard procedure for AI agents (the main playbook)
|
|
155
|
+
- **[references/sg-tax/data-extraction.md](./references/sg-tax/data-extraction.md)** — How to pull P&L, TB, GL, FA data from Jaz API for tax purposes
|
|
156
|
+
- **[references/sg-tax/add-backs-guide.md](./references/sg-tax/add-backs-guide.md)** — Classification guide: which expenses are non-deductible
|
|
157
|
+
- **[references/sg-tax/capital-allowances-guide.md](./references/sg-tax/capital-allowances-guide.md)** — CA rules per asset category with IRAS sections
|
|
158
|
+
- **[references/sg-tax/ifrs16-tax-adjustment.md](./references/sg-tax/ifrs16-tax-adjustment.md)** — IFRS 16 lease reversal procedure
|
|
159
|
+
- **[references/sg-tax/enhanced-deductions.md](./references/sg-tax/enhanced-deductions.md)** — R&D, IP, donations 250%, S14Q renovation
|
|
160
|
+
- **[references/sg-tax/exemptions-and-rebates.md](./references/sg-tax/exemptions-and-rebates.md)** — SUTE, PTE, CIT rebate schedule
|
|
161
|
+
- **[references/sg-tax/losses-and-carry-forwards.md](./references/sg-tax/losses-and-carry-forwards.md)** — Set-off order, loss/CA/donation carry-forward rules
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
# Add-Backs Classification Guide
|
|
2
|
+
|
|
3
|
+
How to identify, classify, and quantify non-deductible expenses for the Singapore CIT computation. Each category maps to a field in `SgFormCsInput.addBacks`. For each item: what it is, why it is non-deductible, where to find it in Jaz, and what questions to ask the user.
|
|
4
|
+
|
|
5
|
+
**CLI:** `jaz tax sg-cs --input tax-data.json --json`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## What Are Add-Backs?
|
|
10
|
+
|
|
11
|
+
Add-backs are expenses recorded in the P&L that are **not deductible for tax purposes**. They are added back to accounting profit to arrive at the adjusted profit (Form C-S Box 1).
|
|
12
|
+
|
|
13
|
+
**The rule:** An expense is deductible only if it is (a) wholly and exclusively incurred in the production of income, (b) not capital in nature, and (c) not specifically prohibited by the Income Tax Act.
|
|
14
|
+
|
|
15
|
+
**Important:** Add-backs increase the adjusted profit and therefore increase the tax payable. Getting them right matters — over-adding inflates the tax bill, under-adding risks IRAS penalties.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Category 1: Depreciation
|
|
20
|
+
|
|
21
|
+
**Input field:** `addBacks.depreciation`
|
|
22
|
+
|
|
23
|
+
**What it is:** Accounting depreciation charged on fixed assets (straight-line, reducing balance, etc.) as recorded in the P&L.
|
|
24
|
+
|
|
25
|
+
**Why non-deductible:** Accounting depreciation is not recognized for Singapore tax purposes. Instead, the taxpayer claims **capital allowances** (tax depreciation) under Sections 19, 19A, 19B, or 14Q of the Income Tax Act. Depreciation is added back; CA is claimed separately.
|
|
26
|
+
|
|
27
|
+
**Where to find it in Jaz:**
|
|
28
|
+
|
|
29
|
+
| Source | API Endpoint |
|
|
30
|
+
|--------|-------------|
|
|
31
|
+
| P&L depreciation expense line | `POST /api/v1/generate-reports/profit-and-loss` |
|
|
32
|
+
| FA summary total depreciation | `POST /api/v1/generate-reports/fixed-assets-summary` |
|
|
33
|
+
| FA reconciliation depreciation | `POST /api/v1/generate-reports/fixed-assets-recon-summary` |
|
|
34
|
+
|
|
35
|
+
**GL keywords:** "Depreciation", "Depreciation Expense", "Dep'n"
|
|
36
|
+
|
|
37
|
+
**Decision tree:**
|
|
38
|
+
1. Is there a depreciation expense on the P&L? --> If yes, add back the full amount.
|
|
39
|
+
2. Does the FA summary depreciation match the P&L? --> If no, investigate. Manual depreciation journals may exist.
|
|
40
|
+
3. Is there any depreciation that was NOT posted through the FA register? --> Check for manual journal entries to depreciation accounts.
|
|
41
|
+
|
|
42
|
+
**Questions to ask:** None required. Depreciation is ALWAYS added back in full. No exceptions.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Category 2: Amortization
|
|
47
|
+
|
|
48
|
+
**Input field:** `addBacks.amortization`
|
|
49
|
+
|
|
50
|
+
**What it is:** Amortization of intangible assets (goodwill, software, patents, trademarks) charged through the P&L.
|
|
51
|
+
|
|
52
|
+
**Why non-deductible:** Like depreciation, accounting amortization is not a tax deduction. Intangible assets may qualify for capital allowances under Section 19B (IP) if they meet the criteria. The amortization is added back; any qualifying CA is claimed separately.
|
|
53
|
+
|
|
54
|
+
**GL keywords:** "Amortization", "Amortisation", "Intangible", "Goodwill Impairment"
|
|
55
|
+
|
|
56
|
+
**Decision tree:**
|
|
57
|
+
1. Is there an amortization expense on the P&L? --> If yes, add back the full amount.
|
|
58
|
+
2. Does the intangible asset qualify for S19B CA? --> If yes, claim CA separately in the capital allowances section.
|
|
59
|
+
3. Is this goodwill amortization from a business acquisition? --> Goodwill does NOT qualify for S19B. Add back with no CA offset.
|
|
60
|
+
|
|
61
|
+
**Questions to ask:** "Is this amortization for a qualifying intellectual property right (patent, trademark, copyright, registered design, software license)? Or is it goodwill?"
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Category 3: ROU Depreciation (IFRS 16)
|
|
66
|
+
|
|
67
|
+
**Input field:** `addBacks.rouDepreciation`
|
|
68
|
+
|
|
69
|
+
**What it is:** Depreciation of right-of-use assets recognized under IFRS 16 for operating leases (office leases, equipment leases, vehicle leases).
|
|
70
|
+
|
|
71
|
+
**Why non-deductible:** IFRS 16 changed lease accounting — operating leases are now capitalized on the balance sheet as ROU assets and depreciated. For tax purposes, IRAS still follows the pre-IFRS 16 treatment: the actual lease payments are the deductible expense, not the ROU depreciation. The ROU depreciation is added back, and the actual lease payments are deducted.
|
|
72
|
+
|
|
73
|
+
**GL keywords:** "Right-of-Use", "ROU", "Lease Depreciation", "Operating Lease Depreciation"
|
|
74
|
+
|
|
75
|
+
**Decision tree:**
|
|
76
|
+
1. Does the P&L show ROU depreciation? --> If yes, add back the full amount.
|
|
77
|
+
2. What are the actual lease payments for the period? --> Deduct via `deductions.actualLeasePayments`.
|
|
78
|
+
3. Is there also lease interest? --> Add back via `addBacks.leaseInterest` (Category 4).
|
|
79
|
+
|
|
80
|
+
**Questions to ask:** "Do you account for operating leases under IFRS 16? If so, what are the actual cash lease payments for the year?"
|
|
81
|
+
|
|
82
|
+
**Tip:** The net tax effect of IFRS 16 reversal is usually small (add back ROU dep + lease interest, deduct actual payments). But you must do the reversal — simply ignoring it is technically non-compliant.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Category 4: Lease Interest (IFRS 16)
|
|
87
|
+
|
|
88
|
+
**Input field:** `addBacks.leaseInterest`
|
|
89
|
+
|
|
90
|
+
**What it is:** Interest expense on the lease liability recognized under IFRS 16. This is the "unwinding" of the discount on the lease liability — a finance cost in the P&L that represents the time value of money component of the lease.
|
|
91
|
+
|
|
92
|
+
**Why non-deductible:** Same as Category 3 — IRAS does not recognize IFRS 16 lease accounting for tax. The finance cost is added back; the actual lease payments are the deductible amount.
|
|
93
|
+
|
|
94
|
+
**GL keywords:** "Lease Interest", "Lease Liability Interest", "Finance Cost - Leases", "Interest on Lease Liabilities"
|
|
95
|
+
|
|
96
|
+
**Decision tree:**
|
|
97
|
+
1. Does the P&L show interest on lease liabilities? --> If yes, add back the full amount.
|
|
98
|
+
2. Is this already included in a broader "Finance Costs" line? --> Separate the lease interest from other interest (bank loans, etc.). Only lease interest is added back.
|
|
99
|
+
|
|
100
|
+
**Questions to ask:** "Can you confirm the interest expense breakdown? I need to separate IFRS 16 lease interest from bank loan interest and other finance costs."
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Category 5: General Provisions
|
|
105
|
+
|
|
106
|
+
**Input field:** `addBacks.generalProvisions`
|
|
107
|
+
|
|
108
|
+
**What it is:** Provisions based on general estimates rather than specific identified events. These include expected credit losses (ECL) under IFRS 9, general warranty provisions, restructuring provisions where costs are not yet incurred, and any "just in case" reserves.
|
|
109
|
+
|
|
110
|
+
**Why non-deductible:** A general provision is an estimate of a future cost that has not yet been incurred. IRAS requires that the expense be "actually incurred" to be deductible. A specific bad debt write-off (where you can name the debtor and the amount is confirmed uncollectible) IS deductible. A general ECL provision (percentage-based estimate across the whole receivable book) is NOT.
|
|
111
|
+
|
|
112
|
+
**GL keywords:** "Provision", "ECL", "Expected Credit Loss", "Allowance for Doubtful", "Bad Debt Provision", "Warranty Provision", "Restructuring Provision"
|
|
113
|
+
|
|
114
|
+
**Decision tree:**
|
|
115
|
+
1. Is this a specific write-off of a named receivable? --> Deductible. Do NOT add back.
|
|
116
|
+
2. Is this a general/statistical provision (ECL model, percentage-based)? --> Non-deductible. Add back.
|
|
117
|
+
3. Is this a reversal of a prior general provision? --> Was it added back in the prior year? If yes, the reversal should be deducted. Consult prior-year tax computation.
|
|
118
|
+
4. Is this a warranty provision? --> If general (estimated % of sales), add back. If specific (known warranty claim settled), deductible.
|
|
119
|
+
5. Is this a restructuring provision? --> If costs are not yet incurred, add back. If settlement amounts are confirmed and paid, deductible.
|
|
120
|
+
|
|
121
|
+
**Questions to ask:** "For each provision on the P&L, is this a general estimate or a specific identified amount? For bad debts specifically — are these actual write-offs of named receivables, or ECL model adjustments?"
|
|
122
|
+
|
|
123
|
+
**Common mistake:** Adding back ALL bad debt expense. Only general provisions are added back. Specific write-offs of identified uncollectible amounts are deductible.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Category 6: Donations
|
|
128
|
+
|
|
129
|
+
**Input field:** `addBacks.donations`
|
|
130
|
+
|
|
131
|
+
**What it is:** Donations to approved Institutions of a Public Character (IPCs). These are added back from the P&L and then claimed at 250% as an enhanced deduction.
|
|
132
|
+
|
|
133
|
+
**Why added back (not why non-deductible):** Donations ARE deductible, but at an enhanced rate of 250% (not 100%). The P&L records the actual donation amount. For the tax computation: add back 100%, then claim 250% via the enhanced deductions section. The net effect is a 150% additional deduction.
|
|
134
|
+
|
|
135
|
+
**GL keywords:** "Donation", "Charitable Contribution", "Community Chest"
|
|
136
|
+
|
|
137
|
+
**Decision tree:**
|
|
138
|
+
1. Was the donation made to an approved IPC? --> If yes, add back the full amount AND set `enhancedDeductions.donations250Base` to the same amount.
|
|
139
|
+
2. Was it a non-IPC donation (e.g., to an overseas charity)? --> Non-deductible and no 250% claim. Add back under `otherNonDeductible` instead.
|
|
140
|
+
3. Was it a donation in kind (goods, not cash)? --> IPC donations in kind are valued at market value. Confirm the amount with the user.
|
|
141
|
+
|
|
142
|
+
**Questions to ask:** "Were these donations made to approved IPCs (Institutions of a Public Character)? Do you have the IPC tax deduction receipts?"
|
|
143
|
+
|
|
144
|
+
**Tip:** The IRAS website maintains a list of approved IPCs. If the user is unsure, they can check the receipt — IPC receipts state the tax deduction amount and the IPC registration number.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Category 7: Entertainment
|
|
149
|
+
|
|
150
|
+
**Input field:** `addBacks.entertainment`
|
|
151
|
+
|
|
152
|
+
**What it is:** The non-deductible portion of entertainment expenses. Business entertainment (client meals, gifts, event hosting) is partially or fully non-deductible depending on the nature.
|
|
153
|
+
|
|
154
|
+
**Why non-deductible:** Entertainment expenses are deductible only if they are wholly and exclusively incurred in the production of income. IRAS takes a strict view: entertainment of business contacts is generally deductible, but the burden of proof is on the taxpayer. Many companies take a conservative position and add back a portion.
|
|
155
|
+
|
|
156
|
+
**GL keywords:** "Entertainment", "Meals", "Hospitality", "Client Entertainment", "Staff Entertainment", "Gifts"
|
|
157
|
+
|
|
158
|
+
**Classification detail:**
|
|
159
|
+
|
|
160
|
+
| Entertainment Type | Deductible? | Action |
|
|
161
|
+
|-------------------|------------|--------|
|
|
162
|
+
| Client entertainment (business meal with client) | Yes, if documented | Deductible — do not add back |
|
|
163
|
+
| Staff entertainment (team dinner, D&D) | Generally yes | Deductible — do not add back |
|
|
164
|
+
| Personal entertainment disguised as business | No | Add back |
|
|
165
|
+
| Gifts to clients (> $50/item) | Partial — case by case | Ask the user |
|
|
166
|
+
| Club membership fees | No | Add back |
|
|
167
|
+
|
|
168
|
+
**Decision tree:**
|
|
169
|
+
1. What is the total entertainment expense on the P&L? --> Get the full amount.
|
|
170
|
+
2. What portion is for genuine business entertainment with documentation? --> This portion is deductible.
|
|
171
|
+
3. What portion is questionable or lacks documentation? --> Add back the non-deductible portion.
|
|
172
|
+
4. Is there a company policy on entertainment deductibility? --> Many companies apply a blanket non-deductible percentage (e.g., 50%). Ask.
|
|
173
|
+
|
|
174
|
+
**Questions to ask:** "What percentage of entertainment expenses relates to business purposes with proper documentation? Does your company have a standard policy for the non-deductible portion (e.g., 25%, 50%)?"
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Category 8: Penalties and Fines
|
|
179
|
+
|
|
180
|
+
**Input field:** `addBacks.penalties`
|
|
181
|
+
|
|
182
|
+
**What it is:** Penalties, fines, and surcharges imposed by government or regulatory bodies.
|
|
183
|
+
|
|
184
|
+
**Why non-deductible:** Penalties and fines are not incurred in the production of income. They are personal to the company as a consequence of non-compliance. This includes: IRAS tax penalties, ACRA late filing penalties, NEA environmental fines, MOM safety fines, traffic fines, customs penalties.
|
|
185
|
+
|
|
186
|
+
**GL keywords:** "Penalty", "Fine", "Surcharge", "Late Fee", "Composition Fine", "Court Fine"
|
|
187
|
+
|
|
188
|
+
**Decision tree:**
|
|
189
|
+
1. Is this a government or regulatory penalty/fine? --> Always non-deductible. Add back.
|
|
190
|
+
2. Is this a commercial penalty (e.g., late payment interest to a supplier)? --> Usually deductible as it is incurred in the ordinary course of business.
|
|
191
|
+
3. Is this a contractual liquidated damages payment? --> Deductible if it is a genuine business expense.
|
|
192
|
+
|
|
193
|
+
**Questions to ask:** "Are these penalties from government authorities (IRAS, ACRA, MOM, etc.) or commercial penalties (supplier late fees, contract penalties)?"
|
|
194
|
+
|
|
195
|
+
**Tip:** Government penalties are always non-deductible regardless of size. Even a $50 ACRA late filing fee should be added back if you want a clean computation.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Category 9: Private Car Expenses
|
|
200
|
+
|
|
201
|
+
**Input field:** `addBacks.privateCar`
|
|
202
|
+
|
|
203
|
+
**What it is:** Expenses related to S-plated (private) motor vehicles — lease payments, fuel, insurance, repairs, parking, ERP charges.
|
|
204
|
+
|
|
205
|
+
**Why non-deductible:** Under Section 15(1)(o) of the Income Tax Act, no deduction is allowed for expenses relating to a private passenger car (one that is not a Q-plated, goods vehicle, or excursion bus). This is a blanket prohibition — even if the car is used 100% for business.
|
|
206
|
+
|
|
207
|
+
**GL keywords:** "Motor Vehicle", "Car", "Vehicle Expense", "Fuel", "Petrol", "Parking", "ERP", "Road Tax", "Vehicle Insurance", "Car Lease"
|
|
208
|
+
|
|
209
|
+
**Decision tree:**
|
|
210
|
+
1. Does the company own or lease motor vehicles? --> If yes, determine the plate type.
|
|
211
|
+
2. Is the vehicle S-plated (private registration)? --> ALL expenses are non-deductible. Add back everything.
|
|
212
|
+
3. Is the vehicle Q-plated (commercial) or a goods vehicle? --> Expenses are deductible. Do NOT add back.
|
|
213
|
+
4. Is the vehicle an employee-benefit car (not company-owned)? --> Different treatment — may be a taxable benefit. Consult a tax agent.
|
|
214
|
+
|
|
215
|
+
**Questions to ask:** "Does the company have any motor vehicles? If so, are they S-plated (private) or Q-plated (commercial)? Please list all vehicle-related expenses."
|
|
216
|
+
|
|
217
|
+
**Tip:** Some companies split vehicle expenses between S-plated and Q-plated vehicles in the GL. If they do not, you need to ask the user to provide the breakdown.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Category 10: Capital Expenditure on P&L
|
|
222
|
+
|
|
223
|
+
**Input field:** `addBacks.capitalExpOnPnl`
|
|
224
|
+
|
|
225
|
+
**What it is:** Capital items that were expensed on the P&L instead of being capitalized as fixed assets. These are one-off purchases of lasting benefit that should have been recorded as assets.
|
|
226
|
+
|
|
227
|
+
**Why non-deductible:** Capital expenditure is not deductible as a revenue expense. It should be claimed through capital allowances instead. If a $15,000 air-conditioning unit was expensed under "Repairs & Maintenance", it needs to be added back and then claimed as a CA.
|
|
228
|
+
|
|
229
|
+
**GL keywords:** Review "Repairs", "Maintenance", "Miscellaneous", "Office Expenses", "General Expenses" for large one-off items.
|
|
230
|
+
|
|
231
|
+
**Decision tree:**
|
|
232
|
+
1. Are there any single expense items exceeding $5,000 in repair/maintenance/miscellaneous accounts? --> Review each.
|
|
233
|
+
2. Is the expense for a new asset or an improvement that extends useful life? --> Capital in nature. Add back.
|
|
234
|
+
3. Is the expense for routine maintenance or repair to restore original condition? --> Revenue in nature. Deductible. Do not add back.
|
|
235
|
+
4. Does the item meet a capital allowance category? --> If yes, add back AND include in CA schedule.
|
|
236
|
+
|
|
237
|
+
**Questions to ask:** "I see a $X expense in [account name]. Is this a new purchase (capital) or a repair/maintenance of an existing item (revenue)?"
|
|
238
|
+
|
|
239
|
+
**Tip:** The $5,000 threshold is a practical guideline, not a legal rule. A $500 printer is capital in nature but immaterial. Most SMBs and tax agents apply a materiality threshold of $1,000-$5,000 for this review.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Category 11: Unrealized FX Loss
|
|
244
|
+
|
|
245
|
+
**Input field:** `addBacks.unrealizedFxLoss`
|
|
246
|
+
|
|
247
|
+
**What it is:** Foreign exchange losses on the revaluation of foreign currency assets and liabilities at the balance sheet date that have not been settled (crystallized) in cash.
|
|
248
|
+
|
|
249
|
+
**Why non-deductible:** An unrealized FX loss is a paper loss — the underlying transaction has not been settled, so the loss has not been "incurred" in the IRAS sense. Only realized FX losses (from actual settlement of foreign currency transactions) are deductible.
|
|
250
|
+
|
|
251
|
+
**GL keywords:** "Unrealized", "Unrealised", "FX Loss", "Foreign Exchange Loss", "Exchange Difference", "Currency Revaluation"
|
|
252
|
+
|
|
253
|
+
**Decision tree:**
|
|
254
|
+
1. Does the P&L show a foreign exchange loss? --> Investigate whether it is realized or unrealized.
|
|
255
|
+
2. Was the loss created by a year-end revaluation of balances? --> Unrealized. Add back.
|
|
256
|
+
3. Was the loss created by settling a foreign currency invoice at a different rate? --> Realized. Deductible. Do not add back.
|
|
257
|
+
4. Is the FX loss account a single combined line (realized + unrealized)? --> Ask the user to separate them, or use Jaz FX revaluation journals to isolate the unrealized portion.
|
|
258
|
+
|
|
259
|
+
**Questions to ask:** "Does your FX loss account combine realized and unrealized amounts? Can you confirm the split? If you ran FX revaluation at year-end, the revaluation journal amount is the unrealized portion."
|
|
260
|
+
|
|
261
|
+
**Corresponding deduction:** Unrealized FX gains (`deductions.unrealizedFxGain`) are deducted for the same reason — not yet crystallized, not taxable.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Category 12: Exempt Dividends
|
|
266
|
+
|
|
267
|
+
**Input field:** `addBacks.exemptDividends`
|
|
268
|
+
|
|
269
|
+
**What it is:** Dividend income received from Singapore-resident companies under the one-tier corporate tax system.
|
|
270
|
+
|
|
271
|
+
**Why non-taxable:** Under Section 13(26) of the Income Tax Act, one-tier dividends are exempt from tax in the hands of the recipient. The paying company has already been taxed on the underlying income. Adding back exempt dividends removes them from the adjusted profit so they are not taxed again.
|
|
272
|
+
|
|
273
|
+
**GL keywords:** "Dividend Income", "Dividend Received", "Investment Income"
|
|
274
|
+
|
|
275
|
+
**Decision tree:**
|
|
276
|
+
1. Does the P&L show dividend income? --> If yes, determine the source.
|
|
277
|
+
2. Is the dividend from a Singapore-incorporated company? --> One-tier exempt. Add back the full amount.
|
|
278
|
+
3. Is the dividend from a foreign company? --> May or may not be exempt. Foreign-sourced dividends are exempt under Section 13(8) if certain conditions are met (headline tax rate >= 15% in the source country, income was subject to tax). If exempt, add back. If not exempt, do not add back. This may disqualify the company from Form C-S.
|
|
279
|
+
4. Is the dividend from a REIT or unit trust? --> Different treatment. Consult a tax agent.
|
|
280
|
+
|
|
281
|
+
**Questions to ask:** "Are the dividends received from Singapore-resident companies (one-tier)? Or are they from foreign companies? If foreign, which country and were they subject to tax there?"
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Category 13: Other Non-Deductible
|
|
286
|
+
|
|
287
|
+
**Input field:** `addBacks.otherNonDeductible` (with `addBacks.otherDescription`)
|
|
288
|
+
|
|
289
|
+
**What it is:** A catch-all for non-deductible items that do not fit the 12 specific categories above.
|
|
290
|
+
|
|
291
|
+
**Common items in this category:**
|
|
292
|
+
- Pre-incorporation expenses (incurred before the company was incorporated)
|
|
293
|
+
- Political contributions
|
|
294
|
+
- Non-IPC donations (charitable donations to non-approved organizations)
|
|
295
|
+
- Gifts to directors/shareholders that are not employment-related
|
|
296
|
+
- Legal costs for capital transactions (e.g., share issuance, acquisition legal fees)
|
|
297
|
+
- Impairment losses on investments
|
|
298
|
+
|
|
299
|
+
**Decision tree:**
|
|
300
|
+
1. Have you reviewed all 12 categories above? --> If yes and items remain, classify here.
|
|
301
|
+
2. Is the expense "wholly and exclusively" for producing income? --> If no, add back.
|
|
302
|
+
3. Is the expense capital in nature? --> If yes and not covered by CA, add back.
|
|
303
|
+
4. Is the expense specifically prohibited by the ITA? --> If yes, add back.
|
|
304
|
+
|
|
305
|
+
**Questions to ask:** "Are there any other expenses you believe should not be tax-deductible? For example, pre-incorporation costs, political donations, or legal fees for capital transactions?"
|
|
306
|
+
|
|
307
|
+
**Always provide a description** in `addBacks.otherDescription` so the workpaper is auditable.
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Add-Back Summary Table
|
|
312
|
+
|
|
313
|
+
| # | Category | Input Field | Always? | Typical SMB Amount |
|
|
314
|
+
|---|----------|------------|---------|-------------------|
|
|
315
|
+
| 1 | Depreciation | `depreciation` | Always | $10K-$100K |
|
|
316
|
+
| 2 | Amortization | `amortization` | If intangibles exist | $0-$50K |
|
|
317
|
+
| 3 | ROU Depreciation | `rouDepreciation` | If IFRS 16 leases | $0-$50K |
|
|
318
|
+
| 4 | Lease Interest | `leaseInterest` | If IFRS 16 leases | $0-$10K |
|
|
319
|
+
| 5 | General Provisions | `generalProvisions` | If provisions charged | $0-$50K |
|
|
320
|
+
| 6 | Donations | `donations` | If IPC donations made | $0-$10K |
|
|
321
|
+
| 7 | Entertainment | `entertainment` | If entertainment costs | $0-$20K |
|
|
322
|
+
| 8 | Penalties & Fines | `penalties` | If penalties incurred | $0-$5K |
|
|
323
|
+
| 9 | Private Car | `privateCar` | If S-plated vehicles | $0-$30K |
|
|
324
|
+
| 10 | Capital Exp on P&L | `capitalExpOnPnl` | If found during review | $0-$20K |
|
|
325
|
+
| 11 | Unrealized FX Loss | `unrealizedFxLoss` | If FX reval performed | $0-$50K |
|
|
326
|
+
| 12 | Exempt Dividends | `exemptDividends` | If SG dividends received | $0-varies |
|
|
327
|
+
| 13 | Other | `otherNonDeductible` | Catch-all | $0-varies |
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## Corresponding Deductions (Further Deductions)
|
|
332
|
+
|
|
333
|
+
When certain items are added back, a corresponding deduction may apply. The deductions are entered in `SgFormCsInput.deductions`:
|
|
334
|
+
|
|
335
|
+
| Add-Back | Corresponding Deduction | Field |
|
|
336
|
+
|----------|------------------------|-------|
|
|
337
|
+
| ROU Depreciation + Lease Interest | Actual lease payments | `deductions.actualLeasePayments` |
|
|
338
|
+
| Unrealized FX Loss | Unrealized FX Gain (if any) | `deductions.unrealizedFxGain` |
|
|
339
|
+
| Exempt Dividends | Already excluded via add-back | (no additional deduction needed) |
|
|
340
|
+
| Donations | 250% enhanced claim | `enhancedDeductions.donations250Base` |
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Practitioner Tips
|
|
345
|
+
|
|
346
|
+
**Work through every category, even if zero.** Set unused add-back fields to `0.00` explicitly. This makes the workpaper complete and auditable — it shows the preparer considered each category and determined it was not applicable.
|
|
347
|
+
|
|
348
|
+
**Depreciation is non-negotiable.** It is always the first and usually the largest add-back. If the P&L shows zero depreciation, verify — the company may not have any fixed assets, or depreciation may not have been posted (which is a bookkeeping error to flag).
|
|
349
|
+
|
|
350
|
+
**General provisions vs specific write-offs is the most common judgment call.** When in doubt, ask the user to describe the nature of the provision. If they say "we estimated X% of receivables might go bad" — that is a general provision (add back). If they say "ABC Pte Ltd went into liquidation and owes us $15,000" — that is a specific write-off (deductible).
|
|
351
|
+
|
|
352
|
+
**S-plated car expenses are a frequent IRAS audit target.** IRAS regularly checks that companies are not claiming tax deductions on private car expenses. Ensure the full amount is added back — including fuel, parking, ERP, insurance, and maintenance.
|
|
353
|
+
|
|
354
|
+
**Keep workpaper notes.** For each add-back category, record a one-line note explaining the source and reasoning. The `addBacks.otherDescription` field covers the "other" category, but you should also document the rationale in the computation narrative. The CLI `workings` output helps with this.
|