Capex vs Opex Classifier
AS-10 / Ind AS 16 capitalisation tests on every vendor invoice — capex vs opex classification in under 30 seconds per document.
The Problem
Mid-market finance teams process 200–2,000 vendor invoices per month, and every one carries an implicit capex vs opex classification decision that few AP processes make explicitly or consistently.
Manual GL coding at the PO stage
The person raising a purchase order selects a GL account from a dropdown and that initial coding typically survives unchanged through invoice processing to the general ledger. A keyboard bought for Rs 3,200 lands in GL 1535 — Computers & Peripherals simply because the buyer thinks of it as a computer accessory. The structured capitalisation tests in AS-10 (Revised) are never applied.
AMC and SaaS contracts capitalised
Annual maintenance contracts (AMCs) and SaaS licences are routinely booked to asset GL accounts because prior-year entries for the underlying asset used the same code. A Voltas HVAC AMC lands in GL 1530 — Office Equipment because the original HVAC unit was there. Ind AS 16 paragraph 7 explicitly prohibits capitalising spend that does not create or extend an identifiable asset.
Repairs routed to capital heads
Restoration expenditure — roof-waterproofing, worn-part replacement, structural patching — frequently lands in Buildings or Plant & Machinery GL accounts because the work relates to a capitalised asset. AS-10 paragraph 12 and Ind AS 16 paragraph 7(b) draw a hard line: expenditure that merely restores an asset to its previously assessed standard of performance must be expensed, regardless of GL account.
Compounding errors across the fixed-asset register
A company with 200 invoices per month and a 5% misclassification rate leaves ten items on the wrong side of the Capex / Opex line every month — 120 errors per year before the statutory auditor opens a working-paper file. Each incorrectly capitalised Opex item creates a depreciation stream under Schedule II of the Companies Act, 2013 that drags on reported profits for the asset's entire assumed life.
The number of fixed-asset register errors a mid-market company with 200 invoices/month and a conservative 5% misclassification rate accumulates before the year-end statutory audit — any one of which, if material, risks a qualification under ICAI SA 315 (Understanding the Entity) and an amended Schedule II fixed-asset schedule.
Why It Matters: Regulatory Framework
Four overlapping standards and statutes govern the capitalisation decision for every vendor invoice. Misclassification in either direction creates audit exposure, misstated financial statements, and potential tax-timing differences.
Repair vs. enhancement — the hard line
Expenditure that merely restores an asset to its previously assessed standard of performance is revenue in nature and must be expensed, regardless of GL account or invoice description. The distinction turns on whether the spend creates future economic benefit beyond the original expected output — not on the vendor's characterisation of the work.
SaaS licences are not intangible assets
A software subscription does not meet the asset-definition criteria under Ind AS 38 because the entity holds no enduring right to the underlying resource after the subscription lapses. Annual SaaS licences (Microsoft 365, Salesforce, AWS reservations) must be expensed in the period of service, not capitalised and amortised over an assumed useful life.
Depreciation rates tied to the asset register
Schedule II prescribes useful-life ranges for 17 asset categories (Buildings: 30 years; Plant & Machinery: 7.5–15 years; Computers: 3–6 years). A capitalised item starts a depreciation stream in every subsequent accounting period — meaning one misclassification compounds silently until the statutory auditor reviews the fixed-asset schedule.
Block-of-assets depreciation and tax timing
Under Section 32, depreciation is claimed on the written-down value of each block of assets at rates notified in the Income Tax Rules. Incorrectly capitalised Opex inflates the block, generating higher depreciation deductions in future years and creating a tax-timing difference that must be disclosed and unwound if the misclassification is discovered during assessment.
What This Workflow Automates
Seven deterministic passes from vendor invoice PDF to a classified, audit-ready output — in under 30 seconds per document, with every capitalisation test traceable to a specific AS-10 / Ind AS 16 provision.
Document ingestion and field extraction
Accepts vendor invoices and internal Capex requests in PDF form. Extracts nine structured fields — vendor_name, invoice_no, invoice_date, description, gl_account_proposed, amount, useful_life_months, cost_centre, and nature_of_spend — using form-aware extraction calibrated to the Acme Corp Pvt Ltd AP document layout.
Enduring-benefit test
Compares useful_life_months against the 12-month minimum required by AS-10 (Revised) and Ind AS 16. Any item with a stated life below 12 months, or with useful_life_months = 0 (as in restoration work), fails the enduring_benefit_test check with severity FAIL and is routed to the Opex queue.
Unit-value threshold test
Compares the extracted amount against the entity's configurable capitalisation threshold (default Rs 5,000, matching common mid-market policy). Items below threshold fail the unit_value_threshold check with severity FAIL regardless of proposed GL account, consistent with the materiality principle in Ind AS 16.
Repair-versus-enhancement test
Evaluates nature_of_spend and description fields for patterns indicating restoration to original condition — keywords such as "repair", "patch", "waterproofing", "replacement of worn part". Matches trigger nature_repair_vs_enhancement FAIL per Ind AS 16 paragraph 7(b) and AS-10 paragraph 12.
Recurring-service test
Detects subscriptions, AMCs, and service contracts by evaluating nature_of_spend (e.g. "Recurring subscription", "Service contract") and description keywords. Annual SaaS licences and HVAC AMC contracts trigger recurring_service_not_asset FAIL, as these do not create or extend an identifiable asset under Ind AS 38 paragraph 8.
GL-account consistency check
After the classification decision is made, cross-checks the proposed GL account for internal consistency. A capital GL account (1xxx series) proposed for an Opex item raises FAIL or WARNING; an Opex GL account proposed for a confirmed Capex item raises WARNING. Catches the reverse coding error where a genuine asset is booked to a P&L head.
Classification output and Excel export
Each invoice receives a Capex or Opex badge with a confidence score, a reasoning column citing the specific AS-10 / Ind AS 16 test that determined the outcome, and an Excel export of all classified items. The export is formatted to attach directly to the fixed-asset additions schedule in the controller's audit workpaper file under ICAI SA 230.
Edge Cases We Simulate
Five synthetic test scenarios that exercise every misclassification pattern seen in real AP data. Each produces a deterministic outcome an auditor or controller can verify in seconds against the underlying invoice PDF.
SaaS Licence Booked as Repairs & Maintenance
recurring_service_not_asset raises FAIL; reasoning cites Ind AS 38 para 8. GL account flagged inconsistent with any capitalisation intent.AMC Contract Capitalised
recurring_service_not_asset FAIL; gl_account_consistency WARNING because a capital GL is proposed for a service contract per Ind AS 16 para 7.Sub-Threshold Item Capitalised
unit_value_threshold FAIL (3,200 < 5,000); gl_account_consistency FAIL because a capital GL is proposed for a below-threshold item.Roof Leak Repair Capitalised
nature_repair_vs_enhancement FAIL and enduring_benefit_test FAIL (useful_life_months = 0). Reasoning cites AS-10 para 12 and Ind AS 16 para 7(b).Mixed-Signal Invoice — Ambiguous Description
nature_repair_vs_enhancement raises WARNING (not FAIL); item routed for controller review with both classification options populated for decision.Sample Files & Results
Five seeded invoices covering every classification pattern — one clean Capex, three distinct Opex misclassification types, and one ambiguous signal case.
Siemens PLC Control Panel
All four capitalisation tests pass: enduring benefit (84 mo > 12 mo), unit value (Rs 8,75,000 > Rs 5,000), new acquisition (not repair), and recurring-service test clear. GL 1520 confirmed consistent with Capex decision.
Microsoft 365 E3 Subscription
recurring_service_not_asset FAIL: annual subscription does not meet asset-definition criteria under Ind AS 38 para 8. GL 5340 is actually the correct Opex account — the failure prevents any accidental capitalisation in future periods.
Voltas HVAC Maintenance Contract
recurring_service_not_asset FAIL + gl_account_consistency WARNING. Maintenance contracts do not create or extend an identifiable asset under Ind AS 16 para 7. GL 1530 must be changed to an Opex account before posting.
Warehouse Roof Repair
nature_repair_vs_enhancement FAIL and enduring_benefit_test FAIL (useful_life_months = 0). Reasoning cites AS-10 para 12 and Ind AS 16 para 7(b): expenditure restoring original condition must be expensed.
Why Automation Wins Here
A controller manually reviewing 200 AP invoices per month against AS-10 / Ind AS 16 capitalisation criteria typically spends 2–3 days per month on initial coding review, query resolution, and fixed-asset register corrections. Cadel's capex vs opex classification engine reduces that cycle to under two hours of exception review — covering only items that carry at least one FAIL or WARNING flag.
Clean fixed-asset register
Every Opex misclassification caught before it enters the fixed-asset register eliminates a spurious depreciation stream under Schedule II of the Companies Act, 2013 — preventing misstated EBITDA and incorrect P&L charges from compounding across the asset's assumed useful life.
Audit-ready classification output
The Excel export — invoice number, vendor name, amount, proposed GL, classification decision, confidence score, per-item reasoning column — attaches directly to the fixed-asset additions schedule in the controller's audit workpaper file, satisfying ICAI SA 230 (Audit Documentation) without requiring a separate working paper.
Tax-timing accuracy
Correctly separating Capex from Opex at the invoice stage prevents inflated asset-block values under Section 32 of the Income Tax Act, 1961, avoiding tax-timing differences that would otherwise require disclosure and unwinding during assessment — and the interest cost that accompanies an amended block-of-assets computation.
Frequently Asked Questions
The questions controllers and statutory auditors ask most often before deploying automated capex vs opex classification.
The workflow applies the capitalisation criteria in AS-10 (Revised) — Property, Plant and Equipment issued by the ICAI and its Ind AS equivalent, Ind AS 16. Specifically, it tests for (a) probable future economic benefit flowing to the entity, (b) cost measured reliably, (c) useful life exceeding 12 months (the enduring-benefit test), and (d) the distinction between capital enhancement and revenue repair under AS-10 paragraph 12 / Ind AS 16 paragraph 7. For intangible-adjacent items such as SaaS licences, the workflow additionally references Ind AS 38 (Intangible Assets) to confirm that a subscription does not create a recognisable intangible asset.
Yes. The unit_value_threshold validation is configured per entity; the Rs 5,000 default reflects a common mid-market policy in India, but controllers can update it to any amount (e.g., Rs 10,000 or Rs 25,000) in the workflow settings. The reasoning column in the Excel export will always cite the effective threshold at the time of classification, creating a traceable audit trail if the policy changes mid-year.
For invoices denominated in USD, EUR, or other foreign currencies, the workflow reads the invoice amount and converts it to INR using the exchange rate field on the document or, if absent, flags the invoice for manual rate entry before the threshold test is run. The converted INR amount is used for the unit_value_threshold and enduring_benefit_test checks, and both the foreign-currency amount and the INR equivalent are preserved in the Excel export. This supports the requirements of Ind AS 21 — The Effects of Changes in Foreign Exchange Rates for initial recognition of PPE acquired in foreign currency.
Every invoice processed generates an immutable record in Cadel's inbox showing the extracted fields (vendor name, invoice number, description, GL account proposed, amount, useful life, cost-centre code), the result of each of the five validation checks with pass/fail/warning status, a confidence score, and a plain-language reasoning column that cites the specific test triggered (e.g., "useful_life_months = 0 — fails enduring-benefit test per Ind AS 16 para 7"). The Excel export includes all of these columns and a timestamp, making the file suitable as supporting documentation under ICAI SA 230 — Audit Documentation.
The workflow ingests vendor invoices as PDFs or scanned images and does not require a live ERP connection. For bulk classification, AP teams can upload a batch of invoices; the Excel export maps each item to the proposed GL account already on the invoice, which can be copied directly into Tally Prime's journal voucher import template or SAP's FB60 upload format. A native connector for NetSuite's AP module is on the Cadel product roadmap.
The nature_repair_vs_enhancement check evaluates three signals: (1) the nature_of_spend field on the invoice (e.g., "Restoration to original condition" vs. "Capacity enhancement"), (2) keywords in the description such as "repair", "patch", "waterproofing", "replacement of worn part", and (3) the useful_life_months value — a stated life of 0 or blank is treated as strong evidence of restoration rather than enhancement. When the signals conflict, the workflow assigns a lower confidence score and raises a WARNING rather than a FAIL, routing the item for human review rather than auto-rejecting it.
The recognition criteria under IAS 16 (IFRS) and Ind AS 16 are functionally identical — both require probable future economic benefit and reliable cost measurement. The primary practical difference is that Indian GAAP (AS-10 Revised) and the Companies Act 2013 impose entity-level capitalisation thresholds and Schedule II depreciation rates that are not mandated by IFRS. The workflow's AS-10 / Ind AS 16 logic therefore applies directly to IFRS reporters with only the threshold and depreciation-rate parameters needing adjustment.
Where a single invoice bundles a capital component (e.g., equipment installation) with a revenue component (e.g., first-year maintenance), the workflow extracts the description and nature_of_spend for each line item separately where the invoice structure permits. Mixed-classification invoices receive a WARNING flag and are routed for controller review with both classification options populated, consistent with the component-of-cost approach in AS-10 paragraph 9 / Ind AS 16 paragraph 43.