Variation workflow
A variation (change order, VO) captures a change to the contract scope and the commercial impact that goes with it. NEOM tracks each VO through a strict lifecycle and ties it back to the originating evidence (RFI, instruction, site condition) so the audit chain is unbroken.
Raising a variation
From the project home, open Tools → Variations and click New variation. The form captures:
- Title — describe the change in operator language. "Relocate switchboard SB-3 due to clash with FCU" is good. "Sparky change" is not.
- Originating evidence — an RFI, site instruction, or HSEQ incident reference. Optional but strongly recommended; the evidence chain renders on the detail page and is the first thing a quantity surveyor asks for.
- Parent scope — the budget package this VO modifies. NEOM enforces a CHECK constraint: a VO cannot be raised against a closed-out package without operator override.
- Estimated value and time impact — the commercial and programme estimates. These can be revised as the VO progresses; the original is preserved in the audit log.
- Discipline and cost code — drives the rollup into the budget vs forecast view.
The reference is allocated atomically (VO-0001, VO-0002, …) and stays with the VO for life. The status starts at submitted.
Status lifecycle
A variation moves through these states. Reverse transitions are allowed (with audit) but only withdrawn is terminal.
- submitted — initial state. The VO is on record but not priced or approved.
- priced — the contractor has provided a quote. The pricing is auditable; replacing a price writes the previous version to history.
- approved — the superintendent or principal has approved the price. The VO can now be certified in a payment claim.
- rejected — VO has been rejected. Can be revised and re-submitted; the rejection reason is required.
- withdrawn — the VO has been withdrawn by the originator. Terminal state.
- certified — VO has been included in an approved progress claim. The certified value pins; further edits to the VO line require a new VO.
Use the Variation timeline card on the detail page to see every state change with actor and timestamp.
Parent-scope check
NEOM enforces a parent-scope CHECK constraint at the database layer: a VO must reference a budget package that exists and has not been closed out. If you try to save a VO against a non-existent or closed package, you get a clear error before any write commits.
This is intentional. The check stops the most common cause of misallocated cost codes — variations being raised against packages that were already final-accounted in a prior period.
Linking into the progress claim
When you certify a progress claim that includes an approved VO, the VO's status flips to certified automatically and its value enters the variations sub-total on the claim. The cashflow snapshot view picks up the new line; the final account view tabulates it under "Certified variations".
If the claim is later reverted to served, the VO's status reverts to approved and the certified value is removed. The audit log captures both directions so SOPA disputes can be reconstructed end-to-end.
Variation register filters
The variation register supports the following filters via URL params:
status=submitted,priced— comma-separated list of statusesdiscipline=structural— single disciplinecost_code=02-300— match against the cost code prefixq=switchboard— full-text search across title, description, and evidence references
The exported CSV (the toolbar button) honours the current filter set.