Custom Software for Construction & Contracting
Secure, flexible, and compliant architecture tailored for the unique challenges of the Construction & Contracting sector.
Vivek Mishra — Founder & Lead Architect, ERPStack
Quick Answer
In short: a construction ERP is a WIP schedule with a project attached. ERPStack builds custom construction software that recognises revenue cost-to-cost under ASC 606, surfaces over- and under-billings, produces AIA G702 and G703 applications with retainage and lien waivers, and files WH-347 certified payroll under 29 CFR 5.5.
Why Custom ERP for Construction & Contracting?
Operating in the Construction & Contracting sector requires a systems architecture designed for high scalability, operational flexibility, and strict regulatory compliance. Standard off-the-shelf software forces your teams to reshape their workflows to fit rigid software packages. A custom ERP for the Construction & Contracting industry maps directly to your exact business logic. Deployed to your secure cloud infrastructure (AWS or Azure), the system isolates database schemas, automates redundant reporting tasks, and scales without user seat licensing fees. This ensures your corporate data remains under your absolute control, eliminates vendor lock-in, and lowers long-term operational technology costs by up to 70% over a 3-year period.
Industry Pain Points
- A WIP schedule rebuilt in Excel monthly, so over-billings are weeks stale
- Job cost coded to the general ledger, not to MasterFormat sections
- AIA G702 and G703 retyped from the schedule of values
- Lien waivers chased by email on the wrong statutory form for the state
- Weekly certified payroll under 29 CFR 5.5 assembled by hand onto WH-347
- Oracle NetSuite or Odoo bolted onto construction job cost
Engineering Blueprint
In construction the ledger is the product. A contractor bills against a schedule of values, recognises revenue by cost-to-cost percentage complete and is bonded on a WIP schedule — so a construction ERP is an accounting engine with a field app attached, built by ERPStack in PostgreSQL with Drizzle ORM.
Cost-to-cost ASC 606 and the WIP schedule a surety reads
Under ASC 606 and IFRS 15, effective for periods beginning on or after 1 January 2018, construction revenue is recognised over time by costs incurred to date over total estimated costs. That ratio produces both contract-asset directions: costs in excess of billings, and billings in excess of costs. Tutor Perini booked $324.7M of claims and $402.1M of unapproved change orders in that asset at 31 December 2025. ERPStack recomputes it in PostgreSQL on every posted cost, so the ERP holds an Immutable Audit Trail — the part Oracle NetSuite, Microsoft Dynamics 365 and Odoo leave to a bolt-on.
// Drizzle ORM + PostgreSQL — cost-to-cost input method, ASC 606
export const jobCost = pgTable('job_cost', {
costCode: varchar('cost_code', { length: 16 }).notNull(), // MasterFormat
uniformat: varchar('uniformat', { length: 12 }), // ASTM E1557
incurred: numeric('incurred', { precision: 14, scale: 2 }),
eac: numeric('estimate_at_completion', { precision: 14, scale: 2 }),
});Construction cost codes, not a chart of accounts
A general ledger account cannot answer cost-to-complete. ERPStack keys every construction cost to a CSI MasterFormat section — the 2026 edition added 2,185 new and 617 reorganised listings — and a UNIFORMAT II element under ASTM E1557-09(2020). Quantities arrive as IFC 4.3 over a REST API, so takeoff, commitment and cost share one PostgreSQL key.
Offline-first field capture is architecture, not a feature
A construction site is intermittently connected, so ERPStack builds the field app as a Next.js, React and TypeScript PWA that writes locally and reconciles later. Each daily report, photo and timesheet carries a client key validated by Zod; Idempotency in API Design and per-record conflict resolution pick the winner on reconnect, with Redis on AWS holding the queue. Sage 300 CRE and Viewpoint keep running while the Strangler Fig Migration Pattern moves the ledger.
Our Solutions
- A cost-to-cost ASC 606 engine recomputing percent complete per posted cost
- Job cost keyed to MasterFormat 2026 and UNIFORMAT II inside PostgreSQL
- AIA G702 and G703 from the schedule of values, retainage per line
- State-correct waivers: California Civil Code 8132, 8134, 8136 and 8138
- WH-347 payroll behind RBAC, carrying an identifying number not a full SSN
- Offline-first field capture in a Next.js PWA with per-record conflict resolution
Compliance & Security
Construction compliance is documents: if the ERP cannot produce them exactly, the contractor is not paid.
AIA G702 and G703 from the schedule of values
The pay application is AIA G702 Payment Application and Certificate for Payment; G703 Continuation Sheet carries the schedule of values line by line, and subcontractors use G702S and G703S. Retainage is withheld per line and released against G707A, Consent of Surety to Reduction or Partial Release of Retainage — all projected from the PostgreSQL rows the construction ERP bills.Lien waivers are statutory forms that differ by state
California prescribes four exact forms in Civil Code sections 8132, 8134, 8136 and 8138: conditional and unconditional, on progress and on final payment. AIA publishes state variants including G901CA, G901TX, G901AZ and G902FL. A generic waiver voids the release, so ERPStack keys the construction form to project jurisdiction.Certified payroll under 29 CFR 5.5, every single week
Davis-Bacon work needs a certified payroll for each week worked: classification, hourly rate, fringe benefits under 40 U.S.C. 3141(2)(B), daily and weekly hours, on Optional Form WH-347 with a Statement of Compliance. Transmittals carry an identifying number, not a full SSN, and records are kept 3 years after completion; the DOL rewrite took effect 23 October 2023 (88 FR 57526). Certified Timesheet Tracking behind RBAC in PostgreSQL is the schema.OSHA e-filing and subcontractor prequalification
Since 1 January 2024 (88 FR 47254), establishments with 100 or more employees in appendix B industries file OSHA Forms 300 and 301 electronically, and covered establishments file Form 300A by 2 March under 29 CFR 1904.41. ERPStack keeps incidents and subcontractor insurance-certificate expiry in the construction ERP on AWS, in the form a SOC 2 audit asks for.ISO 19650, IFC 4.3 and the embodied-carbon question
BS EN ISO 19650 parts 1 to 6 govern information management using BIM across delivery and operation, and IFC 4.3 carries the model on the ISO 10303-21 exchange format. Ecodesign Regulation (EU) 2024/1781 is in force since 18 July 2024, its 2025-2030 plan adopted 16 April 2025 — the Digital Product Passport is where construction product data lands.
Standards we engineer to
- ASC 606 cost-to-cost
- AIA G702 / G703
- 29 CFR 5.5 payroll
- 29 CFR 1904.41 OSHA
- ISO 19650 / IFC 4.3
Get the Blueprint
Download our comprehensive Systems Architecture Blueprint to see how we architect compliant solutions.
Download BlueprintMetrics & Integrations
Illustrative engineering targets for this sector — the SLAs and capacities we design and build toward, not a live service dashboard.
WIP Recalculation
Cost Codes
Payroll Retention
Field Sync Queue
Integration: AIA G702 / G703
Integration: WH-347 Payroll
Integration: IFC 4.3 / ISO 19650
Integration: Sage Intacct Construction
Integration: Procore
Integration: AWS S3 Object Lock
Implementation Process
Cost code structure
MasterFormat 2026 sections and UNIFORMAT II elements mapped onto the job cost ledger.
Commitment ledger
Subcontracts and purchase orders posted as committed cost in PostgreSQL.
ASC 606 revenue engine
Cost-to-cost percent complete driving the WIP schedule and over-billings.
Billing and lien pack
AIA G702 and G703 from the schedule of values, retainage and state waivers.
Certified payroll
Weekly WH-347 under 29 CFR 5.5, three-year retention and RBAC on wage data.
Offline field capture
A Next.js PWA on AWS queueing daily reports, reconciled through Drizzle ORM.
Proven in Construction & Contracting
Field Operations & Compliance Portal
Unified operational portal for field tracking and compliance
Read Case StudyFrequently Asked Questions
By the cost-to-cost input method: revenue is recognised over time as costs incurred to date divided by total estimated costs per performance obligation, the ASC 606 policy Tutor Perini states in its 2025 Form 10-K. ERPStack recomputes that ratio in PostgreSQL on every posted cost, so the construction WIP schedule stays live.
Procore is usually right for field management — RFIs, submittals, drawings, daily reports — and rebuilding it is waste. It is not an accounting system. The custom construction ERP case is the ledger: cost-to-cost ASC 606, the WIP schedule a surety reads, retainage and lien waivers. ERPStack keeps Procore and rebuilds that.
QuickBooks plus Excel survives until one of three things happens: bonding capacity depends on a WIP schedule you cannot produce weekly, retainage and unapproved change orders exceed working capital, or prevailing-wage work forces weekly WH-347 output. Below that a construction firm should not buy an ERP; above it, the spreadsheet is the risk.
No. The form is statutory and state-specific. California prescribes four exact forms in Civil Code sections 8132, 8134, 8136 and 8138: conditional and unconditional, on progress and on final payment. AIA publishes state variants including G901CA, G901TX, G901AZ and G902FL. The construction ERP renders the right one per jurisdiction.
29 CFR 5.5(a)(3) requires a certified payroll for every week Davis-Bacon work is performed, showing classification, hourly rate, fringe benefits and daily and weekly hours on Optional Form WH-347 with a Statement of Compliance. A contractor running Dallas and Phoenix jobs needs per-jurisdiction wage determinations in one construction ERP.