Functional Weave
Code in Rust

property.completion-statement@1.0.0

README.md

2,486 bytes · view raw

# property.completion-statement

The figures on a buyer's completion statement for a property purchase: what
has to be sent to the seller on the completion day, and what the buyer has to
provide in total once their own costs are added.

    price
    − deposit paid on exchange
    ± ground rent, service charge and other outgoings apportioned to completion
    = balance to the seller
    + the buyer's fees (legal fees, SDLT, searches, registration)
    = total due from the buyer

## Apportionment

Outgoings such as ground rent and service charge are billed for a period that
usually straddles the completion date. Each is split by days, following the
Standard Conditions of Sale (fifth edition), condition 6.3: apportionment is
made with effect from the date of actual completion, and the seller is
treated as owning the property **until the end of the completion day**, with
the sum accruing evenly from day to day across the period. So:

- seller's days = the period start up to and including the completion date;
- buyer's days = the rest of the period.

If the seller has **already paid** the charge (`paidBySeller: true`), the
buyer refunds the seller the buyer's days, which is added to the balance. If
it is **not yet paid** (the buyer will receive and pay the bill), the seller
allows the buyer the seller's days, which is taken off.

The split is made by `finance.proration` (with `money.allocate`), so the
seller's and buyer's shares always add up to the charge exactly: a £9.99
charge over two days is 500p and 499p, never 500p twice.

A period that ends before completion is all the seller's (arrears not paid
are allowed in full); a period that starts after completion is all the
buyer's (an advance payment by the seller is refunded in full).

## What it does not do

- It uses a daily rate of the charge ÷ days in the period. Some contracts
  apportion annual sums on a 365-day year regardless of leap years, or treat
  the completion day as the buyer's: adjust `completionDate` or the period
  to match the contract.
- Estimated service charges that are later balanced (SCS 6.3.5), rent
  arrears clauses, late completion interest and retentions are not
  calculated.
- The mortgage advance is not netted off: the total due is what the buyer
  needs, from a lender and their own funds together.
- Every amount must be in the price's currency.

## Source

Law Society, Standard Conditions of Sale (fifth edition, 2018 revision),
condition 6.3 (apportionments).