Demiton · Schema
project_performance_record contract v2
A project's performance summary for a period: margin, schedule and quality signals.
CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting
Properties
| Name | Type | Description |
|---|---|---|
| subject | integer | the project the record is about; the semantic fact's subject and supersede key |
| summary | string | one-line human summary for content search and list display |
| currency | currency | the currency of every monetary amount on this record, an ISO 4217 alpha-3 code as the source states it. A record with no currency has no usable amount. |
| claim_cycle | object | monthly claimed-vs-cost curve and its derived margin |
| cost_lines | array | raw BC cost categories; empty when no P&L |
| variations | array | the tenant's variation register at analysis time |
| margin_alerts | object | evaluated alert rules and drafts; empty object valid |
| schema_version | string | payload version marker (`"1.0-phase1"`) |
| schedule_delays | object | latest site-diary schedule signal (completion dates, days worked, delay-field presence) |
| financial_period | string | the three declared context coordinates |
| proposal: tax_basis | string | `n/a`) |
| divergence_attribution | object | deterministic drift attribution; empty object valid |
| proposal: jurisdiction | jurisdiction | the regime the record is being read under |
| outcome | object | |
| contract | object | |
| provenance | object | |
| classification | object | |
| data_quality | object | |
| labour_plant | object | |
| proposal: claim_cycle | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://docs.demiton.io/registers/project_performance_record/v2.json",
"title": "project_performance_record contract v2",
"type": "object",
"required": [
"claim_cycle",
"divergence_attribution",
"margin_alerts",
"schema_version",
"subject",
"summary"
],
"properties": {
"subject": {
"type": "integer",
"description": "the project the record is about; the semantic fact's subject and supersede key",
"x-demiton-requiredness": "required"
},
"summary": {
"type": "string",
"description": "one-line human summary for content search and list display",
"x-demiton-requiredness": "required"
},
"currency": {
"type": "currency",
"description": "the currency of every monetary amount on this record, an ISO 4217 alpha-3 code as the source states it. A record with no currency has no usable amount.",
"x-demiton-requiredness": "optional"
},
"claim_cycle": {
"type": "object",
"description": "monthly claimed-vs-cost curve and its derived margin",
"x-demiton-requiredness": "required",
"properties": {
"cycles": {
"type": "integer",
"description": "number of months carrying a claim",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "count"
},
"curve": {
"type": "array",
"description": "month-by-month points; empty array valid",
"x-demiton-requiredness": "required",
"items": {
"type": "object",
"properties": {
"cost": {
"type": "number",
"description": "cost in that month",
"x-demiton-requiredness": "optional"
},
"month": {
"type": "string",
"description": "the **period covered** by the point",
"x-demiton-requiredness": "required"
},
"claimed": {
"type": "number",
"description": "claimed in that month",
"x-demiton-requiredness": "optional"
},
"cum_cost": {
"type": "number",
"description": "cumulative cost",
"x-demiton-requiredness": "required"
},
"cum_claimed": {
"type": "number",
"description": "cumulative claimed",
"x-demiton-requiredness": "required"
},
"margin_to_date_pct": {
"type": "number",
"description": "cumulative margin at that month",
"x-demiton-requiredness": "required",
"x-demiton-unit": "percent"
}
},
"required": [
"cum_claimed",
"cum_cost",
"margin_to_date_pct",
"month"
]
}
},
"claimed_to_date": {
"type": "number",
"description": "latest-point rollups",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "AUD / percent"
},
"drift_alarm_month": {
"type": "string",
"description": "first month margin-to-date flips negative",
"x-demiton-requiredness": "optional"
},
"tendered_margin_pct": {
"type": "number",
"description": "tendered baseline and deviation",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "percent / points"
}
},
"required": [
"curve"
]
},
"cost_lines": {
"type": "array",
"description": "raw BC cost categories; empty when no P&L",
"x-demiton-requiredness": "optional",
"items": {
"type": "object",
"properties": {
"cost_budget": {
"type": "number",
"description": "per-category budget vs actual",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "AUD / percent"
},
"work_type_raw": {
"type": "string",
"description": "the tenant's own BC category label",
"x-demiton-requiredness": "tenant-specific"
}
}
}
},
"variations": {
"type": "array",
"description": "the tenant's variation register at analysis time",
"x-demiton-requiredness": "tenant-specific",
"x-demiton-unit": "AUD / date"
},
"margin_alerts": {
"type": "object",
"description": "evaluated alert rules and drafts; empty object valid",
"x-demiton-requiredness": "required",
"properties": {
"active_alerts": {
"type": "array",
"description": "alerts active in the latest month; empty valid",
"x-demiton-requiredness": "required",
"items": {
"type": "object",
"properties": {
"rule": {
"type": "string",
"description": "rule id (`tendered_deviation`, `cost_claim_ratio`)",
"x-demiton-requiredness": "required"
},
"level": {
"type": "string",
"description": "`alert` or `escalation`",
"x-demiton-requiredness": "required"
},
"month": {
"type": "string",
"description": "the month the alert fired",
"x-demiton-requiredness": "required"
}
},
"required": [
"level",
"month",
"rule"
]
}
},
"first_alert_month": {
"type": "string",
"description": "earliest alert month",
"x-demiton-requiredness": "optional"
}
},
"required": [
"active_alerts"
]
},
"schema_version": {
"type": "string",
"description": "payload version marker (`\"1.0-phase1\"`)",
"x-demiton-requiredness": "required"
},
"schedule_delays": {
"type": "object",
"description": "latest site-diary schedule signal (completion dates, days worked, delay-field presence)",
"x-demiton-requiredness": "optional"
},
"financial_period": {
"type": "string",
"description": "the three declared context coordinates",
"x-demiton-requiredness": "optional",
"x-demiton-reference": true
},
"proposal: tax_basis": {
"type": "string",
"description": "`n/a`)",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "`excl_gst`\\"
},
"divergence_attribution": {
"type": "object",
"description": "deterministic drift attribution; empty object valid",
"x-demiton-requiredness": "required",
"properties": {
"cycles": {
"type": "array",
"description": "drifting periods; empty array valid",
"x-demiton-requiredness": "required",
"items": {
"type": "object",
"properties": {
"month": {
"type": "string",
"description": "the drifting period",
"x-demiton-requiredness": "required"
},
"drift_pts": {
"type": "number",
"description": "signed margin movement that cycle",
"x-demiton-requiredness": "required",
"x-demiton-unit": "margin points"
},
"observability_gaps": {
"type": "array",
"description": "named missing data that left the cycle unattributable",
"x-demiton-requiredness": "optional"
},
"causes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cause": {
"type": "string",
"description": "attributed cause, one of the code-defined values",
"x-demiton-requiredness": "required"
},
"evidence": {
"type": "string",
"description": "the observed signal behind the cause",
"x-demiton-requiredness": "optional"
}
},
"required": [
"cause"
]
}
}
},
"required": [
"drift_pts",
"month"
]
}
},
"attribution_coverage_pct": {
"type": "number",
"description": "share of drifting cycles explained (cycle-count basis v1)",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "percent"
}
},
"required": [
"cycles"
]
},
"proposal: jurisdiction": {
"type": "jurisdiction",
"description": "the regime the record is being read under",
"x-demiton-requiredness": "optional"
},
"outcome": {
"type": "object",
"properties": {
"budget": {
"type": "number",
"description": "BC total budget",
"x-demiton-requiredness": "required"
},
"margin": {
"type": "number",
"description": "BC margin",
"x-demiton-requiredness": "optional"
},
"status": {
"type": "string",
"description": "BC status",
"x-demiton-requiredness": "optional"
},
"invoiced": {
"type": "number",
"description": "BC total invoiced",
"x-demiton-requiredness": "optional"
},
"margin_pct": {
"type": "number",
"description": "margin to date",
"x-demiton-requiredness": "required",
"x-demiton-unit": "percent"
},
"cost_actual": {
"type": "number",
"description": "BC total cost",
"x-demiton-requiredness": "required"
},
"contract_value": {
"type": "number",
"description": "BC total contract value",
"x-demiton-requiredness": "optional"
},
"revenue_actual": {
"type": "number",
"description": "BC total revenue",
"x-demiton-requiredness": "optional"
},
"revised_budget": {
"type": "number",
"description": "variation-adjusted budget/contract and the variation tally",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "AUD / count / percent"
},
"cost_growth_pct": {
"type": "number",
"description": "cost ÷ budget − 1",
"x-demiton-requiredness": "required",
"x-demiton-unit": "percent"
}
},
"required": [
"budget",
"cost_actual",
"cost_growth_pct",
"margin_pct"
]
},
"contract": {
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "provenance of the claim terms",
"x-demiton-requiredness": "tenant-specific"
},
"claim_terms": {
"type": "object",
"description": "claim cadence / payment terms / retention from the tenant's QF-164 template",
"x-demiton-requiredness": "tenant-specific",
"x-demiton-unit": "days"
}
}
},
"provenance": {
"type": "object",
"properties": {
"phase": {
"type": "string",
"description": "pipeline phase marker (`\"phase1-bc-assignar\"`)",
"x-demiton-requiredness": "optional"
},
"generated_at": {
"type": "string",
"description": "generation timestamp",
"x-demiton-requiredness": "required",
"format": "date-time",
"x-demiton-type": "datetime"
},
"resolved_links": {
"type": "array",
"description": "the tenant's source-link rows used for the reconciliation",
"x-demiton-requiredness": "tenant-specific"
}
},
"required": [
"generated_at"
]
},
"classification": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "project/contract display label at analysis time",
"x-demiton-requiredness": "required"
}
},
"required": [
"name"
]
},
"data_quality": {
"type": "object",
"properties": {
"confidence": {
"type": "number",
"description": "gate confidence stamped on the fact",
"x-demiton-requiredness": "required",
"x-demiton-unit": "ratio 0–1"
},
"sources_missing": {
"type": "array",
"description": "named gaps",
"x-demiton-requiredness": "required"
},
"sources_present": {
"type": "array",
"description": "named sources that answered",
"x-demiton-requiredness": "required"
},
"source_coverage_pct": {
"type": "number",
"description": "share of expected sources present",
"x-demiton-requiredness": "required",
"x-demiton-unit": "ratio 0–1"
}
},
"required": [
"confidence",
"source_coverage_pct",
"sources_missing",
"sources_present"
]
},
"labour_plant": {
"type": "object",
"properties": {
"hours_by_task": {
"type": "object",
"description": "allocated hours per Assignar task",
"x-demiton-requiredness": "tenant-specific",
"x-demiton-unit": "hours"
},
"allocation_count": {
"type": "integer",
"description": "allocation rollup",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "count"
},
"total_task_hours": {
"type": "number",
"description": "total allocated task hours",
"x-demiton-requiredness": "optional",
"x-demiton-unit": "hours"
}
}
},
"proposal: claim_cycle": {
"type": "object",
"properties": {
"response_window_days": {
"type": "integer",
"description": "`calendar_day`)",
"x-demiton-requiredness": "tenant-specific",
"x-demiton-unit": "`working_day`\\"
}
}
}
},
"x-demiton-register-type": "project_performance_record",
"x-demiton-contract-version": "2.1.1",
"x-demiton-store": "tenant",
"x-demiton-axes": [
{
"axis": "currency",
"requirement": "optional",
"role": "context"
},
{
"axis": "legal_entity",
"requirement": "optional",
"role": "context"
},
{
"axis": "financial_period",
"requirement": "optional",
"role": "context"
}
],
"x-demiton-measures": [],
"x-demiton-provenance": {
"standards": [
{
"code": "A New Tax System (Goods and Services Tax) Act 1999 (Cth)",
"title": "GST tax invoice rules (ATO guidance)",
"access": "public_summary",
"region": "Australia",
"edition": "ATO guidance updated 25 Aug 2025",
"checked_on": "2026-09-14"
},
{
"code": "AS 2124-1992",
"title": "General Conditions of Contract",
"access": "paywalled_secondary",
"clause": "Annexure Part A",
"region": "Australia",
"edition": "1992 (superseded)",
"checked_on": "2026-09-14"
},
{
"code": "AS 4000-1997",
"title": "General Conditions of Contract",
"access": "paywalled_secondary",
"clause": "cl 37.1/37.2 (per commentary)",
"region": "Australia",
"edition": "1997 (superseded edition, still in use)",
"checked_on": "2026-09-14"
},
{
"code": "AS 4000:2025",
"title": "General Conditions of Contract (construct only)",
"access": "paywalled_secondary",
"clause": "cl 37.2 (per commentary)",
"region": "Australia",
"edition": "2025",
"checked_on": "2026-09-14"
},
{
"code": "AS 4902-2000",
"title": "General Conditions of Contract for Design and Construct",
"access": "paywalled_secondary",
"region": "Australia",
"edition": "2000 (R2005); status unverified",
"checked_on": "2026-09-14"
},
{
"code": "Building Industry Fairness (Security of Payment) Act 2017 (Qld)",
"title": "Qld security of payment",
"access": "public_summary",
"clause": "s 76",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Building and Construction Industry (Security of Payment) Act 2009 (ACT)",
"title": "ACT security of payment",
"access": "public_summary",
"clause": "s 19(2)",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Building and Construction Industry (Security of Payment) Act 2021 (WA)",
"title": "WA security of payment",
"access": "full_text_verified",
"clause": "ss 23(7), 25",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Building and Construction Industry Security of Payment Act 1999 (NSW)",
"title": "NSW security of payment",
"access": "public_summary",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Building and Construction Industry Security of Payment Act 2002 (Vic)",
"title": "Vic security of payment (2026 reforms)",
"access": "public_summary",
"clause": "ss 14A-14D",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Building and Construction Industry Security of Payment Act 2009 (SA)",
"title": "SA security of payment",
"access": "public_summary",
"clause": "s 17(2)",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Building and Construction Industry Security of Payment Act 2009 (Tas)",
"title": "Tas security of payment",
"access": "full_text_verified",
"clause": "ss 17-19",
"region": "Australia",
"edition": "as amended",
"checked_on": "2026-09-14"
},
{
"code": "Construction Contracts Act 2002 (NZ)",
"title": "Construction Contracts Act 2002 (2002 No 46)",
"access": "full_text_verified",
"clause": "ss 18A-18I, 20-22, 24A",
"region": "New Zealand",
"edition": "as at 5 Oct 2023",
"checked_on": "2026-09-14"
},
{
"code": "Housing Grants, Construction and Regeneration Act 1996 Part II",
"title": "HGCRA 1996 Part II (Payment), as amended by LDEDCA 2009",
"access": "full_text_verified",
"clause": "ss 110-113",
"region": "United Kingdom",
"edition": "as amended (2011)",
"checked_on": "2026-09-14"
},
{
"code": "SI 1998/649",
"title": "Scheme for Construction Contracts (England and Wales) Regulations 1998",
"access": "full_text_verified",
"clause": "paras 5, 8, 9, 10",
"region": "United Kingdom",
"edition": "as amended 2011",
"checked_on": "2026-09-14"
},
{
"code": "AIA G702-1992 / G703-1992",
"title": "Application and Certificate for Payment / Continuation Sheet",
"access": "public_summary",
"region": "United States",
"edition": "1992 (current base editions)",
"checked_on": "2026-09-14"
}
]
},
"description": "A project's performance summary for a period: margin, schedule and quality signals.",
"x-demiton-contract-url": "https://docs.demiton.io/registers/project_performance_record/",
"x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/demiton-io-project_performance_record-v2"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.