KPB Solutions
ES Español EN English
Book a meeting

Guide

Odoo for Construction Companies: Progress Payments, Job Progress and Invoicing Without Spreadsheets

A guide for contractors and subcontractors in Chile: the progress payment workflow from measurement to collection, how to track retainage and job costs, and what Odoo does out of the box versus what requires custom development.

Updated October 14, 2026 8 min read

Odoo for Construction Companies: Progress Payments, Job Progress and Invoicing Without Spreadsheets

Photo: Max and Dee · CC BY 2.0

You close out the month's measurements, the ITO flags a line item with a miscalculated quantity takeoff, and approval of the progress payment arrives weeks later. Only then do you invoice and the payment clock starts running, when you've already paid payroll, equipment and subcontractors.

If that cycle lives in spreadsheets, the problem is the progress payment workflow. In this guide you'll see how to design it, how to track retainage and job costs, which legal deadlines apply in Chile, and what Odoo for construction companies handles out of the box versus what requires custom development.

What a progress payment application is and why it gets delayed

A progress payment application (estado de pago, or EP, in Chile) is the document a contractor uses to bill the owner for the work completed in a period: it values the progress on each line item against the contracted budget, deducts the advance payment recoupment and the agreed retainage and, once approved by the owner or its technical inspector (ITO, inspección técnica de obra), allows the invoice to be issued.

Delays in construction progress payments usually come from quantity takeoffs (calculations of the quantities executed) that don't match between the site and the technical office, change orders without an approved price, conflicting versions between the ITO and finance, and invoices that differ from the approved EP and end up disputed.

The legal payment term runs from the moment the owner receives the invoice, not from the measurement: you finance the review days that come before it.

Designing the progress payment approval workflow: from measurement to collection

A progress payment approval workflow is the sequence of stages, owners and supporting documents that each EP goes through from measurement to collection:

  1. Site measurement: progress per line item as of the cutoff date, with quantity takeoffs and photos.
  2. Technical office review: values the progress against the itemized budget and applies change orders, advance recoupment, retainage and penalties.
  3. Submission to the owner or ITO: with number, version and supporting documents.
  4. Comments: every correction is a new version.
  5. Approval: date and approved amount, the only amount you can invoice.
  6. Invoice: a DTE (Chilean electronic tax document) for the approved amount, linked to the EP.
  7. Collection: dispute window, due date, reconciliation and retainage receivable.

Roles and approvals: site, technical office, owner and ITO

Role What must be recorded
Site manager Quantity takeoffs, photos and cumulative progress per line item
Technical office Valued EP cover sheet, version and supporting documents
Owner or ITO Comments, date and approved amount
Finance DTE linked to the EP, due date and payment
Project management Approved change orders, with amount and reason

Retainage, advance payments, change orders and guarantees in construction

