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
View JSON Schema on GitHub

JSON Schema

demiton-io-project_performance_record-v2-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.