Demiton · Schema

overstaffing_verdict contract v1

Whether a project's actual crew exceeds its tendered labour schedule.

CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting

Properties

Name Type Description
verdict string The outcome: `OVERSTAFFED`, `ON_TRACK` or `UNDERSTAFFED`. `BUDGET_ONLY` is *not* a stored value — the writer returns without writing (`:410-411`).
burn_pct number `actual_hours / budget_hours`.
confidence number Producer confidence in the judgement.
source_uri string Canonical URI of the verdict fact (`demiton://project/{code}/overstaffing-verdict`).
assessed_at string When the judgement was taken.
elapsed_pct number Fraction of project duration elapsed at assessment time.
project_ref string The Demiton project the verdict is about (the `project_code` the writer already keys on).
source_file string Name of the resource-schedule workbook the budget side came from.
actual_hours number Labour hours actually charged to the project at assessment time.
budget_hours number Tendered labour hours the actual is measured against (parsed schedule total or override).
run_rate_pct number `burn_pct / elapsed_pct` — headcount run-rate against expected pace; the value the verdict thresholds are applied to.
verdict_thresholds object The `overstaffed_at` / `understaffed_at` cut-offs used for this assessment.
View JSON Schema on GitHub

JSON Schema

demiton-io-overstaffing_verdict-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/overstaffing_verdict/v1.json",
  "title": "overstaffing_verdict contract v1",
  "type": "object",
  "required": [
    "actual_hours",
    "assessed_at",
    "budget_hours",
    "burn_pct",
    "elapsed_pct",
    "project_ref",
    "run_rate_pct",
    "verdict"
  ],
  "properties": {
    "verdict": {
      "type": "string",
      "description": "The outcome: `OVERSTAFFED`, `ON_TRACK` or `UNDERSTAFFED`. `BUDGET_ONLY` is *not* a stored value — the writer returns without writing (`:410-411`).",
      "x-demiton-requiredness": "required"
    },
    "burn_pct": {
      "type": "number",
      "description": "`actual_hours / budget_hours`.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "ratio (0–1+)"
    },
    "confidence": {
      "type": "number",
      "description": "Producer confidence in the judgement.",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "0–1"
    },
    "source_uri": {
      "type": "string",
      "description": "Canonical URI of the verdict fact (`demiton://project/{code}/overstaffing-verdict`).",
      "x-demiton-requiredness": "optional"
    },
    "assessed_at": {
      "type": "string",
      "description": "When the judgement was taken.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "UTC",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "elapsed_pct": {
      "type": "number",
      "description": "Fraction of project duration elapsed at assessment time.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "fraction (0–1)"
    },
    "project_ref": {
      "type": "string",
      "description": "The Demiton project the verdict is about (the `project_code` the writer already keys on).",
      "x-demiton-requiredness": "required"
    },
    "source_file": {
      "type": "string",
      "description": "Name of the resource-schedule workbook the budget side came from.",
      "x-demiton-requiredness": "optional"
    },
    "actual_hours": {
      "type": "number",
      "description": "Labour hours actually charged to the project at assessment time.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "hours"
    },
    "budget_hours": {
      "type": "number",
      "description": "Tendered labour hours the actual is measured against (parsed schedule total or override).",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "hours"
    },
    "run_rate_pct": {
      "type": "number",
      "description": "`burn_pct / elapsed_pct` — headcount run-rate against expected pace; the value the verdict thresholds are applied to.",
      "x-demiton-requiredness": "required",
      "x-demiton-unit": "ratio"
    },
    "verdict_thresholds": {
      "type": "object",
      "description": "The `overstaffed_at` / `understaffed_at` cut-offs used for this assessment.",
      "x-demiton-requiredness": "tenant-specific"
    }
  },
  "x-demiton-register-type": "overstaffing_verdict",
  "x-demiton-contract-version": "1.0.2",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "ISO 30414:2025",
        "title": "Human resource management - Requirements and recommendations for human capital reporting and disclosure",
        "access": "paywalled_secondary",
        "region": "International",
        "edition": "2025 (2nd ed.; 2018 1st ed. cancelled)",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Whether a project's actual crew exceeds its tendered labour schedule.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/overstaffing_verdict/",
  "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-overstaffing_verdict-v1"
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.