Functional Weave
Code in TypeScript

construction.payment-notice-dates@1.0.2

README.md

4,794 bytes · view raw

# construction.payment-notice-dates

The fallback payment deadlines of the Construction Act (Housing Grants,
Construction and Regeneration Act 1996, as amended from 2011 by Part 8 of the
Local Democracy, Economic Development and Construction Act 2009). When a
construction contract leaves out its own payment mechanism, the Scheme for
Construction Contracts fills the gap, and this gives the four dates it sets:

| date | rule (Scheme, Schedule Part II) |
|---|---|
| due date | interim (para 4): the later of 7 days after the end of the relevant period and the payee's claim; final (paras 5 and 6): the later of 30 days after completion and the claim; other (para 7): the later of 7 days after completion of that work and the claim |
| payment notice | para 9: the payer's notice, no later than 5 days after the due date |
| final date for payment | para 8: 17 days after the due date |
| pay-less notice | para 10: no later than 7 days before the final date for payment |

The relevant period is the one the contract sets, or 28 days if it sets none
(para 12). Pass its last day as `workDate`.

## Counting days

Periods are reckoned under s.116 of the 1996 Act: a period after a date starts
the day after it, weekends **count**, and Christmas Day, Good Friday and the
bank holidays of that part of the UK are left out. So this is not
`dates.add-business-days`. Bank holidays come from `dates.bank-holidays`
(gov.uk's list, 2019 to 2028; a period reaching outside that is an error, not a
guess). s.116 means holidays under the Banking and Financial Dealings Act 1971,
whose Schedule 1 names some fixed days that gov.uk leaves out when they fall on
a Saturday, listing only the weekday substitute. Those are excluded too:
26 December (not a Sunday) and 27 December when 25 or 26 December is a Sunday
in England and Wales; 1 and 2 January (not a Sunday, else 3 January) and
26 December when Christmas is a Sunday in Scotland. So in England Saturday
26 December 2026 is not counted, which a gov.uk-only calendar gets wrong.

The pay-less deadline counts 7 reckonable days backwards from the final date.
s.116(2) speaks of periods "after or from" a date; counting backwards with the
same exclusions is the reading this capability takes.

## What it does not do

- Contract terms win: if the contract sets its own due date, final date or
  notice periods (and they comply with the Act), use those instead.
- The payee's default notice (s.110B) and the postponed final date that follows
  when the payer gives no payment notice are not calculated.
- Northern Ireland has its own Construction Contracts (NI) Order 1997 and
  Scheme, and is refused.
- Contracts entered into before the 2011 amendments (before 1 October 2011 in
  England and Wales, before 1 November 2011 in Scotland) are refused.

## Data

`data/scheme-periods.json` holds the periods per region and kind, dated by the
day the contract was entered into (the amendments apply only to contracts made
from their commencement). It declares `effective`, so a `history=current` build
keeps the rows still in force and refuses dates before its horizon.

## Sources

- The Scheme for Construction Contracts (England and Wales) Regulations 1998
  (SI 1998/649), Schedule Part II, as amended:
  https://www.legislation.gov.uk/uksi/1998/649/schedule/part/II
- The Scheme for Construction Contracts (England and Wales) Regulations 1998
  (Amendment) (England) Regulations 2011 (SI 2011/2333), reg. 1 (in force
  1 October 2011, contracts entered into after that):
  https://www.legislation.gov.uk/uksi/2011/2333/regulation/1/made ; the Wales
  equivalent is SI 2011/1715, same date.
- The Scheme for Construction Contracts (Scotland) Regulations 1998
  (SI 1998/687), Schedule Part II:
  https://www.legislation.gov.uk/uksi/1998/687/schedule/part/II
- The Scheme for Construction Contracts (Scotland) Amendment Regulations 2011
  (SSI 2011/371), regs. 1 and 4 (in force 1 November 2011, contracts entered
  into on or after that date; paras 9 and 10 substituted with the same 5 and
  7 day periods): https://www.legislation.gov.uk/ssi/2011/371/made
- Housing Grants, Construction and Regeneration Act 1996, s.116 (reckoning
  periods of time): https://www.legislation.gov.uk/ukpga/1996/53/section/116
- Banking and Financial Dealings Act 1971, Schedule 1:
  https://www.legislation.gov.uk/ukpga/1971/80/schedule/1

1.0.1 fixes Python accepting a trailing newline or non-ASCII digits in workDate, claimDate and contractDate; adds tests.

## Notices

Contains public sector information licensed under the Open Government
Licence v3.0 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).

Legislation: Crown copyright and database right.

1.0.2 adds its attribution notices (NOTICE). The code and the tests are unchanged.