Work / Chitragupt / Wiki / Entities
pillar-tax
Entitycanonicalverified 2026-08-10
PILLAR.TAXTax pillar
Summary
The deterministic engine — one AY-keyed route with a state machine, six review widgets (5-AY tax journey · claimed donut · regime bars · waterfall · 19-question checklist · what-you-missed callouts), and a two-path aside (Invite your own CA / Hire a CA). See tax-pillar for invariants.
Canonical values
| Key | Value | Last changed |
|---|---|---|
PILLAR.TAX.ROUTE |
/tax — single route with data-driven states |
2026-07-10 |
PILLAR.TAX.STATE-MACHINE |
locked → empty → review → (ca-invited → with-ca → filed) | past-ay (+ family-locked / family-combined variants) |
2026-07-10 |
PILLAR.TAX.FILING-STATE |
not_filed · itr_v_acknowledged only (2026-07-26-self-file-permanently-out-of-scope) |
2026-07-26 |
PILLAR.TAX.AY-PIVOT |
Tax-pillar only — AY selector does not apply on Expense or Portfolio (2026-06-11-ay-selector-tax-only) | 2026-06-26 |
PILLAR.TAX.AY-RANGE |
Tax Review supports AY2019-20 through AY2027-28 (9 AYs) — TAX_TABLES in packages/shared/src/data/tax-tables/index.ts. 2019-20 and 2020-21 are new verified tables not present as of the 2026-07-12 sync; 2027-28 remains a stub (fails closed on Mode 1) pending IT Act 2025 clarifications. See tax-tables. |
2026-08-10 |
PILLAR.TAX.INCOME.DOUBLE-COUNT-GUARDS |
Two cross-document reconciliation passes run on every confirm, in either upload order: (1) professional-receipt vs foreign-remittance (Torc/Randstad-style double count, 2026-08-06-expense-portfolio-double-counting-round-3); (2) AIS vs bank-interest-cert / broker-dividend-log / mf-cas (reconcileAisAgainstEvidenceDocuments, 1% tolerance, same-AY same-entry_type-family subset-sum match — 2026-08-10-ais-vs-evidence-doc-income-dedup). On a match the AIS row is demoted to entry_class: "other" and excluded everywhere entry_class === "other" is filtered out (Tax's income waterfall, Expense's Income KPI). Source document (certificate/broker/AMC statement) is kept as primary. No canonical value on this page changed — this closes an implementation gap against already-canonical behaviour. |
2026-08-10 |
PILLAR.TAX.PAST-AY |
Read-only archive; always free (2026-05-30-past-ay-free); escapes to CA only for notices / revisions / audits | 2026-07-10 |
PILLAR.TAX.REVIEW.WIDGET-ORDER |
Main column, top→bottom: (1) Claimed donut + (2) old-vs-new regime bars side by side · (3) salary-to-refund waterfall + (4) 19-question return checklist side by side · (5) what-you-missed callouts. Sidebar (not part of the main flow): AY pivot + 5-AY tax journey line, then Pick-your-CA-path. Per .context/designs/web/tax/tax.html — the journey chart is explicitly annotated "belongs in aside" in the wireframe; a prior version of this row wrongly listed it as the first main-column item, see 2026-08-03-correct-widget-order-entity-drift. |
2026-08-03 |
PILLAR.TAX.CHART.TAX-JOURNEY-5AY |
V1 ✅ — dual-line, absolute (income emerald / tax rose), x-axis 22-23 … 26-27. Shared with pillar-dashboard. Implementation: dashboard/components/TaxJourneyChart. |
2026-07-10 |
PILLAR.TAX.CHART.CLAIMED-DONUT |
V1 ✅ — segments HRA · §80C · Std ded · §80D. Callout: "You claimed ₹X of ₹Y available" |
2026-07-10 |
PILLAR.TAX.CHART.REGIME-COMPARISON-BARS |
V1 ✅ — old vs new. Winner marked New regime ✓ (chosen) or Old regime ✓ (chosen). Implementation: TaxPage.tsx inline RegimeBars. |
2026-07-10 |
PILLAR.TAX.CHART.INCOME-WATERFALL |
V1 ✅ — "From your salary to your refund" (gross → exemptions → 80C/80D → taxable → slab tax → cess → TDS → refund). Implementation: TaxPage.tsx inline WaterfallList. |
2026-07-10 |
PILLAR.TAX.WIDGET.RETURN-CHECKLIST-19Q |
V1 ✅ — Quick Check · 19 interactive questions driving completeness. Count is read dynamically off INTERROGATOR_CATALOG_V1.length in TaxPage.tsx, not hand-typed — see 2026-08-03-fix-checklist-question-count-mislabel. |
2026-08-03 |
PILLAR.TAX.WIDGET.WHAT-YOU-MISSED |
V1 ✅ — deduction / regime / documentation miss callouts → link to Hire-CA consultation | 2026-07-10 |
PILLAR.TAX.CHART.DEDUCTIONS-CLAIMED-VS-AVAILABLE |
post-V1 ↻ — deduction-availability donut with unused-deduction callout | 2026-06-26 |
PILLAR.TAX.REGIME.PICK |
Computed by engine; UI shows both regimes and marks winner ✓ chosen. User (or their CA) may override before filing. |
2026-07-28 |
PILLAR.TAX.PICK-YOUR-PATH.PATHS |
(a) Invite your own CA (Free → tax-invite-ca) · (b) Hire a CA (From ₹599 → ca-marketplace-browse) — the CA-handoff-packet PDF path was removed 2026-07-28 (2026-07-28-remove-ca-handoff-surface) |
2026-07-28 |
PILLAR.TAX.MARKETPLACE-SPLIT |
CA keeps 90% · Chitragupt keeps 10% (marketplace-economics · 2026-05-30-marketplace-90-10-split) | 2026-05-30 |
PILLAR.TAX.FILED-STATE |
Chat drawer becomes read-only; star-rating widget replaces further messaging | 2026-07-10 |
PILLAR.TAX.FAMILY.PER-MEMBER-TILES |
Family-combined stacks per-member refund tiles; per-member regime (e.g. "2 of 3 New"). Household summary is now FamilyRefundDonut + FamilyRegimeCard (components/tax/family/) above the per-member breakdown list — replaces an earlier single-line "Household refund" total. Uncommitted as of this sync pass, no decision doc yet — flagging for a follow-up /decision once this lands. |
2026-08-10 |
PILLAR.TAX.FAMILY.HOUSEHOLD-MOVES |
V3 ↻ — cross-PAN reassignments (e.g. "Move Ravi's mediclaim → your §80D (₹7,800 saved)") — Family stacks, doesn't merge; filings stay per-PAN. No computation engine exists yet; the V1 OptimisationCallout component was a hardcoded, non-functional placeholder and was deleted 2026-08-01 rather than left as dead code. Tracked under ROADMAP.md V3 "family AI advisor + cross-PAN harvest". |
2026-08-01 |
PILLAR.TAX.CONCERN |
Modal "Raise a concern about <CA>" — 3 fields: what / what happened / desired outcome. Route: tax-concern. |
2026-07-10 |
PILLAR.TAX.LOCKED.CTA |
"Unlock for ₹249 →" + footer strip "Self ₹249 · AI Self ₹499 · Pro Family ₹799" + reminder "Past-AY reviews are always free" |
2026-07-10 |
PILLAR.TAX.EMPTY.STATUS-BANNER |
"No tax documents parsed yet. Drop Form 16, Form 26AS, AIS, or TIS into Inbox to populate this page." |
2026-07-10 |
PILLAR.TAX.INVARIANT.NO-FILING |
Chitragupt never submits the return. Filing is done by a CA (invited / hired). Quote: "Filing your ITR is a legal declaration. We don't push a 'submit' button on your behalf." |
2026-05-31 |
Related
- tax-pillar (concept) — invariants
- four-pillars — Tax is the deterministic engine of the four
- read-only-review — Tax computes and cites; never files
- ask-ca-stream — CA marketplace lives inside Tax
- freemium-per-ay — engine unlock is one-time per AY
- what-we-sell — right ITR + right regime + forward actions
- family-workspace — reshapes review with per-member tiles + reassignments
- pillar-dashboard — 5-AY tax journey shared with dashboard
- tier-self · tier-ai-self · tier-pro-family — unlock gates
- ca-category-itr-filing · ca-category-consultation · ca-category-notice-defence
- marketplace-economics — 90/10 on Hire-a-CA path
- copy-strings — Tax CTA + callout copy
- 2026-07-26-self-file-permanently-out-of-scope — the platform never files
- 2026-06-11-ay-selector-tax-only — AY pivot is Tax-only
- 2026-05-30-past-ay-free — past AYs always free
- 2026-06-01-v1-inbox-tax-only — V1 launch gate
- tax-tables — the per-AY rate/cap/slab tables this pillar's engine consumes
- 2026-08-10-ais-vs-evidence-doc-income-dedup — AIS vs certificate/broker/AMC income dedup
- 2026-08-10-debt-mf-capital-gains-three-regime-split — debt-MF CG regime split now real for
broker-cg, feeds pillar-portfolio's Tax-linked CG numbers - tax-locked · tax-empty · tax-review · tax-ca-invited · tax-with-ca · tax-filed · tax-past-ay · tax-family-stacked · tax-family-locked · tax-invite-ca · tax-concern
Sources
- .context/designs/web/tax/*.html (12 files — see tax-pillar Sources)
Every project of mine is written down like this.
Read the résumé