Skip to main content
A commitment is a binding (or soon-to-be-binding) financial agreement between the project and an outside party. The Commitments tool covers two types in one unified table:
  • Subcontracts — agreements with trade contractors performing work
  • Purchase Orders (POs) — agreements to buy materials, equipment, or services
Both types share the same lifecycle, the same change-order machinery, the same SOV (Schedule of Values), and the same effect on the Budget table. They differ in default retainage handling, the company type they bind to, and the status vocabulary used along the way. This article is the reference: every column, every status, every related concept. For step-by-step workflows (creating a subcontract, applying a change order, invoicing against a commitment) see the related articles at the end.

How a Commitment Is Identified

Every commitment has:
  • Typesubcontract or purchase_order
  • Number — the contract or PO number (unique within the project)
  • Title — short description
  • Contract Company — the bound vendor or subcontractor (FK to companies)
  • Project — every commitment belongs to exactly one project
Source tables: subcontracts and purchase_orders. The unified list view reads from the commitments_unified view, which projects both types into a single shape for the table.

Columns Reference

The Commitments table shows these columns. All money values are computed from the commitment, its SOV items, its invoices, and its change orders.

Identity and parties

Money

Dates

Visibility


Statuses

Statuses differ slightly between subcontracts and POs because they reflect industry vocabulary, but the budget side semantics are identical: every status maps to either pending (the project will probably owe this money) or executed (the project definitely owes this money), and the Budget table treats them accordingly.

Subcontract statuses

Purchase Order statuses

The exact list of statuses available may be tightened or extended per project in Commitments Settings.

Schedule of Values (SOV)

Every commitment is broken into line items called the Schedule of Values. Each SOV item assigns a portion of the contract amount to a specific budget code, which is how a commitment lands on the right rows of the Budget table. SOV item fields:
  • Budget Code — the cost code the line rolls up to. This is what links the commitment to a Budget line.
  • Description — what the line covers.
  • Amount — the dollar value of the line.
  • Retainage % — overrides the commitment default for this line, if needed.
A commitment’s Original Amount is the sum of its SOV items. Adding, editing, or removing an SOV item before execution is normal; after execution, changes must go through a Commitment Change Order. Source tables: subcontract_sov_items, purchase_order_sov_items.

Commitment Change Orders

A Commitment Change Order (CCO) modifies an executed commitment — adding scope, removing scope, or adjusting amounts on existing SOV lines. The change order itself has a status, and only approved/executed CCOs flow into the Revised Contract Amount and into the Budget’s Committed Costs.

CCO statuses

Source tables: contract_change_orders (the CCO header), commitment_change_order_lines (the line items). CCOs typically originate from Change Events when a Potential Change Order (PCO) is promoted on the cost side. Direct creation of a CCO from the commitment detail page is also supported.

Retainage

Retainage is money held back from progress payments until the work is accepted, as a financial incentive for the contractor to complete the job correctly.
  • Default retainage % is set per commitment (default_retainage_percent).
  • Each SOV line can override the default.
  • Retainage is calculated on each invoice, accumulated as Retainage Held, and released through a Retainage Release invoice at substantial or final completion.
  • Subcontracts and POs use the same retainage mechanics; POs typically default to 0%.
See Invoicing for how retainage flows through pay applications.

Privacy and SOV Visibility

Two independent toggles control who can see what.
  • Private commitment (is_private) — Admins always see private commitments. Other users see them only if listed in non_admin_user_ids.
  • SOV visibility (allow_non_admin_view_sov_items) — Even on a non-private commitment, the SOV (and therefore the dollar amounts) may be hidden from non-Admin users. Set this when contract amounts shouldn’t be visible to the wider project team.
Both flags can be changed by users with Admin permission on Commitments.

Permissions


How Commitments Connect to Other Tools


Common Questions

Why doesn’t my new subcontract show up on the Budget yet? Check the status. Until the subcontract reaches Out for Signature, Pending, Approved, or Complete, the Budget ignores it. Draft subcontracts are intentionally excluded. Why doesn’t my new PO show up on the Budget yet? POs are counted starting at Draft (in Pending Cost Changes). If a PO isn’t showing up, the most likely cause is its SOV items aren’t assigned to a budget code, so they have nothing to roll up to. What’s the difference between Revised Contract Amount and Original Amount? Original Amount is the value at signing. Revised Contract Amount = Original + Approved Change Orders. Pending and draft change orders are not in Revised. Why is the Balance to Finish negative? The contractor has been billed for more than the Revised Contract Amount. Either an invoice was filed in excess of the contract, or an approved change order was reversed after invoicing. Investigate the invoice and CO history. Why can’t I edit this commitment? Either the commitment is executed (and you need Admin to edit), or you don’t have Write permission, or the commitment is private and you’re not on the access list. How do I bill against a commitment? Create an invoice from the Invoicing tool and select this commitment. The invoice’s SOV mirrors the commitment’s SOV with the additional billed-to-date columns. See Invoicing. Why doesn’t my Subcontractor Invoice show in Direct Costs on the Budget? By design. Subcontractor Invoices count toward JTD but are excluded from the Budget’s Direct Costs column because that work is already counted under Committed Costs. Including both would double-count. Can I delete a commitment? Soft delete only — it moves to the Recycle Bin and can be restored. Only Admins can delete or restore. Hard delete is not exposed in the UI.