# construction.valuation
An interim valuation (application for payment, payment certificate) from the
quantity surveyor's figures to the amount the payer actually transfers.
## The order of operations
1. **Gross valuation** = work done to date + materials on site. Both are
cumulative, as valuations always are.
2. **Retention** on the cumulative gross, with `construction.retention`: the
full percentage before practical completion, half after it, none after the
defects are made good.
3. **Net valuation** = gross - retention held.
4. **Amount due** = net - previously certified. Because everything above is
cumulative, retention released at practical completion simply shows up
here as money due.
5. **VAT** on the amount due, with `finance.tax.add-vat` (GB, the category and
the valuation date). Under the domestic reverse charge nothing is charged:
`vat` is zero and `reverseChargeVat` shows what the customer accounts for
to HMRC. Whether the reverse charge applies is a separate question for
`construction.vat-reverse-charge`; pass its answer as `reverseCharge`.
6. **CIS** with `construction.cis-deduction`: the deduction is taken from the
amount due less `cisMaterials`, never from the VAT, at the payee's status
and the rate on the valuation date. The deduction rounds **down** to the
penny (HMRC publishes no rounding rule; down never over-deducts). Call
`construction.cis-deduction` yourself if you need another mode.
7. **Amount payable** = amount due + VAT charged - CIS deduction.
## Edges
- A valuation below what was previously certified gives a negative amount
due, with negative VAT: the payee owes the difference. Under CIS that is an
error, because there is no payment to deduct from; correct it in the next
valuation.
- `vatCategory` null means the payee is not VAT registered; the reverse charge
then cannot apply and is refused, as is a reverse charge on zero-rated work.
- `cisMaterials` is ignored when `cisStatus` is null. It must not exceed the
amount due.
- All amounts must share one currency.
Payment timing (due date, payment and pay-less notices) is
`construction.payment-notice-dates`.