Check Australian construction retention trust rules.
LiveAustralia1 credit
What it does
Check whether retention on a construction contract in New South Wales, Queensland or Victoria must be held in trust, how much is held and how it is released, with a checklist for the subcontractor.
Ask your AI
Check Australian construction retention trust rules. Ask me for any detail you need first, then show the result with its source and date, and list anything a person should check.
What comes back
Thresholds use the head contract value; the retention is worked out on the subcontract value.
Good to know
- Thresholds use the head contract value; the retention is worked out on the subcontract value.
- Queensland project and retention trusts are reported separately by principal type and contract date. Victoria shows the 2026 release claim route.
- A release date comes only from the contract’s release terms. General information, not legal advice.
For developers
| Tool ID | au_construction_retentions |
|---|---|
| Server | Australia |
| Credit behaviour | 1 credit |
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"NSW",
"QLD",
"VIC"
],
"description": "Australian state: NSW, QLD or VIC."
},
"party_role": {
"type": "string",
"enum": [
"head_contractor",
"subcontractor"
],
"description": "Your role under the contract: head_contractor or subcontractor."
},
"principal_type": {
"description": "Required for QLD: who the principal on the head contract is. queensland_government; hospital_and_health_service; private_sector; local_government; statutory_authority_or_goc.",
"type": "string",
"enum": [
"queensland_government",
"hospital_and_health_service",
"private_sector",
"local_government",
"statutory_authority_or_goc"
]
},
"head_contract_value": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Value in AUD of the head contract with the principal. Sets the threshold. Use the same figure as subcontract_value if there is no head contract."
},
"subcontract_value": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Value in AUD of the contract the retention is withheld under. The retention is calculated on this amount."
},
"retention_percentage": {
"description": "Retention as a percentage of subcontract_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 AUD. Give this or retention_percentage, not both.",
"type": "number",
"exclusiveMinimum": 0
},
"head_contract_entered_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the head contract with the principal was entered, YYYY-MM-DD. Decides which rule set and phase applies. Never inferred from the subcontract date."
},
"subcontract_entered_date": {
"description": "Date the subcontract the retention is withheld under was entered, YYYY-MM-DD. Recorded and checked against practical completion; it does not set the rule set.",
"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."
},
"vic_in_flight_matter": {
"description": "VIC only. payment_claim_or_adjudication_before_commencement: a payment claim was served, or an adjudication application made and not determined, before 15 April 2026 (the 2026 amendments do not apply to that matter). none: neither. Omit if not known; a caveat is returned.",
"type": "string",
"enum": [
"none",
"payment_claim_or_adjudication_before_commencement"
]
},
"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
}
}
},
"required": [
"state",
"party_role",
"head_contract_value",
"subcontract_value",
"head_contract_entered_date",
"practical_completion_date",
"defects_liability_months",
"release_terms"
],
"additionalProperties": false
}Shared output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"executionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"creditsCharged": {
"type": "number",
"minimum": 0
},
"usage": {
"type": "object",
"properties": {
"credits_charged": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"credits_remaining": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"credits_charged"
],
"additionalProperties": false
}
},
"required": [
"summary",
"data",
"creditsCharged"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
}
},
"required": [
"code",
"message",
"retryable"
],
"additionalProperties": false
},
"usage": {
"type": "object",
"properties": {
"credits_charged": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"credits_remaining": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"credits_charged"
],
"additionalProperties": false
}
},
"required": [
"error"
],
"additionalProperties": false
}
]
}