Indian EPC engineering companies executing ₹50-500 crore long-cycle contracts must recognise revenue under Ind AS 115 / Ind AS 11 percentage-of-completion over time, raise 8-15 RA (Running Account) bills with mobilisation advance recovery and retention deduction layered in, trigger GST liability on each RA bill date and on advance receipts under Section 13 of the CGST Act, navigate the certified-vs-uncertified gap creating unbilled revenue on the balance sheet, deduct contractor TDS on RA bills under Section 393(1)(a) (payment code 1002) at 1% or 2%, and satisfy CARO 2020 reporting on long-cycle revenue recognition.
Recognise revenue under Ind AS 115 over time using a cost-incurred input method or milestone output method; raise an RA bill for each period showing gross value of work done less previous cumulative bills less advance recovery less retention; trigger output GST on the RA bill date in GSTR-3B; treat advance receipts under Section 31(3) receipt voucher with GST in month of receipt and adjustment at next RA bill; bridge certified value, uncertified value, revenue recognised, RA bills raised and customer receipts in a monthly working showing unbilled revenue separately; deduct Section 393(1)(a) TDS at 1%/2% on RA bills and reconcile against Form 168.
EPC project master with contract value, RA bill schedule (8-15 bills with target dates), mobilisation advance percentage (typically 10-20%) and recovery curve (pro-rated or front-loaded), retention percentage (5-10%) and warranty release date, Ind AS 115 cost-incurred or milestone-output completion method per project, Section 13 CGST time-of-supply trigger on RA bill date, Section 31(3) receipt voucher for advances, Section 393(1)(a) code 1002 TDS map by contractor entity type, CARO 2020 long-cycle revenue disclosure roll-up.
A monthly EPC close where every RA bill ties to certified work value, mobilisation advance recovery, retention deduction, GST output and TDS deducted; the percentage-of-completion bridge ties certified value, uncertified value, cumulative revenue recognised, cumulative RA bills and customer receipts with unbilled revenue separately disclosed; advance receipts are linked to RA bills with GST adjusted; Section 393(1)(a) TDS deductions match Form 168; and CARO 2020 disclosures roll up cleanly.
An EPC engineering company in Pune is executing a ₹80 crore industrial plant contract for an integrated steel customer in Odisha. The contract calls for 12 RA bills over an 18-month execution period — design and engineering 10%, civil and structural 25%, mechanical equipment 30%, electrical and instrumentation 15%, piping and insulation 10%, commissioning 10%. A 15% mobilisation advance (₹12 crore) was paid at order acceptance against a bank guarantee. Retention is 7.5% on each RA bill, released 12 months after commissioning. The CFO’s monthly close runs across an Ind AS 115 percentage-of-completion revenue rail, an RA bill issuance rail, a mobilisation advance recovery rail, a retention ledger rail, a Section 13 CGST time-of-supply rail, a Section 393(1)(a) TDS reconciliation rail and a CARO 2020 disclosure roll-up rail. This guide walks each rail and ties them back to the broader engineering and capital goods reconciliation in India framework.
Quick reference
| Item | Section / Standard | Key threshold or rate |
|---|---|---|
| Revenue recognition standard | Ind AS 115 / Ind AS 11 | Over-time POC for works contracts |
| RA bill mechanism | Contract / engineering norms | Typically 8-15 RA bills per project |
| Mobilisation advance | Contract / engineering norms | Typically 10-20% of contract value |
| Retention per RA bill | Contract / engineering norms | Typically 5-10%, released at warranty expiry |
| GST time-of-supply (services) | Section 13 CGST | Earliest of invoice, payment, or completion |
| GST on works contract | CGST Act | 18% (composite) |
| Advance receipt voucher | Section 31(3) CGST | Required; GST payable on advance receipt |
| Contractor TDS | Section 393(1)(a), code 1002 | 1% individual/HUF, 2% company/firm |
| Cross-era legacy reference | Section 194C | Up to 31 March 2026 only |
| Long-cycle revenue disclosure | CARO 2020 | Mandatory for statutory audit |
Rail 1 — Ind AS 115 percentage-of-completion revenue
Under Ind AS 115, revenue from a long-cycle EPC contract is recognised over time where the conditions of paragraph 35 are met — most onshore Indian EPC contracts satisfy this. The percentage-of-completion is measured using either a cost-incurred input method (cumulative cost incurred ÷ total estimated contract cost) or a milestone output method (units / milestones delivered ÷ total units / milestones). For the Pune EPC company on the ₹80 crore Odisha plant, the cost-incurred method applies — at month-end of Month 9, cumulative cost incurred is ₹40 crore against total estimated cost of ₹64 crore (80% of contract value, assuming 20% margin), giving 62.5% completion and cumulative revenue recognised of ₹50 crore.
The reconciliation control: monthly cost roll-up against the latest estimate of total cost (with any cost overrun re-baseline triggering a revision to the percentage-of-completion); period revenue = cumulative revenue this month minus cumulative revenue last month; period margin = period revenue minus period cost.
Rail 2 — RA bill structure and issuance
A standard RA bill at the Pune EPC company carries the following lines:
- Gross value of work done up to the cut-off date — certified by the customer’s project engineer
- Less previous cumulative bills — sum of all prior RA bill gross values
- Less mobilisation advance recovery for the period — pro-rated (₹1 crore per RA bill if the ₹12 crore advance is recovered over 12 bills) or front-loaded (higher recovery in early bills)
- Less retention at 7.5% of period gross value
- Less TDS under Section 393(1)(a) at 2% (steel customer is a company) on period gross value net of GST
- Plus output GST at 18% on period gross value
- Net amount payable = period gross value − advance recovery − retention − TDS + GST
For RA Bill 7 in Month 9, with period gross value of ₹7 crore: gross ₹7 Cr, advance recovery ₹1 Cr, retention ₹52.5 lakh (7.5% of ₹7 Cr), TDS ₹14 lakh (2% of ₹7 Cr), GST ₹1.26 crore (18% of ₹7 Cr), net payable ₹6.585 crore.
Rail 3 — Mobilisation advance recovery rail
The ₹12 crore advance paid at order acceptance is held against a bank guarantee. The advance recovery curve is a contract-level decision — typically pro-rated (recovered equally across RA bills) or front-loaded (higher recovery in early bills to derisk the customer). The reconciliation control: monthly advance outstanding ledger showing original ₹12 Cr, cumulative recovery through each RA bill, balance outstanding. At Month 9 with 7 RA bills issued and ₹1 crore recovered per bill, the balance outstanding is ₹5 crore — matching the ₹12 Cr − ₹7 Cr recovered. The bank guarantee remains live until balance is nil. Detail at retention money reconciliation patterns.
Rail 4 — Retention ledger rail
Retention at 7.5% per RA bill accumulates to a cumulative retention ledger per contract. At Month 9 with cumulative gross value of ₹50 crore, cumulative retention is ₹3.75 crore. This sits on the contractor’s balance sheet as a recognised receivable under Ind AS 115 (not contingent — the customer is contractually obligated to release retention absent warranty failure) with release deferred to 12 months post-commissioning. The reconciliation control: monthly per-contract retention ledger reconciled to balance-sheet line; warranty-clock tagging; any deduction by customer against warranty issues posted as a Section 34 CGST credit note with proportionate output GST reversal.
Rail 5 — Section 13 CGST time-of-supply on RA bills and advances
Under Section 13 of the CGST Act, time of supply for services is the earliest of invoice date, payment date, or (if invoice is delayed) completion date. For an RA bill, the invoice date is the trigger — output GST is recorded in the GSTR-3B of the month of the RA bill date. For the ₹12 crore mobilisation advance received in Month 0, GST liability arose then — receipt voucher under Section 31(3) of the CGST Act, GST of ₹2.16 crore paid in Month 0’s GSTR-3B. As each RA bill is issued, the advance recovery against that bill carries an adjustment of the GST already paid on the corresponding advance portion. The reconciliation control: every advance receipt ties to a Section 31(3) receipt voucher and an RA bill adjustment; no double GST liability.
Rail 6 — Section 393(1)(a) TDS on RA bills
Section 393(1)(a) of the Income Tax Act 2025 (payment code 1002, replaces Section 194C) applies at 2% (the customer in our example is a company) on RA bill values net of GST. The customer deducts at credit or payment, whichever is earlier, and deposits by the 7th of the following month under code 1002. The contractor sees this as a TDS receivable on its balance sheet, reconciled monthly to Form 26AS / AIS. Cross-era reconciliation against pre-April-2026 deductions filed under legacy 194C requires the dual-tag match. See Section 393 TDS new Income Tax Act reconciliation and TDS payment codes 1001-1092 India.
Rail 7 — Certified vs uncertified value bridge
The certified value is the customer’s signed-off measurement; the uncertified value is work executed but pending certification (typical 30-60 day lag). RA bills go on certified value only. Revenue under Ind AS 115 may be recognised on uncertified work too. The bridge at month-end:
| Bridge line | Cumulative value at Month 9 |
|---|---|
| Cumulative cost incurred | ₹40.0 Cr |
| Total estimated cost | ₹64.0 Cr |
| Percentage-of-completion | 62.5% |
| Cumulative revenue recognised | ₹50.0 Cr |
| Cumulative certified value | ₹50.0 Cr |
| Cumulative uncertified value | ₹3.0 Cr |
| Cumulative RA bills raised | ₹50.0 Cr |
| Cumulative customer receipts | ₹42.0 Cr |
| Unbilled revenue (balance sheet) | ₹3.0 Cr |
| Trade receivables (balance sheet) | ₹8.0 Cr |
A cumulative revenue greater than cumulative RA bills creates an unbilled-revenue asset. A cumulative RA bills greater than cumulative customer receipts creates a trade-receivables asset.
Worked example: ₹80 Cr industrial plant EPC, Month 9 close
The Pune EPC company closes Month 9 with the positions in the bridge above. RA Bill 7 issued in the month: period gross ₹7 Cr, advance recovery ₹1 Cr, retention ₹52.5 lakh, TDS ₹14 lakh, GST ₹1.26 Cr, net payable ₹6.585 Cr. Cumulative retention on balance sheet: ₹3.75 Cr. Mobilisation advance outstanding: ₹5 Cr (₹12 Cr less ₹7 Cr recovered). Cumulative revenue recognised under Ind AS 115: ₹50 Cr against ₹50 Cr cumulative RA bills (matched). Section 393(1)(a) TDS cumulative receivable: ₹1 Cr (₹50 Cr × 2%). Total reconciliation lines across the seven rails for this single contract in the month: about 280 — multiplied across the 17 active contracts in the company portfolio, the monthly volume is about 4,800 lines.
Size the cost of RA bill exceptions across your contract portfolio
Mis-recovery of mobilisation advance, missed retention deductions and timing gaps between certified and uncertified value each create reconciliation exceptions. Use the exception cost calculator to size the working-capital impact across your active EPC contracts.
Open the Three-Way-Match Exception Cost Calculator →What automated reconciliation changes
EPC engineering finance teams running the seven rails on spreadsheets typically lose 6-9 days per monthly close to the RA bill build-up, the percentage-of-completion bridge and the advance-and-retention ledger maintenance. Purpose-built reconciliation software India configured with the EPC preset carries the RA bill schedule, the advance recovery curve, the retention ledger with warranty clock, the Section 13 CGST time-of-supply trigger, the Section 393(1)(a) TDS map and the Ind AS 115 percentage-of-completion bridge out of the box. Customer outcomes include match-rate improvement from 51% to 88% on the procurement rail and a 50-65% reduction in close time on the milestone and retention rails. Build is two-to-four weeks on AWS Mumbai (ISO 27001:2022) once the ERP exports a structured contract, milestone, RA bill, advance receipt and retention extract. For the headline three-way match rail see three-way matching software India. For the authoritative text of Ind AS 115 / Ind AS 11 and CARO 2020 reporting, the ICAI is the source. Cross-reference works contract reconciliation in India and the manufacturing reconciliation in India pillar.