CORAA
Form 3CD · tax audit u/s 44AB · built for auditors· 3CD

You don't draft 3CD. You reconcile it, clause by clause, at midnight in October.

CORAA maps all 44 clauses and sub-clauses to their title, description and section. The data-heavy ones — depreciation (18), the TDS/TCS tables (34), the s.43B and s.36(1)(va) date tests (26, 20) — are computed reproducibly from your imported ledger and the TDS reconciliation. The judgement clauses — ICDS (13/14), the s.37 disallowance (21(a)), deemed dividend (36A), the GST break-up (44) — are drafted as candidates, each with the rule cited, for you to characterise; the engine never concludes them. Clauses 1–12, 16 and 22–25 stay yours. The confirmed report comes out in three forms that agree: the e-filing JSON, the government workbook and a DOCX. The engine assembles; the auditor decides.

The CORAA signature

Forty-four clauses, three forms, one number that agrees everywhere.

The 44-clause matrix

Every clause and sub-clause of Form 3CD is mapped to its title, its description and the section it answers — so nothing is a free-text box you fill from memory. You see the whole report as a grid, and where each figure came from.

Deterministic where the data decides, flagged where judgement does

The data-heavy clauses — depreciation (18), the TDS/TCS tables (34), the s.43B and due-date tests (26, 20) — are computed by rule-based engines reading your imported ledger: same input, same output, every run, so a reviewer can re-perform the working rather than trust a black box. The judgement clauses — ICDS (13/14), s.37 (21(a)), deemed dividend (36A), the GST split (44) — are not auto-concluded: the engine surfaces the candidate and the rule it would apply, and hands the position back to you. A rule engine can't know that 'Misc exp — Sharma' is a partner's personal order; it flags the line, you make the call.

Three forms that agree

The same confirmed report is produced as the e-filing JSON (CBDT codes, schema-validated against the current utility), the government-format workbook and a DOCX. One source, three renders — the JSON you upload reconciles to the workbook you review and the DOCX you file with the client.

Your confirmation is the gate

Every pre-populated clause sits as a draft until the auditor confirms it. The engine proposes; you dispose. Nothing reaches the JSON, the workbook or the DOCX without a human sign-off behind it.

What it pre-populates

The clauses that eat your October — computed where mechanical, drafted for your judgement where not.

01

Clauses 8A & 13/14 · regime and ICDS

Clause 8A surfaces the s.115BAC regime position; clauses 13 and 14 surface the ICDS adjustments and the s.145A inclusive method — proposed as candidates with the section and rule applied, for you to characterise. These turn on interpretation, so the engine drafts and cites; it never concludes the adjustment for you.

02

Clause 18 · depreciation

The depreciation schedule is computed block-wise from the asset register and additions — rates, put-to-use dates and the WDV roll-forward — reproducibly, so clause 18 ties to the same numbers your computation uses. Genuinely mechanical: same register in, same schedule out.

03

Clauses 20 & 26 · statutory dues

Clause 20 tests employees' contributions under s.36(1)(va) against the due-date; clause 26 applies the s.43B payment-basis allowance and disallowance, including the s.43B(h) MSME timing. Date tests, computed — timing differences surfaced with the date that decides them.

04

Clauses 21(a)/(b) · disallowances

Clause 21(b) under s.40(a) — including the 100% disallowance on non-resident payments where tax wasn't deducted — is computed directly from the reconciled TDS position, not re-keyed. Clause 21(a) under s.37 is different: the engine surfaces the candidate ledger lines (personal, capital or penal in nature) with the rule, but you decide which is which — it never rules a line capital-vs-revenue on your behalf.

05

Clause 34 · TDS/TCS

Clause 34's TDS and TCS tables are computed from the deduction-and-collection reconciliations — section-wise deductible vs deducted vs deposited — with shortfalls and s.201(1A) late-deposit interest exposure flagged. Clause 27(a) CENVAT/ITC is carried only for clients still running legacy balances; on most current files it's a footnote, not the work.

06

Clauses 36A & 44, plus the supporting engines

Clause 36A drafts the deemed-dividend position under s.2(22)(e) and clause 44 the GST expenditure break-up — both as candidates for your judgement, since 2(22)(e) turns on accumulated profits and beneficial shareholding the ledger doesn't state, and clause 44 only holds where the GST data actually ties to the books. Supporting engines — Partner Remuneration u/s 40(b), Deemed Dividend u/s 2(22)(e) and s.206AB/206CCA compliance — feed the clauses they touch, with the position left to you.

Built to defend

What a reviewer asks — answered before they ask it.

A re-performable SA 230 trail

Every pre-populated figure is timestamped, cites the rule it applied, and traces to the source ledger row it came from — exportable to your working-paper file and re-performable line by line, not a number that appears with no parentage.

