# Check New Zealand construction retention rules

Check how the retention money rules apply to a commercial construction contract: the trust and record-keeping duties, when the money is released and what happens if the party holding it fails.

Canonical: https://aroai.com/tools/nz_construction_retentions/

## Tool reference

MCP tool ID: `nz_construction_retentions`. Availability: Live. Country: New Zealand.

Credit use: 1 credit.

## Input schema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "contract_value": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Value in NZD of the contract the retention is withheld under. Required."
    },
    "retention_percentage": {
      "description": "Retention as a percentage of contract_value, above 0 and up to 100. Give this or retention_amount, not both.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "retention_amount": {
      "description": "Amount withheld in NZD. Give this or retention_percentage, not both.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "contract_entered_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date the contract was entered, YYYY-MM-DD. Decides which text applies."
    },
    "renewal_status": {
      "type": "string",
      "enum": [
        "not_renewed",
        "renewed",
        "unknown"
      ],
      "description": "Whether the contract was renewed for a further term. Required. unknown returns depends_on_renewal for a contract entered before 5 October 2023."
    },
    "residential_occupier_party": {
      "description": "True if a party is a residential occupier of the premises (subpart 2A does not cover that contract). Omit if not known; a caveat is returned.",
      "type": "boolean"
    },
    "renewal_date": {
      "description": "Renewal date, YYYY-MM-DD. Required when renewal_status is renewed; omit when not_renewed.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "insolvency_event_date": {
      "description": "Date a receivership or liquidation of the party holding the retention began, YYYY-MM-DD. Give it if one has occurred.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "practical_completion_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Practical completion date, YYYY-MM-DD."
    },
    "defects_liability_months": {
      "type": "integer",
      "minimum": 0,
      "maximum": 120,
      "description": "Defects liability period in whole months. Use 0 when the contract has none."
    },
    "release_terms": {
      "type": "string",
      "enum": [
        "contract_dates",
        "contract_silent",
        "unknown"
      ],
      "description": "Release terms in the contract. contract_dates: give release_dates. contract_silent: the contract sets no release terms. unknown: not yet known; no release date is returned and the terms are requested."
    },
    "release_dates": {
      "description": "Required with contract_dates. Release dates and percentages that add up to 100. Use two entries for a partial release at practical completion.",
      "minItems": 1,
      "maxItems": 6,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "percentage": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 100
          },
          "description": {
            "type": "string",
            "maxLength": 200
          }
        },
        "required": [
          "date",
          "percentage"
        ],
        "additionalProperties": false
      }
    },
    "defects_notice_date": {
      "description": "Date written notice was given to use retention to remedy defects, YYYY-MM-DD. Returns the earliest use date 10 working days later.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "region": {
      "description": "NZ province whose anniversary day is excluded when counting working days. Used only with defects_notice_date.",
      "type": "string",
      "enum": [
        "Auckland",
        "Canterbury (South)",
        "Canterbury",
        "Chatham Islands",
        "Hawke's Bay",
        "Marlborough",
        "Nelson",
        "Otago",
        "Southland",
        "Taranaki",
        "Wellington",
        "Westland"
      ]
    }
  },
  "required": [
    "contract_value",
    "contract_entered_date",
    "renewal_status",
    "practical_completion_date",
    "defects_liability_months",
    "release_terms"
  ],
  "additionalProperties": false
}
```

## Example input

```json
{
  "contract_value": 480000,
  "retention_percentage": 5,
  "contract_entered_date": "2026-02-10",
  "renewal_status": "not_renewed",
  "practical_completion_date": "2026-12-18",
  "defects_liability_months": 12,
  "release_terms": "contract_silent"
}
```

## Usage notes

- Which rules apply depends on when the contract was entered or renewed.
- A release date comes only from the contract’s own release terms; it is never assumed.
- Commercial contracts only; a contract with a residential occupier is outside these rules. General information, not legal advice.