Retainage in construction is the percentage the owner withholds from each progress payment as a guarantee of proper performance, up to a cap agreed in the contract or the bid terms, and returns after the project is accepted. Track it per project along with three other balances:

  • Retainage: balance, cap and expected release date. In public works, the amendment to the MOP (Chile's Ministry of Public Works) contract regulations published in the Official Gazette on February 27, 2026 establishes that, if the contractor doesn't prove payment to its subcontractors or justify the lack of payment, retainage is returned only when the contract is settled or when the contractor proves it.
  • Advance payments: amount received, recouped and outstanding.
  • Change orders: status and amount; only approved ones go into the EP.
  • Guarantees: bank guarantees (boletas de garantía) or surety policies, with amount and expiration date.

Job costing: analytics, purchasing, site warehouse and subcontracts

Job costing means charging each cost to the project that generates it and comparing it with its budget in time to act. In Odoo:

  • One project and one analytic account per job, to which purchases, vendor bills, hours and expenses are charged.
  • Analytic budget: in Odoo 19 it compares budgeted against committed (including confirmed purchase orders not yet billed) and actual, and flags in red the order that exceeds it.
  • On-site warehouse: one location per job. In Odoo 19, materials from stock moves validated for the project flow into its profitability panel.
  • Subcontracts: purchase orders charged to the job. Their EP is modeled with custom development, and matching their invoices is explained in finance and accounting automation.

Watch the version: according to the Odoo 20 release notes, the profitability report was removed from the project dashboard and replaced by dedicated budget and margin reports.

Payment terms and electronic invoicing in Chile: what a construction company must track

Law 19.983, as amended by Law 21.131 on 30-day payment, sets three rules that affect your cash flow (reviewed in October 2026):

  • Payment term: 30 calendar days from receipt of the invoice, and any clause that counts it from a different date has no effect. A longer term requires, among other things, a written agreement and registration with the Ministry of Economy.
  • SMB vs. large company: if your company is a smaller business and the owner is a large company, that longer term is allowed only in your favor and in cases such as installment or progress-based payments.
  • Disputes: the owner has 8 calendar days to dispute the invoice, counted from when the SII receives it. If it isn't disputed, it's irrevocably accepted, which is key if you sell it through factoring.

Late payment accrues default interest and a fee of 1% of the outstanding balance. To issue DTEs from Odoo you need SII certification (the SII is Chile's tax authority); the details are in electronic invoicing with Odoo.

What Odoo handles out of the box and what requires custom development

When evaluating construction management software, what matters is whether it can model your workflow. Odoo doesn't include a module for Chilean progress payments, but it publishes an industry package for general contractors (General Contractor, which requires Odoo Enterprise; reviewed in October 2026) with milestone billing, down payments and retainage based on progress. It's a solid foundation, although its description doesn't mention the EP cover sheet or ITO approval.

Need Standard in Odoo Custom
Jobs and milestones Projects with tasks, milestones and Gantt Not required
Progress billing Milestones with % delivered % calculated from the quantity takeoff
Advance payments Down payment deducted when invoicing the balance Proportional recoupment per EP
Cost per job Analytics and budgets Budget per line item
EP cover sheet and versions Not included Cumulative progress and comments
ITO approval Activities and electronic signature (Sign) EP stages with dates
Retainage and guarantees Mentioned in the industry package Balance, cap and release per job

What's standard depends on your edition and version: the industry package is Enterprise-only, and the differences for everything else are covered in Odoo Community vs Enterprise.

Percentage-of-completion billing in Odoo

Percentage-of-completion billing means invoicing the contract according to the percentage completed in each period. In Odoo, milestone-based invoicing assigns each milestone a percentage of the sales order line; when you mark it as reached, it becomes available to invoice, although the invoice isn't created automatically. It's the same logic used by service companies, using the percentage from the approved measurement.

Alerts and KPIs: physical vs. financial progress, cost overruns, margin per job and EP cycle days

With the workflow in Odoo, these indicators come out without spreadsheets:

  • Physical vs. financial progress: % completed according to the approved measurement versus % invoiced and % of the budget spent.
  • Projected cost overrun: actual cost + committed − budget.
  • Margin per job: invoiced revenue − charged costs.
  • EP cycle days: from cutoff to payment, broken down by stage.
  • Retainage receivable: balance per job and per owner.

Keep Checking adds alerts in Odoo. For construction jobs, useful ones include “Low-profitability projects,” “Project with excess hours logged,” “Spending over the expense budget” and “Customers with invoices overdue beyond X time.” Plans range from up to 10 to up to 100 alerts (3 to 10 UF + VAT per month; the UF is Chile's inflation-indexed unit of account), with setup in 7 days; you pick yours in the quote builder and request a quote. Alerts for unapproved EPs or retainage pending release are custom-built. To set thresholds, read automated threshold alerts.

Keep BI adds dashboards inside Odoo such as “Projects Status & Performance” and “Collections.” And KPB's custom AI assistants and agents can turn the ITO's comments into tasks, draft the EP submission and trigger follow-up with the owner, with a person reviewing before anything is sent.

Why work with KPB Solutions

We're an Odoo Gold Partner, with 40+ KPBeers (as we call our team) and 70+ active clients in 6 countries. In an Odoo implementation we design the progress payment workflow with you and model what Odoo doesn't include (cover sheet, approvals, retainage and advance recoupment) on top of Projects, analytic accounting, purchasing and milestone billing. We add SII certification, alerts, dashboards and integrations such as Fintoc, our partner for bank connectivity and automatic reconciliation.

Want to see your next job's progress payment in Odoo? Book a meeting and we'll review your workflow with a real EP.

FAQ

Frequently asked questions

What is a progress payment application (estado de pago) in construction?

It's the document a contractor uses to bill the owner for the work completed in a given period. It values the progress on each line item against the contracted budget and deducts the advance payment recoupment and the agreed retainage. Once the owner or the technical inspection team (ITO) approves it, the invoice can be issued.

Does Odoo have a progress payment module for Chilean construction companies?

Not as such. Out of the box, Odoo includes projects, milestone billing, down payments, analytic budgets, purchasing and electronic invoicing with the Chilean localization, and it publishes an industry package for general contractors that requires Odoo Enterprise. The EP cover sheet by line item, the ITO approval workflow and tracking of retainage pending release are modeled with custom development.

How do you design a progress payment approval workflow?

You define the stages (site measurement, technical office review, submission to the owner or ITO, comments, approval, invoice and collection), who owns each one and the supporting documents it requires. Each EP must record its version, submission date and approval date. That way you can measure how many days it spends at each stage and get an alert when it stalls.

What is retainage in construction and how do you track it?

It's the percentage the owner withholds from each progress payment as a guarantee of proper performance, up to a cap set by the contract or the bid terms, and returns after the project is accepted. It's best to track, for each project, the retained balance, the release condition and the expected date. In public works contracts with the MOP (Chile's Ministry of Public Works), since February 2026, if the contractor doesn't prove payment to its subcontractors or justify the lack of payment, the release is postponed until the contract is settled or until the contractor proves it.

How long does the owner have to pay the invoice for a progress payment?

As a general rule, 30 calendar days from receipt of the invoice, under Law 19.983 as amended by Law 21.131. A longer term requires, among other things, a written agreement and registration with the Ministry of Economy, with restrictions when the creditor is a smaller company and the debtor a large one. In addition, the owner has 8 calendar days from when the SII (Chile's tax authority) receives the invoice to dispute it.

What changes in Odoo 20 for managing construction projects?

According to the Odoo 20 release notes, published in September 2026, the profitability report was removed from the project dashboard, and budgets and actual and projected margins are analyzed in dedicated reports. In addition, the Field Service app was discontinued and its features moved to Planning, something to keep in mind if you schedule crews. Before designing your EP workflow, confirm which version your database runs on.

Ready to put these ideas to work in your business?

Let's talk about your Odoo, BI or automation project. A team of 40+ KPBeers is ready to help.

Book a meeting
WhatsApp