Materiality-gated, not noise

Flags and exceptions are gated by the materiality you set under SA 320 and aggregated rather than listed paisa by paisa — items below the threshold roll up instead of flooding the queue. A junior sees only what clears the gate; the disallowances and timing gaps that matter escalate to you, so review shrinks instead of trading re-keying for triaging soft flags.

Built for the ledger you actually receive in September

Import from Tally, Busy or Excel, with a one-time chart-of-accounts mapping so the engine knows which groups are repairs vs capital and registered vs unregistered — because no two clients' COA agree. Blank or garbled GSTINs and PANs, amended documents and multi-registration clients are rolled up per registration, and rows that don't map are parked for your review, not silently guessed. It tolerates the messy file; it doesn't pretend the mapping isn't yours to confirm.

The three forms reconcile

Because the JSON, the workbook and the DOCX render from one confirmed source, a peer reviewer can tie the uploaded e-filing JSON back to the working-paper workbook and the signed report — the same figure, three places, no silent drift.

Built for the people who actually file 3CD

One report — every seat at the file wins.

The article drafts

No more copying depreciation and 43B figures clause to clause by hand. The mechanical clauses arrive computed and cited; the judgement clauses arrive drafted with the rule, so only the call itself needs a person.

The manager reviews

Open the clauses that need a decision, not all 44. Every drafted figure is traced to its ledger row and its section, so the review is confirmation, not reconstruction.

The partner signs

The report is defensible — each clause rule-cited, materiality-gated, and re-performable under SA 230, with the JSON, workbook and DOCX agreeing for peer review, and the judgement clauses clearly marked as yours to conclude.

On a real tax-audit file
Clauses mapped
44
to title, description and section
Forms that agree
3
JSON · workbook · DOCX
Of the ledger ingested
100%
the full population you then sample and judge
Re-performable trail
SA 230
timestamped, rule-cited, traced to source
Tax audit automation, answered

The questions auditors actually ask.

It maps all 44 clauses and sub-clauses to their title, description and section. The data-heavy clauses are computed reproducibly from your imported ledger and the TDS reconciliations; the judgement clauses are drafted as candidates with the rule cited, for you to characterise — never auto-concluded. It selects Form 3CA or 3CB depending on whether the entity is already audited under another law. Each clause is a draft until you confirm it, and the confirmed report is produced as the e-filing JSON, the government-format workbook and a DOCX.
Computed reproducibly from the data: 18 (depreciation), 20 (s.36(1)(va) due-date test), 26 (s.43B / 43B(h) date test), 34 (TDS/TCS from the reconciliations) and 21(b) (s.40(a), including the 100% non-resident disallowance fed from the TDS reconciliation). Drafted as candidates with the rule applied — for you to characterise, never decided for you: 8A (s.115BAC regime), 13 and 14 (ICDS, s.145A), 21(a) (s.37 capital/personal/penal), 36A (deemed dividend, s.2(22)(e)) and 44 (GST expenditure, which holds only where the GST data ties to the books). Supporting engines for Partner Remuneration u/s 40(b) and s.206AB/206CCA feed the clauses they touch.
Yes — the confirmed report renders to the CBDT e-filing JSON with the correct codes, schema-validated against the current utility, alongside the government-format workbook and a DOCX. All three are produced from one source, so the JSON you upload reconciles to the workbook you review and the report you give the client.
You import from Tally, Busy or Excel and do a one-time chart-of-accounts mapping — telling CORAA which groups are repairs vs capital, which vendors are registered, which ledgers carry TDS. That mapping is reused next year. Rows that don't map, blank or garbled GSTINs and PANs, and multi-registration clients are surfaced for your review rather than silently assumed, so the engine never guesses a TDS section or a GST registration it can't trace.
Yes — India-hosted on AWS Mumbai (ap-south-1), DPDPA-aligned and ISO 27001 certified, with no model training on your data. Your ledgers, PANs and reconciliations stay yours.
You are. CORAA computes, cites and documents — it never signs, and it never concludes the judgement calls. It does not opine on whether a s.37 expense is capital or revenue, how a 2(22)(e) advance is characterised, or which ICDS position applies — those it surfaces as candidates with the rule, for you to decide. Every clause is a draft awaiting your confirmation, with the working shown, rule-cited and exportable to your file. The engine does the work; the auditor owns the opinion.
Draft your next 3CD on CORAA

Stop re-keying the data-heavy clauses — let the report draft itself, then confirm it.

Run a real tax-audit file free, no card required. Import your own messy September ledger, see the data-heavy clauses computed and the judgement clauses drafted for your call, and watch the three forms agree — in minutes.