Demiton · Schema

margin_watch_learning contract v1

Lessons and observability gaps Margin Watch has found on a project, awaiting review.

CompanyConstructionCivil EngineeringProject ManagementComplianceMCPArtificial IntelligenceOpen Contracting

Properties

Name Type Description
job_no string producer's snapshot of the job number (duplicates the subject spine's canonical 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.
legal_entity string context coordinate declared OPTIONAL
project_name string producer's snapshot of the project/client label (duplicates the entity label)
promotion_gate string record-level candidate-only marker
financial_period string context coordinate declared OPTIONAL
lesson_candidates array candidate lessons awaiting human promotion; empty array is valid
subject_entity_id integer the project the learning is about; the semantic fact's subject and its supersede key
margin_to_date_pct number margin to date at attribution time
tendered_margin_pct number tendered margin at attribution time
observability_gaps_ranked array data gaps that made a cycle unattributable, ranked; empty array valid
View JSON Schema on GitHub

JSON Schema

demiton-io-margin_watch_learning-v1-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/margin_watch_learning/v1.json",
  "title": "margin_watch_learning contract v1",
  "type": "object",
  "required": [
    "lesson_candidates",
    "observability_gaps_ranked",
    "promotion_gate",
    "subject_entity_id",
    "summary"
  ],
  "properties": {
    "job_no": {
      "type": "string",
      "description": "producer's snapshot of the job number (duplicates the subject spine's canonical key)",
      "x-demiton-requiredness": "optional"
    },
    "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"
    },
    "legal_entity": {
      "type": "string",
      "description": "context coordinate declared OPTIONAL",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "project_name": {
      "type": "string",
      "description": "producer's snapshot of the project/client label (duplicates the entity label)",
      "x-demiton-requiredness": "optional"
    },
    "promotion_gate": {
      "type": "string",
      "description": "record-level candidate-only marker",
      "x-demiton-requiredness": "required"
    },
    "financial_period": {
      "type": "string",
      "description": "context coordinate declared OPTIONAL",
      "x-demiton-requiredness": "optional"
    },
    "lesson_candidates": {
      "type": "array",
      "description": "candidate lessons awaiting human promotion; empty array is valid",
      "x-demiton-requiredness": "required",
      "items": {
        "type": "object",
        "properties": {
          "cause": {
            "type": "string",
            "description": "attributed cause, one of the five code-defined values in, `:86-131`",
            "x-demiton-requiredness": "required"
          },
          "statement": {
            "type": "string",
            "description": "the candidate lesson, stated as cause + drift + period + project",
            "x-demiton-requiredness": "required"
          },
          "promotion_gate": {
            "type": "string",
            "description": "explicit \"candidate only, human sign-off required\" marker",
            "x-demiton-requiredness": "required"
          },
          "provenance": {
            "type": "object",
            "properties": {
              "month": {
                "type": "string",
                "description": "claim-cycle month the drift is measured in",
                "x-demiton-requiredness": "required"
              },
              "evidence": {
                "type": "string",
                "description": "the observed signal behind the cause (e.g. a diary-flag count)",
                "x-demiton-requiredness": "required"
              },
              "drift_pts": {
                "type": "number",
                "description": "signed margin movement that cycle",
                "x-demiton-requiredness": "required",
                "x-demiton-unit": "margin points"
              },
              "drift_dollars": {
                "type": "number",
                "description": "points scaled by contract value; null when no contract value",
                "x-demiton-requiredness": "optional"
              }
            },
            "required": [
              "drift_pts",
              "evidence",
              "month"
            ]
          }
        },
        "required": [
          "cause",
          "promotion_gate",
          "statement"
        ]
      }
    },
    "subject_entity_id": {
      "type": "integer",
      "description": "the project the learning is about; the semantic fact's subject and its supersede key",
      "x-demiton-requiredness": "required"
    },
    "margin_to_date_pct": {
      "type": "number",
      "description": "margin to date at attribution time",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "percent"
    },
    "tendered_margin_pct": {
      "type": "number",
      "description": "tendered margin at attribution time",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "percent"
    },
    "observability_gaps_ranked": {
      "type": "array",
      "description": "data gaps that made a cycle unattributable, ranked; empty array valid",
      "x-demiton-requiredness": "required",
      "items": {
        "type": "object",
        "properties": {
          "gap": {
            "type": "string",
            "description": "the named missing data (e.g. no diaries for a month)",
            "x-demiton-requiredness": "required"
          },
          "months": {
            "type": "array",
            "description": "the months in which that gap occurred",
            "x-demiton-requiredness": "required"
          },
          "margin_points_obscured": {
            "type": "number",
            "description": "total absolute drift the gap obscures",
            "x-demiton-requiredness": "required",
            "x-demiton-unit": "margin points"
          }
        },
        "required": [
          "gap",
          "margin_points_obscured",
          "months"
        ]
      }
    }
  },
  "x-demiton-register-type": "margin_watch_learning",
  "x-demiton-contract-version": "1.1.1",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "financial_period",
      "requirement": "optional",
      "role": "context"
    },
    {
      "axis": "legal_entity",
      "requirement": "optional",
      "role": "context"
    }
  ],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "Lessons and observability gaps Margin Watch has found on a project, awaiting review.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/margin_watch_learning/",
  "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-margin_watch_learning-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.