{
  "info": {
    "name": "AMLOK API 1.0.0",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "57-operation product API contract. Set the institution-issued base_url and API key in a private environment. All sample identifiers are synthetic. Fresh command_reference for each new action; preserve it for retries."
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": ""
    },
    {
      "key": "api_key",
      "value": ""
    },
    {
      "key": "record_id",
      "value": "record_synthetic"
    },
    {
      "key": "record_etag",
      "value": "\"1\""
    },
    {
      "key": "command_reference",
      "value": "replace-for-each-new-command"
    }
  ],
  "item": [
    {
      "name": "Create borrower",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createBorrower-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/borrowers",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "borrowers"
          ],
          "query": []
        },
        "description": "Register a business or consumer borrower. Registration records institution-supplied identity; it does not assert successful KYB or KYC. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"type\": \"business\",\n  \"business\": {\n    \"legal_name\": \"Synthetic Borrower Inc.\",\n    \"incorporation_country\": \"CA\",\n    \"client_reference\": \"LOS-B-0042\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createBorrower-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/borrowers",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "borrowers"
              ],
              "query": []
            },
            "description": "Register a business or consumer borrower. Registration records institution-supplied identity; it does not assert successful KYB or KYC. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"business\",\n  \"business\": {\n    \"legal_name\": \"Synthetic Borrower Inc.\",\n    \"incorporation_country\": \"CA\",\n    \"client_reference\": \"LOS-B-0042\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 201,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"bor_synthetic\",\n    \"type\": \"business\",\n    \"subject_id\": \"biz_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"client_reference\": \"LOS-B-0042\",\n    \"profile\": {\n      \"type\": \"business\",\n      \"business\": {\n        \"legal_name\": \"Synthetic Borrower Inc.\",\n        \"incorporation_country\": \"CA\",\n        \"client_reference\": \"LOS-B-0042\"\n      }\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List borrowers",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/borrowers",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "borrowers"
          ],
          "query": []
        },
        "description": "List borrower. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/borrowers",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "borrowers"
              ],
              "query": []
            },
            "description": "List borrower. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"bor_synthetic\",\n      \"type\": \"business\",\n      \"subject_id\": \"biz_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"client_reference\": \"LOS-B-0042\",\n      \"profile\": {\n        \"type\": \"business\",\n        \"business\": {\n          \"legal_name\": \"Synthetic Borrower Inc.\",\n          \"incorporation_country\": \"CA\",\n          \"client_reference\": \"LOS-B-0042\"\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get borrower",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/borrowers/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "borrowers",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get borrower. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/borrowers/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "borrowers",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get borrower. All IDs and cursors must belong to the authorized workspace and environment. Required scope: borrowers:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"bor_synthetic\",\n    \"type\": \"business\",\n    \"subject_id\": \"biz_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"client_reference\": \"LOS-B-0042\",\n    \"profile\": {\n      \"type\": \"business\",\n      \"business\": {\n        \"legal_name\": \"Synthetic Borrower Inc.\",\n        \"incorporation_country\": \"CA\",\n        \"client_reference\": \"LOS-B-0042\"\n      }\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create embedding session",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createEmbeddingSession-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/embedding-sessions",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "embedding-sessions"
          ],
          "query": []
        },
        "description": "Create a short-lived Integrations Hub session. Send only launch_url to the borrower. AMLOK captures consent and manages provider authorization and ingestion. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"borrower_id\": \"bor_synthetic\",\n  \"embedding_version_id\": \"embed_synthetic\",\n  \"purpose\": \"connect\",\n  \"return_url\": \"https://institution.example.com/connected\",\n  \"consent_purposes\": [\n    \"credit_assessment\",\n    \"continuous_monitoring\"\n  ],\n  \"embed_origin\": \"https://institution.example.com\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createEmbeddingSession-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/embedding-sessions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "embedding-sessions"
              ],
              "query": []
            },
            "description": "Create a short-lived Integrations Hub session. Send only launch_url to the borrower. AMLOK captures consent and manages provider authorization and ingestion. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"borrower_id\": \"bor_synthetic\",\n  \"embedding_version_id\": \"embed_synthetic\",\n  \"purpose\": \"connect\",\n  \"return_url\": \"https://institution.example.com/connected\",\n  \"consent_purposes\": [\n    \"credit_assessment\",\n    \"continuous_monitoring\"\n  ],\n  \"embed_origin\": \"https://institution.example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 201,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"embs_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"status\": \"created\",\n    \"launch_url\": \"https://borrower.example.com/session/synthetic\",\n    \"expires_at\": \"2026-11-06T12:15:00Z\",\n    \"connection_ids\": [],\n    \"consent_ids\": [],\n    \"record_version\": 1,\n    \"embedding_version_id\": \"embed_synthetic\",\n    \"purpose\": \"connect\",\n    \"origination_id\": null,\n    \"monitor_id\": null,\n    \"requirement_id\": null,\n    \"consent_purposes\": [\n      \"credit_assessment\",\n      \"continuous_monitoring\"\n    ],\n    \"embed_origin\": \"https://institution.example.com\",\n    \"return_url\": \"https://institution.example.com/connected\",\n    \"failure\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get embedding session",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/embedding-sessions/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "embedding-sessions",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Inspect the borrower-specific execution of a Hub configured in the console. Session completion confirms connection setup, not ingestion readiness or underwriting completion. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/embedding-sessions/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "embedding-sessions",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Inspect the borrower-specific execution of a Hub configured in the console. Session completion confirms connection setup, not ingestion readiness or underwriting completion. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"embs_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"status\": \"created\",\n    \"launch_url\": \"https://borrower.example.com/session/synthetic\",\n    \"expires_at\": \"2026-11-06T12:15:00Z\",\n    \"connection_ids\": [],\n    \"consent_ids\": [],\n    \"record_version\": 1,\n    \"embedding_version_id\": \"embed_synthetic\",\n    \"purpose\": \"connect\",\n    \"origination_id\": null,\n    \"monitor_id\": null,\n    \"requirement_id\": null,\n    \"consent_purposes\": [\n      \"credit_assessment\",\n      \"continuous_monitoring\"\n    ],\n    \"embed_origin\": \"https://institution.example.com\",\n    \"return_url\": \"https://institution.example.com/connected\",\n    \"failure\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List connections",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/connections",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "connections"
          ],
          "query": []
        },
        "description": "Inspect borrower-authorized integrations, connection status, ingestion readiness, freshness and coverage. The Hub performs authorization; this endpoint exposes its result without configuring integrations. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/connections",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "connections"
              ],
              "query": []
            },
            "description": "Inspect borrower-authorized integrations, connection status, ingestion readiness, freshness and coverage. The Hub performs authorization; this endpoint exposes its result without configuring integrations. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"integration_id\": \"bank_synthetic\",\n      \"status\": \"connected\",\n      \"consent_id\": \"consent_synthetic\",\n      \"last_successful_sync_at\": \"2026-11-06T12:00:00Z\",\n      \"source_as_of\": \"2026-11-06T12:00:00Z\",\n      \"coverage\": {\n        \"start\": \"2025-11-01T00:00:00Z\",\n        \"end\": \"2026-11-01T00:00:00Z\"\n      },\n      \"missing_reason\": null,\n      \"record_version\": 1,\n      \"data_status\": \"partial\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get connection",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/connections/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "connections",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Inspect one borrower connection and its collection status. Use a Hub reauthorization session when borrower action is required; no provider credentials are returned. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/connections/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "connections",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Inspect one borrower connection and its collection status. Use a Hub reauthorization session when borrower action is required; no provider credentials are returned. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"con_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"integration_id\": \"bank_synthetic\",\n    \"status\": \"connected\",\n    \"consent_id\": \"consent_synthetic\",\n    \"last_successful_sync_at\": \"2026-11-06T12:00:00Z\",\n    \"source_as_of\": \"2026-11-06T12:00:00Z\",\n    \"coverage\": {\n      \"start\": \"2025-11-01T00:00:00Z\",\n      \"end\": \"2026-11-01T00:00:00Z\"\n    },\n    \"missing_reason\": null,\n    \"record_version\": 1,\n    \"data_status\": \"partial\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get consent",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/consents/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "consents",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get consent. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consents/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consents",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get consent. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"consent_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"status\": \"active\",\n    \"purposes\": [\n      \"credit_assessment\",\n      \"continuous_monitoring\"\n    ],\n    \"captured_at\": \"2026-11-06T12:00:00Z\",\n    \"expires_at\": null,\n    \"revoked_at\": null,\n    \"record_version\": 1\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Revoke consent",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "revokeConsent-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/consents/{{record_id}}/revoke",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "consents",
            "{{record_id}}",
            "revoke"
          ],
          "query": []
        },
        "description": "Record withdrawal of authorization and stop future collection covered by that consent. Revocation does not edit historical assessments or serve as a data-deletion command. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"reason\": \"Borrower withdrew authorization.\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "revokeConsent-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/consents/{{record_id}}/revoke",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "consents",
                "{{record_id}}",
                "revoke"
              ],
              "query": []
            },
            "description": "Record withdrawal of authorization and stop future collection covered by that consent. Revocation does not edit historical assessments or serve as a data-deletion command. All IDs and cursors must belong to the authorized workspace and environment. Required scope: connections:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Borrower withdrew authorization.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"consent_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"status\": \"revoked\",\n    \"purposes\": [\n      \"credit_assessment\",\n      \"continuous_monitoring\"\n    ],\n    \"captured_at\": \"2026-11-06T12:00:00Z\",\n    \"expires_at\": null,\n    \"revoked_at\": \"2026-11-06T12:00:00Z\",\n    \"record_version\": 1\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Upload document",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "uploadDocument-{{command_reference}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/documents",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "documents"
          ],
          "query": []
        },
        "description": "Upload borrower evidence or documents supporting a lending product or risk policy. Upload creates a new record; it cannot overwrite an existing document. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:write.",
        "body": {
          "mode": "formdata",
          "formdata": [
            {
              "key": "file",
              "type": "file",
              "src": ""
            },
            {
              "key": "context",
              "type": "text",
              "value": "borrower"
            },
            {
              "key": "borrower_id",
              "type": "text",
              "value": "bor_synthetic"
            },
            {
              "key": "document_type",
              "type": "text",
              "value": "financial_statement"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "uploadDocument-{{command_reference}}"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/documents",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "documents"
              ],
              "query": []
            },
            "description": "Upload borrower evidence or documents supporting a lending product or risk policy. Upload creates a new record; it cannot overwrite an existing document. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:write.",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "file",
                  "type": "file",
                  "src": ""
                },
                {
                  "key": "context",
                  "type": "text",
                  "value": "borrower"
                },
                {
                  "key": "borrower_id",
                  "type": "text",
                  "value": "bor_synthetic"
                },
                {
                  "key": "document_type",
                  "type": "text",
                  "value": "financial_statement"
                }
              ]
            }
          },
          "status": "Accepted",
          "code": 202,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"doc_synthetic\",\n    \"context\": \"borrower\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"file_name\": \"financial-statement.pdf\",\n    \"mime_type\": \"application/pdf\",\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"size_bytes\": 12500,\n    \"status\": \"processing\",\n    \"restriction_reason\": null,\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"document_type\": \"financial_statement\",\n    \"origination_id\": null,\n    \"requirement_id\": null,\n    \"origin\": \"institution_upload\",\n    \"record_version\": 1,\n    \"failure\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get document",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/documents/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "documents",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get document. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/documents/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "documents",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get document. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"doc_synthetic\",\n    \"context\": \"borrower\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"file_name\": \"financial-statement.pdf\",\n    \"mime_type\": \"application/pdf\",\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"size_bytes\": 12500,\n    \"status\": \"available\",\n    \"restriction_reason\": null,\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"document_type\": \"financial_statement\",\n    \"origination_id\": null,\n    \"requirement_id\": null,\n    \"origin\": \"institution_upload\",\n    \"record_version\": 1,\n    \"failure\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Download document",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "downloadDocument-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/documents/{{record_id}}/download-links",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "documents",
            "{{record_id}}",
            "download-links"
          ],
          "query": []
        },
        "description": "Issue a short-lived download URL for an authorized available file. Recheck source entitlement and borrower access; possession of a document ID alone grants nothing. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"purpose\": \"Institution underwriting review\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "downloadDocument-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/documents/{{record_id}}/download-links",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "documents",
                "{{record_id}}",
                "download-links"
              ],
              "query": []
            },
            "description": "Issue a short-lived download URL for an authorized available file. Recheck source entitlement and borrower access; possession of a document ID alone grants nothing. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"purpose\": \"Institution underwriting review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"url\": \"https://downloads.example.com/synthetic\",\n    \"expires_at\": \"2026-11-06T12:05:00Z\",\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"mime_type\": \"application/pdf\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create lending product version",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createLendingProductVersion-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/lending-product-versions",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "lending-product-versions"
          ],
          "query": []
        },
        "description": "Store an immutable version of a lending product, including eligibility, pricing and repayment terms. This is your lending catalog, not merchant inventory. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"external_id\": \"working-capital\",\n  \"version\": \"1\",\n  \"name\": \"Working capital loan\",\n  \"borrower_type\": \"business\",\n  \"market\": \"CA\",\n  \"currency\": \"CAD\",\n  \"product_type\": \"term_loan\",\n  \"minimum_amount\": {\n    \"amount\": \"10000.00\",\n    \"currency\": \"CAD\"\n  },\n  \"maximum_amount\": {\n    \"amount\": \"100000.00\",\n    \"currency\": \"CAD\"\n  },\n  \"minimum_term_months\": 6,\n  \"maximum_term_months\": 24,\n  \"repayment_frequency\": \"monthly\",\n  \"pricing_schema_id\": \"pricing_synthetic\",\n  \"pricing\": {\n    \"rate_type\": \"fixed\",\n    \"annual_interest_rate\": \"0.12\",\n    \"amortization_months\": 12,\n    \"fees\": []\n  },\n  \"terms_document_ids\": []\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createLendingProductVersion-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/lending-product-versions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "lending-product-versions"
              ],
              "query": []
            },
            "description": "Store an immutable version of a lending product, including eligibility, pricing and repayment terms. This is your lending catalog, not merchant inventory. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_id\": \"working-capital\",\n  \"version\": \"1\",\n  \"name\": \"Working capital loan\",\n  \"borrower_type\": \"business\",\n  \"market\": \"CA\",\n  \"currency\": \"CAD\",\n  \"product_type\": \"term_loan\",\n  \"minimum_amount\": {\n    \"amount\": \"10000.00\",\n    \"currency\": \"CAD\"\n  },\n  \"maximum_amount\": {\n    \"amount\": \"100000.00\",\n    \"currency\": \"CAD\"\n  },\n  \"minimum_term_months\": 6,\n  \"maximum_term_months\": 24,\n  \"repayment_frequency\": \"monthly\",\n  \"pricing_schema_id\": \"pricing_synthetic\",\n  \"pricing\": {\n    \"rate_type\": \"fixed\",\n    \"annual_interest_rate\": \"0.12\",\n    \"amortization_months\": 12,\n    \"fees\": []\n  },\n  \"terms_document_ids\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 201,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"lpv_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"definition\": {\n      \"external_id\": \"working-capital\",\n      \"version\": \"1\",\n      \"name\": \"Working capital loan\",\n      \"borrower_type\": \"business\",\n      \"market\": \"CA\",\n      \"currency\": \"CAD\",\n      \"product_type\": \"term_loan\",\n      \"minimum_amount\": {\n        \"amount\": \"10000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"maximum_amount\": {\n        \"amount\": \"100000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"minimum_term_months\": 6,\n      \"maximum_term_months\": 24,\n      \"repayment_frequency\": \"monthly\",\n      \"pricing_schema_id\": \"pricing_synthetic\",\n      \"pricing\": {\n        \"rate_type\": \"fixed\",\n        \"annual_interest_rate\": \"0.12\",\n        \"amortization_months\": 12,\n        \"fees\": []\n      },\n      \"terms_document_ids\": []\n    },\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List lending product versions",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/lending-product-versions",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "lending-product-versions"
          ],
          "query": []
        },
        "description": "List lending product version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/lending-product-versions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "lending-product-versions"
              ],
              "query": []
            },
            "description": "List lending product version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"lpv_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"definition\": {\n        \"external_id\": \"working-capital\",\n        \"version\": \"1\",\n        \"name\": \"Working capital loan\",\n        \"borrower_type\": \"business\",\n        \"market\": \"CA\",\n        \"currency\": \"CAD\",\n        \"product_type\": \"term_loan\",\n        \"minimum_amount\": {\n          \"amount\": \"10000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"maximum_amount\": {\n          \"amount\": \"100000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"minimum_term_months\": 6,\n        \"maximum_term_months\": 24,\n        \"repayment_frequency\": \"monthly\",\n        \"pricing_schema_id\": \"pricing_synthetic\",\n        \"pricing\": {\n          \"rate_type\": \"fixed\",\n          \"annual_interest_rate\": \"0.12\",\n          \"amortization_months\": 12,\n          \"fees\": []\n        },\n        \"terms_document_ids\": []\n      },\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get lending product version",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/lending-product-versions/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "lending-product-versions",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get lending product version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/lending-product-versions/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "lending-product-versions",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get lending product version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"lpv_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"definition\": {\n      \"external_id\": \"working-capital\",\n      \"version\": \"1\",\n      \"name\": \"Working capital loan\",\n      \"borrower_type\": \"business\",\n      \"market\": \"CA\",\n      \"currency\": \"CAD\",\n      \"product_type\": \"term_loan\",\n      \"minimum_amount\": {\n        \"amount\": \"10000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"maximum_amount\": {\n        \"amount\": \"100000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"minimum_term_months\": 6,\n      \"maximum_term_months\": 24,\n      \"repayment_frequency\": \"monthly\",\n      \"pricing_schema_id\": \"pricing_synthetic\",\n      \"pricing\": {\n        \"rate_type\": \"fixed\",\n        \"annual_interest_rate\": \"0.12\",\n        \"amortization_months\": 12,\n        \"fees\": []\n      },\n      \"terms_document_ids\": []\n    },\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create risk policy version",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createRiskPolicyVersion-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/risk-policy-versions",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "risk-policy-versions"
          ],
          "query": []
        },
        "description": "Store an immutable policy version. AMLOK validates typed rules and units; attached policy documents provide context and do not become executable rules automatically. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"external_id\": \"working-capital-policy\",\n  \"version\": \"1\",\n  \"name\": \"Illustrative policy, not a recommended threshold\",\n  \"borrower_type\": \"business\",\n  \"market\": \"CA\",\n  \"rules\": [\n    {\n      \"id\": \"dscr-minimum\",\n      \"dimension_key\": \"dscr\",\n      \"operator\": \"gte\",\n      \"threshold\": \"1.25\",\n      \"unit\": \"ratio\",\n      \"on_missing\": \"review\",\n      \"on_fail\": \"review\",\n      \"calculation_version\": \"amlok-dscr-1\"\n    }\n  ],\n  \"policy_document_ids\": []\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createRiskPolicyVersion-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/risk-policy-versions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "risk-policy-versions"
              ],
              "query": []
            },
            "description": "Store an immutable policy version. AMLOK validates typed rules and units; attached policy documents provide context and do not become executable rules automatically. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_id\": \"working-capital-policy\",\n  \"version\": \"1\",\n  \"name\": \"Illustrative policy, not a recommended threshold\",\n  \"borrower_type\": \"business\",\n  \"market\": \"CA\",\n  \"rules\": [\n    {\n      \"id\": \"dscr-minimum\",\n      \"dimension_key\": \"dscr\",\n      \"operator\": \"gte\",\n      \"threshold\": \"1.25\",\n      \"unit\": \"ratio\",\n      \"on_missing\": \"review\",\n      \"on_fail\": \"review\",\n      \"calculation_version\": \"amlok-dscr-1\"\n    }\n  ],\n  \"policy_document_ids\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 201,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"rpv_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"definition\": {\n      \"external_id\": \"working-capital-policy\",\n      \"version\": \"1\",\n      \"name\": \"Illustrative policy, not a recommended threshold\",\n      \"borrower_type\": \"business\",\n      \"market\": \"CA\",\n      \"rules\": [\n        {\n          \"id\": \"dscr-minimum\",\n          \"dimension_key\": \"dscr\",\n          \"operator\": \"gte\",\n          \"threshold\": \"1.25\",\n          \"unit\": \"ratio\",\n          \"on_missing\": \"review\",\n          \"on_fail\": \"review\",\n          \"calculation_version\": \"amlok-dscr-1\"\n        }\n      ],\n      \"policy_document_ids\": []\n    },\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List risk policy versions",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/risk-policy-versions",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "risk-policy-versions"
          ],
          "query": []
        },
        "description": "List risk policy version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/risk-policy-versions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "risk-policy-versions"
              ],
              "query": []
            },
            "description": "List risk policy version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"rpv_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"definition\": {\n        \"external_id\": \"working-capital-policy\",\n        \"version\": \"1\",\n        \"name\": \"Illustrative policy, not a recommended threshold\",\n        \"borrower_type\": \"business\",\n        \"market\": \"CA\",\n        \"rules\": [\n          {\n            \"id\": \"dscr-minimum\",\n            \"dimension_key\": \"dscr\",\n            \"operator\": \"gte\",\n            \"threshold\": \"1.25\",\n            \"unit\": \"ratio\",\n            \"on_missing\": \"review\",\n            \"on_fail\": \"review\",\n            \"calculation_version\": \"amlok-dscr-1\"\n          }\n        ],\n        \"policy_document_ids\": []\n      },\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get risk policy version",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/risk-policy-versions/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "risk-policy-versions",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get risk policy version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/risk-policy-versions/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "risk-policy-versions",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get risk policy version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"rpv_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"definition\": {\n      \"external_id\": \"working-capital-policy\",\n      \"version\": \"1\",\n      \"name\": \"Illustrative policy, not a recommended threshold\",\n      \"borrower_type\": \"business\",\n      \"market\": \"CA\",\n      \"rules\": [\n        {\n          \"id\": \"dscr-minimum\",\n          \"dimension_key\": \"dscr\",\n          \"operator\": \"gte\",\n          \"threshold\": \"1.25\",\n          \"unit\": \"ratio\",\n          \"on_missing\": \"review\",\n          \"on_fail\": \"review\",\n          \"calculation_version\": \"amlok-dscr-1\"\n        }\n      ],\n      \"policy_document_ids\": []\n    },\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create origination",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createOrigination-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/originations",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "originations"
          ],
          "query": []
        },
        "description": "Submit the borrower application with exact product and policy versions, connections and documents. AMLOK collects and normalizes data, runs included checks and publishes the risk package. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"borrower_id\": \"bor_synthetic\",\n  \"application\": {\n    \"institution_reference\": \"LOS-2026-0042\",\n    \"requested_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"requested_term_months\": 12,\n    \"purpose\": \"Working capital\",\n    \"application_schema_id\": \"app_schema_synthetic\",\n    \"declared_data\": {\n      \"annual_revenue\": \"600000.00\"\n    }\n  },\n  \"lending_product_version_id\": \"lpv_synthetic\",\n  \"risk_policy_version_id\": \"rpv_synthetic\",\n  \"connection_ids\": [\n    \"con_synthetic\"\n  ],\n  \"document_ids\": []\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createOrigination-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/originations",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "originations"
              ],
              "query": []
            },
            "description": "Submit the borrower application with exact product and policy versions, connections and documents. AMLOK collects and normalizes data, runs included checks and publishes the risk package. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"borrower_id\": \"bor_synthetic\",\n  \"application\": {\n    \"institution_reference\": \"LOS-2026-0042\",\n    \"requested_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"requested_term_months\": 12,\n    \"purpose\": \"Working capital\",\n    \"application_schema_id\": \"app_schema_synthetic\",\n    \"declared_data\": {\n      \"annual_revenue\": \"600000.00\"\n    }\n  },\n  \"lending_product_version_id\": \"lpv_synthetic\",\n  \"risk_policy_version_id\": \"rpv_synthetic\",\n  \"connection_ids\": [\n    \"con_synthetic\"\n  ],\n  \"document_ids\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Accepted",
          "code": 202,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"orgn_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"institution_reference\": \"LOS-2026-0042\",\n    \"status\": \"accepted\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"updated_at\": \"2026-11-06T12:00:00Z\",\n    \"requirements\": [],\n    \"risk_package_id\": null,\n    \"failure\": null,\n    \"record_version\": 1,\n    \"submitted_request\": {\n      \"borrower_id\": \"bor_synthetic\",\n      \"application\": {\n        \"institution_reference\": \"LOS-2026-0042\",\n        \"requested_amount\": {\n          \"amount\": \"50000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"requested_term_months\": 12,\n        \"purpose\": \"Working capital\",\n        \"application_schema_id\": \"app_schema_synthetic\",\n        \"declared_data\": {\n          \"annual_revenue\": \"600000.00\"\n        }\n      },\n      \"lending_product_version_id\": \"lpv_synthetic\",\n      \"risk_policy_version_id\": \"rpv_synthetic\",\n      \"connection_ids\": [\n        \"con_synthetic\"\n      ],\n      \"document_ids\": []\n    },\n    \"document_ids\": [],\n    \"connection_ids\": [\n      \"con_synthetic\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List originations",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/originations",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "originations"
          ],
          "query": []
        },
        "description": "List origination. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/originations",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "originations"
              ],
              "query": []
            },
            "description": "List origination. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"orgn_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"institution_reference\": \"LOS-2026-0042\",\n      \"status\": \"completed\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"updated_at\": \"2026-11-06T12:00:00Z\",\n      \"requirements\": [],\n      \"risk_package_id\": \"rp_synthetic\",\n      \"failure\": null,\n      \"record_version\": 1,\n      \"submitted_request\": {\n        \"borrower_id\": \"bor_synthetic\",\n        \"application\": {\n          \"institution_reference\": \"LOS-2026-0042\",\n          \"requested_amount\": {\n            \"amount\": \"50000.00\",\n            \"currency\": \"CAD\"\n          },\n          \"requested_term_months\": 12,\n          \"purpose\": \"Working capital\",\n          \"application_schema_id\": \"app_schema_synthetic\",\n          \"declared_data\": {\n            \"annual_revenue\": \"600000.00\"\n          }\n        },\n        \"lending_product_version_id\": \"lpv_synthetic\",\n        \"risk_policy_version_id\": \"rpv_synthetic\",\n        \"connection_ids\": [\n          \"con_synthetic\"\n        ],\n        \"document_ids\": []\n      },\n      \"document_ids\": [],\n      \"connection_ids\": [\n        \"con_synthetic\"\n      ]\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get origination",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/originations/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "originations",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Retrieve an underwriting request, its immutable submitted application, product and policy versions, document associations, requirements, status and risk-package reference, including before processing completes. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/originations/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "originations",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Retrieve an underwriting request, its immutable submitted application, product and policy versions, document associations, requirements, status and risk-package reference, including before processing completes. All IDs and cursors must belong to the authorized workspace and environment. Required scope: insights:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"orgn_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"institution_reference\": \"LOS-2026-0042\",\n    \"status\": \"completed\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"updated_at\": \"2026-11-06T12:00:00Z\",\n    \"requirements\": [],\n    \"risk_package_id\": \"rp_synthetic\",\n    \"failure\": null,\n    \"record_version\": 1,\n    \"submitted_request\": {\n      \"borrower_id\": \"bor_synthetic\",\n      \"application\": {\n        \"institution_reference\": \"LOS-2026-0042\",\n        \"requested_amount\": {\n          \"amount\": \"50000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"requested_term_months\": 12,\n        \"purpose\": \"Working capital\",\n        \"application_schema_id\": \"app_schema_synthetic\",\n        \"declared_data\": {\n          \"annual_revenue\": \"600000.00\"\n        }\n      },\n      \"lending_product_version_id\": \"lpv_synthetic\",\n      \"risk_policy_version_id\": \"rpv_synthetic\",\n      \"connection_ids\": [\n        \"con_synthetic\"\n      ],\n      \"document_ids\": []\n    },\n    \"document_ids\": [],\n    \"connection_ids\": [\n      \"con_synthetic\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get risk package",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/risk-packages/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "risk-packages",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Retrieve an immutable Insights or Signal result with financial dimensions, policy evaluations, limitations and the frozen supporting evidence set. Recommendations do not replace the institution decision. All IDs and cursors must belong to the authorized workspace and environment. Required scope: results:read. Use view=summary for the section index, or view=section with section/cursor/limit for bounded detail. Invalid parameter combinations return 400 validation_error. Full or single-item responses above max_response_bytes return 413 response_too_large with an export source; no fields are silently omitted."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/risk-packages/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "risk-packages",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Retrieve an immutable Insights or Signal result with financial dimensions, policy evaluations, limitations and the frozen supporting evidence set. Recommendations do not replace the institution decision. All IDs and cursors must belong to the authorized workspace and environment. Required scope: results:read. Use view=summary for the section index, or view=section with section/cursor/limit for bounded detail. Invalid parameter combinations return 400 validation_error. Full or single-item responses above max_response_bytes return 413 response_too_large with an export source; no fields are silently omitted."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"rp_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"origination_id\": \"orgn_synthetic\",\n    \"monitoring_run_id\": null,\n    \"product\": \"insights\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"as_of\": \"2026-11-06T12:00:00Z\",\n    \"previous_package_id\": null,\n    \"application\": {\n      \"institution_reference\": \"LOS-2026-0042\",\n      \"requested_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"requested_term_months\": 12,\n      \"purpose\": \"Working capital\",\n      \"application_schema_id\": \"app_schema_synthetic\",\n      \"declared_data\": {\n        \"annual_revenue\": \"600000.00\"\n      }\n    },\n    \"lending_product\": {\n      \"id\": \"lpv_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"definition\": {\n        \"external_id\": \"working-capital\",\n        \"version\": \"1\",\n        \"name\": \"Working capital loan\",\n        \"borrower_type\": \"business\",\n        \"market\": \"CA\",\n        \"currency\": \"CAD\",\n        \"product_type\": \"term_loan\",\n        \"minimum_amount\": {\n          \"amount\": \"10000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"maximum_amount\": {\n          \"amount\": \"100000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"minimum_term_months\": 6,\n        \"maximum_term_months\": 24,\n        \"repayment_frequency\": \"monthly\",\n        \"pricing_schema_id\": \"pricing_synthetic\",\n        \"pricing\": {\n          \"rate_type\": \"fixed\",\n          \"annual_interest_rate\": \"0.12\",\n          \"amortization_months\": 12,\n          \"fees\": []\n        },\n        \"terms_document_ids\": []\n      },\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"risk_policy\": {\n      \"id\": \"rpv_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"definition\": {\n        \"external_id\": \"working-capital-policy\",\n        \"version\": \"1\",\n        \"name\": \"Illustrative policy, not a recommended threshold\",\n        \"borrower_type\": \"business\",\n        \"market\": \"CA\",\n        \"rules\": [\n          {\n            \"id\": \"dscr-minimum\",\n            \"dimension_key\": \"dscr\",\n            \"operator\": \"gte\",\n            \"threshold\": \"1.25\",\n            \"unit\": \"ratio\",\n            \"on_missing\": \"review\",\n            \"on_fail\": \"review\",\n            \"calculation_version\": \"amlok-dscr-1\"\n          }\n        ],\n        \"policy_document_ids\": []\n      },\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\"\n    },\n    \"assessment\": {\n      \"recommendation\": \"review_required\",\n      \"is_institution_decision\": false,\n      \"summary\": \"Repayment capacity requires review because the debt schedule is incomplete.\",\n      \"reasons\": [\n        \"Required repayment evidence is missing.\"\n      ]\n    },\n    \"dimensions\": [\n      {\n        \"key\": \"identity\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"business_age_months\",\n            \"label\": \"Business age\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"months\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-business_age_months-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"verified_account_owner_ratio\",\n            \"label\": \"Verified account ownership share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-verified_account_owner_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"ownership_and_control\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"ownership_disclosed_ratio\",\n            \"label\": \"Disclosed ownership share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-ownership_disclosed_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"related_party_balance_share\",\n            \"label\": \"Related-party receivables share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-related_party_balance_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"supported_guarantee_coverage\",\n            \"label\": \"Supported guarantee coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-supported_guarantee_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"cashflow\",\n        \"status\": \"partial\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"total_inflows\",\n            \"label\": \"Posted inflows\",\n            \"status\": \"available\",\n            \"value\": \"1250.00\",\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2026-10-31T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-total_inflows-1\",\n            \"missing_reason\": null,\n            \"evidence_ids\": [\n              \"ev_bank_synthetic\"\n            ],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": null,\n            \"inputs\": [\n              {\n                \"name\": \"posted_inflow\",\n                \"value\": \"1250.00\",\n                \"unit\": \"currency\",\n                \"currency\": \"CAD\",\n                \"basis\": \"observed\",\n                \"evidence\": [\n                  {\n                    \"evidence_id\": \"ev_bank_synthetic\",\n                    \"field_path\": \"/amount/amount\",\n                    \"document_id\": null,\n                    \"page\": null,\n                    \"quote\": null\n                  }\n                ]\n              }\n            ],\n            \"coverage\": {\n              \"observed_days\": 1,\n              \"expected_days\": 1,\n              \"scope_note\": \"Complete for the explicitly illustrated source scope and period only.\"\n            },\n            \"series\": [\n              {\n                \"window\": {\n                  \"start\": \"2026-10-31T00:00:00Z\",\n                  \"end\": \"2026-11-01T00:00:00Z\"\n                },\n                \"status\": \"available\",\n                \"value\": \"1250.00\",\n                \"reason\": null,\n                \"evidence_ids\": [\n                  \"ev_bank_synthetic\"\n                ]\n              }\n            ]\n          },\n          {\n            \"key\": \"total_outflows\",\n            \"label\": \"Posted outflows\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-total_outflows-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_cash_flow\",\n            \"label\": \"Net cash flow\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_cash_flow-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"operating_cash_inflows\",\n            \"label\": \"Operating receipts\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-operating_cash_inflows-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"operating_cash_outflows\",\n            \"label\": \"Operating cash payments\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-operating_cash_outflows-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"operating_net_cash_flow\",\n            \"label\": \"Net operating cash flow\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-operating_net_cash_flow-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"internal_transfer_inflows\",\n            \"label\": \"Internal transfer inflows\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-internal_transfer_inflows-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"financing_inflows\",\n            \"label\": \"Financing inflows\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-financing_inflows-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"positive_cashflow_month_share\",\n            \"label\": \"Positive cash-flow months\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-positive_cashflow_month_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"cashflow_volatility\",\n            \"label\": \"Operating cash-flow volatility\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-cashflow_volatility-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"cashflow_change_90d\",\n            \"label\": \"Operating cash-flow change\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-cashflow_change_90d-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": [\n          \"ev_bank_synthetic\"\n        ]\n      },\n      {\n        \"key\": \"liquidity\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"unrestricted_cash\",\n            \"label\": \"Unrestricted cash\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-unrestricted_cash-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"average_daily_balance\",\n            \"label\": \"Average daily cash balance\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-average_daily_balance-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"minimum_daily_balance\",\n            \"label\": \"Minimum daily cash balance\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-minimum_daily_balance-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"negative_balance_days\",\n            \"label\": \"Days below zero\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-negative_balance_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"cash_buffer_days\",\n            \"label\": \"Cash buffer\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-cash_buffer_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"current_ratio\",\n            \"label\": \"Current ratio\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-current_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"quick_ratio\",\n            \"label\": \"Quick ratio\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-quick_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"cash_ratio\",\n            \"label\": \"Cash ratio\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-cash_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"revenue_quality\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"verified_revenue\",\n            \"label\": \"Verified revenue\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-verified_revenue-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"recurring_revenue_share\",\n            \"label\": \"Recurring revenue share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-recurring_revenue_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"revenue_growth_yoy\",\n            \"label\": \"Revenue growth year over year\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-revenue_growth_yoy-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"revenue_growth_90d\",\n            \"label\": \"Revenue growth over 90 days\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-revenue_growth_90d-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"revenue_volatility\",\n            \"label\": \"Monthly revenue volatility\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-revenue_volatility-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"refund_amount_share\",\n            \"label\": \"Refund amount share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-refund_amount_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"chargeback_amount_share\",\n            \"label\": \"Chargeback amount share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-chargeback_amount_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"revenue_cash_realization\",\n            \"label\": \"Revenue cash realization\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-revenue_cash_realization-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"unverified_receipts_share\",\n            \"label\": \"Unverified receipts share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-unverified_receipts_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"nonrecurring_revenue_share\",\n            \"label\": \"Nonrecurring revenue share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-nonrecurring_revenue_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"profitability\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"gross_profit\",\n            \"label\": \"Gross profit\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-gross_profit-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"gross_margin\",\n            \"label\": \"Gross margin\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-gross_margin-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"ebitda\",\n            \"label\": \"EBITDA\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-ebitda-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"ebitda_margin\",\n            \"label\": \"EBITDA margin\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-ebitda_margin-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"operating_profit\",\n            \"label\": \"Operating profit\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-operating_profit-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"operating_margin\",\n            \"label\": \"Operating margin\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-operating_margin-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_profit\",\n            \"label\": \"Net profit\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_profit-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_margin\",\n            \"label\": \"Net margin\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_margin-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"free_cash_flow\",\n            \"label\": \"Free cash flow\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-free_cash_flow-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"return_on_assets\",\n            \"label\": \"Return on assets\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-return_on_assets-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"working_capital\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"net_working_capital\",\n            \"label\": \"Net working capital\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_working_capital-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"receivables_days\",\n            \"label\": \"Receivable days\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-receivables_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"payables_days\",\n            \"label\": \"Payable days\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-payables_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"inventory_days\",\n            \"label\": \"Inventory days\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-inventory_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"cash_conversion_cycle\",\n            \"label\": \"Cash conversion cycle\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-cash_conversion_cycle-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"ar_overdue_share\",\n            \"label\": \"Overdue receivables share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-ar_overdue_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"ar_90_plus_share\",\n            \"label\": \"Receivables over 90 days past due\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-ar_90_plus_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"ap_overdue_share\",\n            \"label\": \"Overdue payables share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-ap_overdue_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"inventory_turnover\",\n            \"label\": \"Inventory turnover\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-inventory_turnover-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"leverage\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"total_debt\",\n            \"label\": \"Total interest-bearing debt\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-total_debt-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_debt\",\n            \"label\": \"Net debt\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_debt-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"debt_to_assets\",\n            \"label\": \"Debt to assets\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-debt_to_assets-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"debt_to_equity\",\n            \"label\": \"Debt to equity\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-debt_to_equity-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_debt_to_ebitda\",\n            \"label\": \"Net debt to EBITDA\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_debt_to_ebitda-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"credit_utilization\",\n            \"label\": \"Revolving credit utilization\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-credit_utilization-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"short_term_debt_share\",\n            \"label\": \"Debt due within one year\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-short_term_debt_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"debt_maturing_90d\",\n            \"label\": \"Debt maturing within 90 days\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-debt_maturing_90d-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"repayment_capacity\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"dscr\",\n            \"label\": \"Cash-flow debt-service coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-dscr-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"fixed_charge_coverage\",\n            \"label\": \"Fixed-charge coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-fixed_charge_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"interest_coverage\",\n            \"label\": \"Interest coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-interest_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"existing_debt_service\",\n            \"label\": \"Existing debt service\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-existing_debt_service-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"proposed_debt_service\",\n            \"label\": \"Proposed debt service\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-proposed_debt_service-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"total_debt_service\",\n            \"label\": \"Total debt service\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-total_debt_service-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"residual_cash_after_debt\",\n            \"label\": \"Cash after debt service\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-residual_cash_after_debt-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"debt_service_headroom\",\n            \"label\": \"Debt-service headroom\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-debt_service_headroom-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"debt_payment_to_receipts\",\n            \"label\": \"Debt payments to operating receipts\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-debt_payment_to_receipts-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"concentration\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"top_customer_share\",\n            \"label\": \"Largest customer share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-top_customer_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"top_five_customer_share\",\n            \"label\": \"Top five customer share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-top_five_customer_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"top_supplier_share\",\n            \"label\": \"Largest supplier share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-top_supplier_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"top_channel_share\",\n            \"label\": \"Largest sales channel share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-top_channel_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"customer_hhi\",\n            \"label\": \"Customer concentration index\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-customer_hhi-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"income_source_hhi\",\n            \"label\": \"Income-source concentration index\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-income_source_hhi-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"collateral\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"collateral_ltv\",\n            \"label\": \"Loan to collateral value\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-collateral_ltv-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"combined_ltv\",\n            \"label\": \"Combined loan to value\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-combined_ltv-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"collateral_coverage\",\n            \"label\": \"Collateral coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-collateral_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"eligible_receivables\",\n            \"label\": \"Eligible borrowing-base receivables\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-eligible_receivables-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"collateral_haircut_ratio\",\n            \"label\": \"Collateral haircut\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-collateral_haircut_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"fraud_and_consistency\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"reconciliation_break_share\",\n            \"label\": \"Unreconciled value share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-reconciliation_break_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"duplicate_transaction_share\",\n            \"label\": \"Duplicate transaction share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-duplicate_transaction_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"document_contradiction_count\",\n            \"label\": \"Document contradictions\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-document_contradiction_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"identity_mismatch_count\",\n            \"label\": \"Unresolved identity mismatches\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-identity_mismatch_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"declared_income_gap_ratio\",\n            \"label\": \"Declared-to-verified income gap\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-declared_income_gap_ratio-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"income_and_affordability\",\n        \"status\": \"not_applicable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"verified_gross_monthly_income\",\n            \"label\": \"Verified gross monthly income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-verified_gross_monthly_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"verified_net_monthly_income\",\n            \"label\": \"Verified net monthly income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-verified_net_monthly_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"debt_to_income\",\n            \"label\": \"Debt to income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-debt_to_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"housing_to_income\",\n            \"label\": \"Housing cost to income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-housing_to_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"essential_monthly_spend\",\n            \"label\": \"Essential monthly expenditure\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-essential_monthly_spend-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"residual_monthly_income\",\n            \"label\": \"Residual monthly income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-residual_monthly_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"payment_to_income\",\n            \"label\": \"Proposed payment to income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-payment_to_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"liquid_reserve_months\",\n            \"label\": \"Liquid reserve months\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"months\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-liquid_reserve_months-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"income_stability\",\n        \"status\": \"not_applicable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"income_source_count\",\n            \"label\": \"Verified income sources\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-income_source_count-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"income_volatility\",\n            \"label\": \"Monthly income volatility\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-income_volatility-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"income_growth_yoy\",\n            \"label\": \"Income growth year over year\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-income_growth_yoy-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"days_since_last_income\",\n            \"label\": \"Days since last income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-days_since_last_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"income_interruption_days\",\n            \"label\": \"Income interruption\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-income_interruption_days-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"income_continuity_share\",\n            \"label\": \"Income continuity\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-income_continuity_share-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"payment_behavior\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"nsf_event_count\",\n            \"label\": \"Insufficient-funds events\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-nsf_event_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"overdraft_days\",\n            \"label\": \"Overdraft days\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-overdraft_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"returned_payment_amount\",\n            \"label\": \"Returned payment amount\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-returned_payment_amount-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"delinquent_obligation_count\",\n            \"label\": \"Delinquent obligations\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-delinquent_obligation_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"maximum_days_past_due\",\n            \"label\": \"Maximum days past due\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-maximum_days_past_due-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"on_time_payment_share\",\n            \"label\": \"On-time payment share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-on_time_payment_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"credit_history\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"open_credit_obligation_count\",\n            \"label\": \"Open credit obligations\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-open_credit_obligation_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"bureau_utilization\",\n            \"label\": \"Reported revolving utilization\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-bureau_utilization-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"recent_credit_inquiry_count\",\n            \"label\": \"Recent credit inquiries\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-recent_credit_inquiry_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"severe_delinquency_count\",\n            \"label\": \"Severe delinquency events\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-severe_delinquency_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"public_record_event_count\",\n            \"label\": \"Relevant public-record events\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"count\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-public_record_event_count-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"commerce_performance\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"gross_sales\",\n            \"label\": \"Gross sales\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-gross_sales-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_sales\",\n            \"label\": \"Net sales\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_sales-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"average_order_value\",\n            \"label\": \"Average order value\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-average_order_value-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"repeat_customer_share\",\n            \"label\": \"Repeat customer share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-repeat_customer_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"monthly_recurring_revenue\",\n            \"label\": \"Monthly recurring revenue\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-monthly_recurring_revenue-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"gross_revenue_retention\",\n            \"label\": \"Gross revenue retention\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-gross_revenue_retention-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"net_revenue_retention\",\n            \"label\": \"Net revenue retention\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-net_revenue_retention-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"settlement_delay_days\",\n            \"label\": \"Settlement delay\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-settlement_delay_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"operating_resilience\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"payroll_burden_share\",\n            \"label\": \"Payroll burden\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-payroll_burden_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"payroll_growth_yoy\",\n            \"label\": \"Payroll growth year over year\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-payroll_growth_yoy-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"inventory_stockout_share\",\n            \"label\": \"Inventory stockout share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-inventory_stockout_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"fulfillment_on_time_share\",\n            \"label\": \"On-time fulfillment share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-fulfillment_on_time_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"supplier_payment_delay_days\",\n            \"label\": \"Supplier payment delay\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-supplier_payment_delay_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"tax_and_compliance\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"tax_liability\",\n            \"label\": \"Reported tax liability\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-tax_liability-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"tax_overdue_amount\",\n            \"label\": \"Overdue tax amount\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-tax_overdue_amount-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"tax_payment_coverage\",\n            \"label\": \"Tax payment coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-tax_payment_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"filing_coverage\",\n            \"label\": \"Filing evidence coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-filing_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"financial_reporting_quality\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"bank_accounting_match_share\",\n            \"label\": \"Bank-to-books match share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-bank_accounting_match_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"statement_balance_discrepancy\",\n            \"label\": \"Balance-sheet discrepancy\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-statement_balance_discrepancy-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"material_adjustment_share\",\n            \"label\": \"Material accounting adjustments\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-material_adjustment_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"books_closing_lag_days\",\n            \"label\": \"Books closing lag\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-books_closing_lag_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"data_quality\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"observed_account_coverage\",\n            \"label\": \"Declared-account coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-observed_account_coverage-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"covered_history_days\",\n            \"label\": \"Covered history\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"days\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-covered_history_days-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"stale_source_share\",\n            \"label\": \"Stale required sources\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-stale_source_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"unclassified_transaction_share\",\n            \"label\": \"Unclassified transactions\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-unclassified_transaction_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"reconciled_value_share\",\n            \"label\": \"Reconciled financial value\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-reconciled_value_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"forecasting_and_stress\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"projected_minimum_cash\",\n            \"label\": \"Projected minimum cash\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-projected_minimum_cash-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"stress_dscr\",\n            \"label\": \"Stressed debt-service coverage\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-stress_dscr-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"stress_residual_income\",\n            \"label\": \"Stressed residual income\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-stress_residual_income-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"liquidity_shortfall\",\n            \"label\": \"Projected liquidity shortfall\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-liquidity_shortfall-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"break_even_revenue_decline\",\n            \"label\": \"Break-even revenue decline\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-break_even_revenue_decline-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"relationship_risk\",\n        \"status\": \"unavailable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"related_party_receipts_share\",\n            \"label\": \"Related-party receipts share\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-related_party_receipts_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"circular_flow_amount\",\n            \"label\": \"Potential circular-flow amount\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-circular_flow_amount-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"connected_counterparty_share\",\n            \"label\": \"Connected-counterparty exposure\",\n            \"status\": \"unavailable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-connected_counterparty_share-1\",\n            \"missing_reason\": \"Required, comparable source inputs are not included in this synthetic example.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"missing_source\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      },\n      {\n        \"key\": \"monitoring_change\",\n        \"status\": \"not_applicable\",\n        \"summary\": \"See individual metric availability and reasons.\",\n        \"metrics\": [\n          {\n            \"key\": \"revenue_change_from_baseline\",\n            \"label\": \"Revenue change from baseline\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-revenue_change_from_baseline-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"liquidity_change_from_baseline\",\n            \"label\": \"Liquidity change from baseline\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"currency\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-liquidity_change_from_baseline-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": \"CAD\",\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"dscr_change_from_baseline\",\n            \"label\": \"DSCR change from baseline\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-dscr_change_from_baseline-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          },\n          {\n            \"key\": \"obligation_growth_from_baseline\",\n            \"label\": \"Debt change from baseline\",\n            \"status\": \"not_applicable\",\n            \"value\": null,\n            \"unit\": \"ratio\",\n            \"window\": {\n              \"start\": \"2025-11-01T00:00:00Z\",\n              \"end\": \"2026-11-01T00:00:00Z\"\n            },\n            \"calculation_version\": \"amlok-obligation_growth_from_baseline-1\",\n            \"missing_reason\": \"This metric does not apply to this borrower or an initial Insights assessment.\",\n            \"evidence_ids\": [],\n            \"analysis_basis\": \"historical\",\n            \"assumptions\": [],\n            \"definition_version\": \"2026-11-06.1\",\n            \"currency\": null,\n            \"as_of\": \"2026-11-06T12:00:00Z\",\n            \"basis\": \"derived\",\n            \"reason_code\": \"not_applicable\",\n            \"inputs\": [],\n            \"coverage\": {\n              \"observed_days\": 0,\n              \"expected_days\": 365,\n              \"scope_note\": \"Synthetic example; observed sources do not establish all external accounts.\"\n            },\n            \"series\": []\n          }\n        ],\n        \"evidence_ids\": []\n      }\n    ],\n    \"policy_results\": [\n      {\n        \"rule_id\": \"dscr-minimum\",\n        \"result\": \"unavailable\",\n        \"actual\": null,\n        \"threshold\": \"1.25\",\n        \"unit\": \"ratio\",\n        \"explanation\": \"The rule cannot be evaluated without a supported DSCR.\",\n        \"evidence_ids\": [\n          \"ev_bank_synthetic\"\n        ],\n        \"metric_key\": \"dscr\",\n        \"calculation_version\": \"amlok-dscr-1\",\n        \"metric_window\": {\n          \"start\": \"2025-11-01T00:00:00Z\",\n          \"end\": \"2026-11-01T00:00:00Z\"\n        }\n      }\n    ],\n    \"sources\": [\n      {\n        \"connection_id\": \"con_synthetic\",\n        \"integration_id\": \"bank_synthetic\",\n        \"source_as_of\": \"2026-11-01T00:00:00Z\",\n        \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n        \"window\": {\n          \"start\": \"2025-11-01T00:00:00Z\",\n          \"end\": \"2026-11-01T00:00:00Z\"\n        },\n        \"status\": \"partial\",\n        \"limitations\": [\n          \"Bank records alone do not establish a complete debt schedule.\"\n        ]\n      }\n    ],\n    \"limitations\": [\n      \"All values, IDs and hashes in this example are synthetic. The threshold is illustrative, not an industry recommendation.\",\n      \"The illustrated inflow is a one-day observed-source subtotal. It is not annual revenue. Authorized derived metrics can remain available while a licensed raw evidence record is restricted.\"\n    ],\n    \"evidence_set\": {\n      \"id\": \"es_synthetic\",\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n      \"count\": 2\n    },\n    \"versions\": {\n      \"schema\": \"1.0.0\",\n      \"normalization\": \"synthetic-v1\",\n      \"calculation\": \"synthetic-v1\",\n      \"model\": null\n    },\n    \"billing_usage_id\": \"usage_synthetic\",\n    \"document_ids\": [\n      \"doc_registry_synthetic\"\n    ],\n    \"record_version\": 1,\n    \"deal_snapshot_id\": null,\n    \"catalog_version\": \"2026-11-06.1\",\n    \"verification\": {\n      \"id\": \"verify_business_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"subject_id\": \"biz_synthetic\",\n      \"definition_version\": \"2026-11-06.1\",\n      \"as_of\": \"2026-11-06T12:00:00Z\",\n      \"status\": \"partial\",\n      \"outcome\": \"review_required\",\n      \"summary\": \"Synthetic business has a selected registry record. Required related-party checks and ownership resolution remain incomplete; an active registration is not a verified pass.\",\n      \"sources\": [\n        {\n          \"id\": \"src_verification_synthetic\",\n          \"kind\": \"business_verification\",\n          \"display_name\": \"Synthetic licensed registry source\",\n          \"jurisdictions\": [\n            \"CA-AB\"\n          ],\n          \"reference\": \"report_synthetic\",\n          \"reported_status\": \"not_verified\",\n          \"requested_at\": \"2026-11-06T12:00:00Z\",\n          \"completed_at\": \"2026-11-06T12:00:00Z\",\n          \"as_of\": \"2026-11-06T12:00:00Z\",\n          \"coverage\": {\n            \"status\": \"partial\",\n            \"requested_scopes\": [\n              \"business_registry\",\n              \"licence_registry\",\n              \"related_people\"\n            ],\n            \"completed_scopes\": [],\n            \"limitations\": [\n              \"This example does not establish complete coverage.\"\n            ]\n          },\n          \"document_ids\": [\n            \"doc_registry_synthetic\"\n          ],\n          \"warnings\": [\n            \"Required people not supplied.\"\n          ],\n          \"errors\": []\n        }\n      ],\n      \"ownership_resolution\": {\n        \"status\": \"partial\",\n        \"reason\": \"Corporate shareholder chain and remaining voting interests are unresolved.\",\n        \"unresolved_subject_ids\": [\n          \"owner_company_synthetic\"\n        ],\n        \"ownership_basis\": \"voting\",\n        \"known_share\": \"0.65\",\n        \"unknown_share\": \"0.35\"\n      },\n      \"documents\": [\n        {\n          \"document_id\": \"doc_registry_synthetic\",\n          \"kind\": \"registry_report\",\n          \"access\": \"available\",\n          \"reason\": null,\n          \"source_id\": \"src_verification_synthetic\"\n        }\n      ],\n      \"checks\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"check_registry_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": null,\n                  \"page\": null\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/original_provider_status\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/method\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/policy_version\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/expires_at\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/override\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"kind\": \"business_registration\",\n            \"state\": \"completed\",\n            \"outcome\": \"review_required\",\n            \"provider_status\": \"not_verified\",\n            \"original_provider_status\": null,\n            \"reason_codes\": [],\n            \"summary\": \"Registry found; required people have not been submitted.\",\n            \"method\": null,\n            \"required\": true,\n            \"policy_version\": null,\n            \"completed_at\": \"2026-11-06T12:00:00Z\",\n            \"expires_at\": null,\n            \"item_ids\": [\n              \"business_selected_synthetic\",\n              \"compare_people_synthetic\"\n            ],\n            \"override\": null\n          }\n        ]\n      },\n      \"businesses\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"business_selected_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 1\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/good_standing\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/website\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/email\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/phone\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/registered_capital\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/source_url\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"resolution\": \"selected\",\n            \"legal_name\": \"Synthetic Example Manufacturing Inc.\",\n            \"alternate_names\": [],\n            \"entity_type\": \"corporation\",\n            \"country\": \"CA\",\n            \"jurisdiction\": \"CA-AB\",\n            \"identifiers\": [\n              {\n                \"scheme\": \"corporation_number\",\n                \"value\": \"SYNTHETIC-CA-001\",\n                \"masked_value\": null,\n                \"country\": \"CA\",\n                \"jurisdiction\": null,\n                \"disclosure\": \"full\",\n                \"reason\": null\n              }\n            ],\n            \"incorporation_date\": \"2018-04-10\",\n            \"nature_of_business\": \"Synthetic manufacturing business\",\n            \"registry_status\": \"Active\",\n            \"good_standing\": null,\n            \"address_ids\": [\n              \"address_registered_synthetic\",\n              \"address_records_synthetic\"\n            ],\n            \"relationship_ids\": [],\n            \"industry_codes\": [],\n            \"website\": null,\n            \"email\": null,\n            \"phone\": null,\n            \"registered_capital\": null,\n            \"financial_highlights\": [],\n            \"match_score\": {\n              \"value\": 100,\n              \"scale_min\": 0,\n              \"scale_max\": 100,\n              \"direction\": \"higher_is_stronger_match\",\n              \"label\": \"Synthetic similarity only\",\n              \"method\": \"synthetic-method-1\"\n            },\n            \"source_url\": null\n          }\n        ]\n      },\n      \"persons\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"registrations\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"registration_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 4\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/registration_type\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/standing\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/registered_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/inactive_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/dissolved_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/registered_agent_relationship_id\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"authority\": \"Synthetic provincial registry\",\n            \"registration_number\": \"SYNTHETIC-CA-001\",\n            \"country\": \"CA\",\n            \"jurisdiction\": \"CA-AB\",\n            \"registration_type\": null,\n            \"registered_name\": \"Synthetic Example Manufacturing Inc.\",\n            \"status\": \"Active\",\n            \"standing\": null,\n            \"registered_on\": null,\n            \"inactive_on\": null,\n            \"dissolved_on\": null,\n            \"last_annual_return_year\": 2024,\n            \"last_annual_return_filed_on\": \"2025-03-01\",\n            \"annual_return_status\": \"overdue\",\n            \"outstanding_return_years\": [\n              2025\n            ],\n            \"registered_agent_relationship_id\": null,\n            \"document_ids\": [\n              \"doc_registry_synthetic\"\n            ]\n          }\n        ]\n      },\n      \"addresses\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"address_registered_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 1\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/raw\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/formatted\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/deliverable\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/classification\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/is_cmra\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/is_virtual\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/is_registered_agent\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/match_score\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"roles\": [\n              \"registered_office\"\n            ],\n            \"raw\": null,\n            \"street\": \"100 Synthetic Example Street\",\n            \"unit\": \"Suite 3\",\n            \"city\": \"Calgary\",\n            \"region\": \"AB\",\n            \"postal_code\": \"T2P 1J9\",\n            \"country\": \"CA\",\n            \"formatted\": null,\n            \"validation\": \"not_validated\",\n            \"deliverable\": null,\n            \"classification\": null,\n            \"is_cmra\": null,\n            \"is_virtual\": null,\n            \"is_registered_agent\": null,\n            \"match_score\": null\n          },\n          {\n            \"id\": \"address_records_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 1\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/raw\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/formatted\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/deliverable\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/classification\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/is_cmra\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/is_virtual\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/is_registered_agent\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/match_score\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"roles\": [\n              \"records_office\"\n            ],\n            \"raw\": null,\n            \"street\": \"100 Synthetic Example Street\",\n            \"unit\": \"Suite 3\",\n            \"city\": \"Calgary\",\n            \"region\": \"AB\",\n            \"postal_code\": \"T2P 1J9\",\n            \"country\": \"CA\",\n            \"formatted\": null,\n            \"validation\": \"not_validated\",\n            \"deliverable\": null,\n            \"classification\": null,\n            \"is_cmra\": null,\n            \"is_virtual\": null,\n            \"is_registered_agent\": null,\n            \"match_score\": null\n          }\n        ]\n      },\n      \"relationships\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"relationship_owner_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 3\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/position\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/appointed_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/ended_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/active\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/authority\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/skip_reason\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"related_subject_id\": \"owner_company_synthetic\",\n            \"related_entity_type\": \"business\",\n            \"name\": \"Synthetic Holding Company Inc.\",\n            \"roles\": [\n              \"shareholder\"\n            ],\n            \"role_labels\": [\n              \"Voting shareholder\"\n            ],\n            \"position\": null,\n            \"appointed_on\": null,\n            \"ended_on\": null,\n            \"active\": null,\n            \"authority\": null,\n            \"address_ids\": [],\n            \"registration_identifiers\": [],\n            \"verification_check_ids\": [],\n            \"verification_required\": true,\n            \"verification_state\": \"pending\",\n            \"skip_reason\": null\n          },\n          {\n            \"id\": \"relationship_agent_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 1\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/position\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/appointed_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/ended_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/active\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/authority\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/verification_required\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/skip_reason\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"related_subject_id\": \"agent_synthetic\",\n            \"related_entity_type\": \"person\",\n            \"name\": \"Synthetic Service Agent\",\n            \"roles\": [\n              \"agent_for_service\"\n            ],\n            \"role_labels\": [\n              \"Primary agent for service\"\n            ],\n            \"position\": null,\n            \"appointed_on\": null,\n            \"ended_on\": null,\n            \"active\": null,\n            \"authority\": null,\n            \"address_ids\": [],\n            \"registration_identifiers\": [],\n            \"verification_check_ids\": [],\n            \"verification_required\": null,\n            \"verification_state\": \"not_requested\",\n            \"skip_reason\": null\n          }\n        ]\n      },\n      \"ownership\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"ownership_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 3\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/economic_share\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/economic_share_min\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/economic_share_max\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/voting_share_min\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/voting_share_max\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/effective_share\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/share_class\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/share_count\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/nominal_value\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/total_value\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/basis_date\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"owner_subject_id\": \"owner_company_synthetic\",\n            \"owned_subject_id\": \"biz_synthetic\",\n            \"interest_type\": \"voting\",\n            \"economic_share\": null,\n            \"voting_share\": \"0.65\",\n            \"economic_share_min\": null,\n            \"economic_share_max\": null,\n            \"voting_share_min\": null,\n            \"voting_share_max\": null,\n            \"effective_share\": null,\n            \"share_class\": null,\n            \"share_count\": null,\n            \"nominal_value\": null,\n            \"total_value\": null,\n            \"nature_of_control\": [],\n            \"chain_subject_ids\": [\n              \"owner_company_synthetic\",\n              \"biz_synthetic\"\n            ],\n            \"chain_complete\": false,\n            \"unresolved_reason\": \"No source establishes the corporate owner ultimate beneficial owners.\",\n            \"reported_interest\": \"65% of Voting Shares\",\n            \"basis_date\": null\n          }\n        ]\n      },\n      \"identity_documents\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"biometrics\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"screenings\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"tax_checks\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"tax_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": null,\n                  \"page\": null\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/authority\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/provided_name\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/registered_name\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/registered_address_id\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/checked_at\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"identifier\": {\n              \"scheme\": \"BN\",\n              \"value\": null,\n              \"masked_value\": \"*****0001\",\n              \"country\": \"CA\",\n              \"jurisdiction\": null,\n              \"disclosure\": \"masked\",\n              \"reason\": \"Synthetic example masks the taxpayer identifier.\"\n            },\n            \"authority\": null,\n            \"result\": \"unavailable\",\n            \"provided_name\": null,\n            \"registered_name\": null,\n            \"registered_address_id\": null,\n            \"checked_at\": null,\n            \"unavailable_reason\": \"Registry identifier reported; no tax-authority validation result supplied.\"\n          }\n        ]\n      },\n      \"licences\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"licence_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": null,\n                  \"page\": null\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [],\n            \"supplemental_facts\": [],\n            \"registry\": \"Synthetic municipal business licence registry\",\n            \"authority\": \"Synthetic municipality\",\n            \"country\": \"CA\",\n            \"jurisdiction\": \"CA-AB\",\n            \"identifier\": \"SYNTHETIC-LIC-1\",\n            \"legal_name\": \"Synthetic Example Manufacturing Inc.\",\n            \"licence_types\": [\n              \"Manufacturing\"\n            ],\n            \"status\": \"Renewal licensed\",\n            \"issued_on\": \"2018-04-10\",\n            \"expires_on\": \"2027-04-10\",\n            \"address_ids\": [],\n            \"conditions\": [],\n            \"classification_codes\": [],\n            \"match_score\": {\n              \"value\": 100,\n              \"scale_min\": 0,\n              \"scale_max\": 100,\n              \"direction\": \"higher_is_stronger_match\",\n              \"label\": \"Synthetic similarity only\",\n              \"method\": \"synthetic-method-1\"\n            }\n          }\n        ]\n      },\n      \"filings\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"filing_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 4\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/effective_on\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/reference\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"kind\": \"Annual return\",\n            \"filed_on\": \"2025-03-01\",\n            \"effective_on\": null,\n            \"period_year\": 2024,\n            \"status\": \"Filed\",\n            \"reference\": null,\n            \"document_ids\": [\n              \"doc_registry_synthetic\"\n            ]\n          }\n        ]\n      },\n      \"corporate_structure\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"structure_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": \"doc_registry_synthetic\",\n                  \"page\": 4\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [],\n            \"supplemental_facts\": [],\n            \"share_classes\": [\n              {\n                \"name\": \"Synthetic Class A\",\n                \"description\": \"Common voting shares\",\n                \"authorized_quantity\": null,\n                \"unlimited\": true,\n                \"issued_quantity\": null,\n                \"voting_rights\": \"One vote per share\",\n                \"votes_per_share\": \"1\",\n                \"nominal_value\": null,\n                \"dividend_rights\": \"As declared, subject to senior rights.\",\n                \"liquidation_rights\": null,\n                \"redemption_terms\": null,\n                \"evidence\": [\n                  {\n                    \"evidence_id\": \"ev_verification_synthetic\",\n                    \"data_record_id\": \"dr_verification_source_synthetic\",\n                    \"source_path\": null,\n                    \"document_id\": \"doc_registry_synthetic\",\n                    \"page\": 6\n                  }\n                ]\n              }\n            ],\n            \"share_transfer_restrictions\": [\n              \"See the source articles schedule.\"\n            ],\n            \"minimum_directors\": 1,\n            \"maximum_directors\": 10,\n            \"permitted_activities\": [],\n            \"prohibited_activities\": [],\n            \"other_provisions\": [],\n            \"document_ids\": [\n              \"doc_registry_synthetic\"\n            ]\n          }\n        ]\n      },\n      \"public_records\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"online_presence\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"contact_checks\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"device_checks\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"document_checks\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"bank_account_checks\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"questionnaires\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"signatures\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      },\n      \"field_comparisons\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"compare_name_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": null,\n                  \"page\": null\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [],\n            \"supplemental_facts\": [],\n            \"field\": \"business.legal_name\",\n            \"provided\": \"SYNTHETIC EXAMPLE MANUFACTURING INC.\",\n            \"observed\": \"Synthetic Example Manufacturing Inc.\",\n            \"normalized_provided\": \"SYNTHETIC EXAMPLE MANUFACTURING INC\",\n            \"normalized_observed\": \"SYNTHETIC EXAMPLE MANUFACTURING INC\",\n            \"result\": \"matched\",\n            \"score\": {\n              \"value\": 100,\n              \"scale_min\": 0,\n              \"scale_max\": 100,\n              \"direction\": \"higher_is_stronger_match\",\n              \"label\": \"Synthetic similarity only\",\n              \"method\": \"synthetic-method-1\"\n            },\n            \"threshold\": 95,\n            \"required\": true,\n            \"affects_outcome\": true,\n            \"normalization\": \"Case and terminal punctuation folded; source names retained.\"\n          },\n          {\n            \"id\": \"compare_people_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": null,\n                  \"page\": null\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [\n              {\n                \"path\": \"/provided\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/observed\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/normalized_provided\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/normalized_observed\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/score\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/threshold\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              },\n              {\n                \"path\": \"/normalization\",\n                \"reason\": \"not_provided\",\n                \"description\": \"This synthetic source does not supply this field.\"\n              }\n            ],\n            \"supplemental_facts\": [],\n            \"field\": \"business.related_people\",\n            \"provided\": null,\n            \"observed\": null,\n            \"normalized_provided\": null,\n            \"normalized_observed\": null,\n            \"result\": \"not_submitted\",\n            \"score\": null,\n            \"threshold\": null,\n            \"required\": true,\n            \"affects_outcome\": true,\n            \"normalization\": null\n          }\n        ]\n      },\n      \"source_scores\": {\n        \"status\": \"available\",\n        \"reason\": null,\n        \"explanation\": \"Synthetic observations; availability does not mean a passing result.\",\n        \"coverage\": {\n          \"status\": \"complete\",\n          \"requested_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"completed_scopes\": [\n            \"synthetic_requested_scope\"\n          ],\n          \"limitations\": []\n        },\n        \"items\": [\n          {\n            \"id\": \"score_synthetic\",\n            \"subject_id\": \"biz_synthetic\",\n            \"provenance\": {\n              \"basis\": \"registry\",\n              \"source_id\": \"src_verification_synthetic\",\n              \"observed_at\": \"2026-11-06T12:00:00Z\",\n              \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n              \"evidence\": [\n                {\n                  \"evidence_id\": \"ev_verification_synthetic\",\n                  \"data_record_id\": \"dr_verification_source_synthetic\",\n                  \"source_path\": null,\n                  \"document_id\": null,\n                  \"page\": null\n                }\n              ],\n              \"field_evidence\": []\n            },\n            \"missing_fields\": [],\n            \"supplemental_facts\": [],\n            \"kind\": \"entity_match\",\n            \"score\": {\n              \"value\": 100,\n              \"scale_min\": 0,\n              \"scale_max\": 100,\n              \"direction\": \"higher_is_stronger_match\",\n              \"label\": \"Synthetic similarity only\",\n              \"method\": \"synthetic-method-1\"\n            },\n            \"reason_codes\": [],\n            \"limitations\": [\n              \"Similarity is not an AMLOK credit score or a verified beneficial-owner conclusion.\"\n            ]\n          }\n        ]\n      },\n      \"duplicate_checks\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"not_requested\",\n        \"explanation\": \"No result included in this synthetic example.\",\n        \"coverage\": {\n          \"status\": \"not_requested\",\n          \"requested_scopes\": [],\n          \"completed_scopes\": [],\n          \"limitations\": [\n            \"No completed check is claimed.\"\n          ]\n        },\n        \"items\": []\n      }\n    },\n    \"scope\": {\n      \"borrower_type\": \"business\",\n      \"market\": \"CA\",\n      \"reporting_currency\": \"CAD\",\n      \"window\": {\n        \"start\": \"2025-11-01T00:00:00Z\",\n        \"end\": \"2026-11-01T00:00:00Z\"\n      },\n      \"account_ids\": [\n        \"acct_synthetic\"\n      ],\n      \"entity_ids\": [\n        \"bor_synthetic\"\n      ],\n      \"consolidation\": \"single_entity\",\n      \"accounting_basis\": \"mixed\",\n      \"coverage_basis\": \"observed_sources\",\n      \"excluded_sources\": [],\n      \"fx_rates\": []\n    },\n    \"analyses\": {\n      \"verifications\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"financial_statements\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"obligations\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"income_streams\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"reconciliations\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"concentrations\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"projections\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"benchmarks\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"model_outputs\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"No eligible validated model output is included; no score or default probability is fabricated.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"changes\": {\n        \"status\": \"not_applicable\",\n        \"reason\": \"An initial Insights assessment has no comparable baseline.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"collateral\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"relationships\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"credit_reports\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      },\n      \"tax_obligations\": {\n        \"status\": \"unavailable\",\n        \"reason\": \"Necessary supporting evidence is not included in this synthetic example.\",\n        \"evidence_ids\": [],\n        \"items\": []\n      }\n    },\n    \"findings\": [],\n    \"required_actions\": [\n      {\n        \"code\": \"provide_debt_schedule\",\n        \"description\": \"Supply complete existing and proposed debt-service evidence.\",\n        \"metric_keys\": [\n          \"dscr\"\n        ],\n        \"requirement_ids\": []\n      }\n    ],\n    \"completeness\": {\n      \"expected_metric_count\": 149,\n      \"available_metric_count\": 1,\n      \"unavailable_metric_count\": 128,\n      \"not_applicable_metric_count\": 20,\n      \"coverage_statement\": \"All catalog entries are accounted for. Availability describes supplied evidence, not borrower credit quality.\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List evidence",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/evidence?evidence_set_id=es_synthetic",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "evidence"
          ],
          "query": [
            {
              "key": "evidence_set_id",
              "value": "es_synthetic"
            }
          ]
        },
        "description": "List frozen records and files belonging to an evidence set. Use resource_type to narrow the normalized resource family. Entitlement restrictions remain visible as metadata. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/evidence?evidence_set_id=es_synthetic",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "evidence"
              ],
              "query": [
                {
                  "key": "evidence_set_id",
                  "value": "es_synthetic"
                }
              ]
            },
            "description": "List frozen records and files belonging to an evidence set. Use resource_type to narrow the normalized resource family. Entitlement restrictions remain visible as metadata. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_bank_synthetic\",\n      \"evidence_set_id\": \"es_synthetic\",\n      \"resource_type\": \"bank_transaction\",\n      \"resource_id\": \"txn_synthetic\",\n      \"record_version\": 1,\n      \"kind\": \"normalized_record\",\n      \"source_id\": \"bank_synthetic\",\n      \"observed_at\": \"2026-11-06T12:00:00Z\",\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n      \"access\": \"restricted\",\n      \"access_reason\": \"Illustrative source entitlement restriction.\",\n      \"document_id\": null,\n      \"data_record_id\": \"dr_synthetic_v1\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get evidence",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/evidence/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "evidence",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Read the exact normalized evidence version and its provenance, or the controlled document reference for a provider report. This never silently substitutes the latest source record. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/evidence/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "evidence",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Read the exact normalized evidence version and its provenance, or the controlled document reference for a provider report. This never silently substitutes the latest source record. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"record\": {\n      \"id\": \"ev_bank_synthetic\",\n      \"evidence_set_id\": \"es_synthetic\",\n      \"resource_type\": \"bank_transaction\",\n      \"resource_id\": \"txn_synthetic\",\n      \"record_version\": 1,\n      \"kind\": \"normalized_record\",\n      \"source_id\": \"bank_synthetic\",\n      \"observed_at\": \"2026-11-06T12:00:00Z\",\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n      \"access\": \"restricted\",\n      \"access_reason\": \"Illustrative source entitlement restriction.\",\n      \"document_id\": null,\n      \"data_record_id\": \"dr_synthetic_v1\"\n    },\n    \"normalized\": null,\n    \"provider_report_document_id\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create monitor",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createMonitor-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitors",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitors"
          ],
          "query": []
        },
        "description": "Enroll a funded deal in Signal with an existing risk package or approved portfolio baseline. AMLOK schedules refreshes and change-driven reassessments. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"borrower_id\": \"bor_synthetic\",\n  \"deal\": {\n    \"institution_reference\": \"LOAN-0042\",\n    \"funded_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"outstanding_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"funded_at\": \"2026-11-05T12:00:00Z\",\n    \"maturity_date\": \"2027-11-06\",\n    \"repayment_frequency\": \"monthly\",\n    \"terms_document_ids\": []\n  },\n  \"baseline\": {\n    \"risk_package_id\": \"rp_synthetic\"\n  },\n  \"risk_policy_version_id\": \"rpv_synthetic\",\n  \"cadence_id\": \"cadence_synthetic\",\n  \"connection_ids\": [\n    \"con_synthetic\"\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createMonitor-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors"
              ],
              "query": []
            },
            "description": "Enroll a funded deal in Signal with an existing risk package or approved portfolio baseline. AMLOK schedules refreshes and change-driven reassessments. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"borrower_id\": \"bor_synthetic\",\n  \"deal\": {\n    \"institution_reference\": \"LOAN-0042\",\n    \"funded_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"outstanding_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"funded_at\": \"2026-11-05T12:00:00Z\",\n    \"maturity_date\": \"2027-11-06\",\n    \"repayment_frequency\": \"monthly\",\n    \"terms_document_ids\": []\n  },\n  \"baseline\": {\n    \"risk_package_id\": \"rp_synthetic\"\n  },\n  \"risk_policy_version_id\": \"rpv_synthetic\",\n  \"cadence_id\": \"cadence_synthetic\",\n  \"connection_ids\": [\n    \"con_synthetic\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Accepted",
          "code": 202,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"mon_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"deal\": {\n      \"institution_reference\": \"LOAN-0042\",\n      \"funded_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"outstanding_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"funded_at\": \"2026-11-05T12:00:00Z\",\n      \"maturity_date\": \"2027-11-06\",\n      \"repayment_frequency\": \"monthly\",\n      \"terms_document_ids\": []\n    },\n    \"status\": \"initializing\",\n    \"baseline_package_id\": \"rp_synthetic\",\n    \"latest_package_id\": null,\n    \"risk_policy_version_id\": \"rpv_synthetic\",\n    \"cadence_id\": \"cadence_synthetic\",\n    \"next_evaluation_at\": null,\n    \"record_version\": 1,\n    \"connection_ids\": [\n      \"con_synthetic\"\n    ],\n    \"requirements\": [],\n    \"failure\": null,\n    \"latest_deal_snapshot_id\": \"ds_initial\",\n    \"updated_at\": \"2026-11-06T12:00:00Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List monitors",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitors",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitors"
          ],
          "query": []
        },
        "description": "List monitor. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors"
              ],
              "query": []
            },
            "description": "List monitor. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"mon_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"deal\": {\n        \"institution_reference\": \"LOAN-0042\",\n        \"funded_amount\": {\n          \"amount\": \"50000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"outstanding_amount\": {\n          \"amount\": \"48000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"funded_at\": \"2026-11-05T12:00:00Z\",\n        \"maturity_date\": \"2027-11-06\",\n        \"repayment_frequency\": \"monthly\",\n        \"terms_document_ids\": []\n      },\n      \"status\": \"active\",\n      \"baseline_package_id\": \"rp_synthetic\",\n      \"latest_package_id\": \"rp_signal_synthetic\",\n      \"risk_policy_version_id\": \"rpv_synthetic\",\n      \"cadence_id\": \"cadence_synthetic\",\n      \"next_evaluation_at\": \"2026-11-07T12:00:00Z\",\n      \"record_version\": 1,\n      \"connection_ids\": [\n        \"con_synthetic\"\n      ],\n      \"requirements\": [],\n      \"failure\": null,\n      \"latest_deal_snapshot_id\": \"ds_synthetic\",\n      \"updated_at\": \"2026-11-06T12:00:00Z\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get monitor",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitors/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitors",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get monitor. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get monitor. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"mon_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"deal\": {\n      \"institution_reference\": \"LOAN-0042\",\n      \"funded_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"outstanding_amount\": {\n        \"amount\": \"48000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"funded_at\": \"2026-11-05T12:00:00Z\",\n      \"maturity_date\": \"2027-11-06\",\n      \"repayment_frequency\": \"monthly\",\n      \"terms_document_ids\": []\n    },\n    \"status\": \"active\",\n    \"baseline_package_id\": \"rp_synthetic\",\n    \"latest_package_id\": \"rp_signal_synthetic\",\n    \"risk_policy_version_id\": \"rpv_synthetic\",\n    \"cadence_id\": \"cadence_synthetic\",\n    \"next_evaluation_at\": \"2026-11-07T12:00:00Z\",\n    \"record_version\": 1,\n    \"connection_ids\": [\n      \"con_synthetic\"\n    ],\n    \"requirements\": [],\n    \"failure\": null,\n    \"latest_deal_snapshot_id\": \"ds_synthetic\",\n    \"updated_at\": \"2026-11-06T12:00:00Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Update monitor",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "If-Match",
            "value": "{{record_etag}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitors/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitors",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Change future monitoring configuration with the current ETag. Historical assessments, alerts, evidence and charges remain immutable. A stopped monitor cannot resume. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"status\": \"paused\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "If-Match",
                "value": "{{record_etag}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Change future monitoring configuration with the current ETag. Historical assessments, alerts, evidence and charges remain immutable. A stopped monitor cannot resume. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": \"paused\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"mon_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"deal\": {\n      \"institution_reference\": \"LOAN-0042\",\n      \"funded_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"outstanding_amount\": {\n        \"amount\": \"48000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"funded_at\": \"2026-11-05T12:00:00Z\",\n      \"maturity_date\": \"2027-11-06\",\n      \"repayment_frequency\": \"monthly\",\n      \"terms_document_ids\": []\n    },\n    \"status\": \"paused\",\n    \"baseline_package_id\": \"rp_synthetic\",\n    \"latest_package_id\": \"rp_signal_synthetic\",\n    \"risk_policy_version_id\": \"rpv_synthetic\",\n    \"cadence_id\": \"cadence_synthetic\",\n    \"next_evaluation_at\": null,\n    \"record_version\": 2,\n    \"connection_ids\": [\n      \"con_synthetic\"\n    ],\n    \"requirements\": [],\n    \"failure\": null,\n    \"latest_deal_snapshot_id\": \"ds_synthetic\",\n    \"updated_at\": \"2026-11-06T12:00:00Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List monitoring runs",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitoring-runs",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitoring-runs"
          ],
          "query": []
        },
        "description": "Inspect scheduled or change-driven monitoring evaluations, including per-integration freshness, coverage, failures and the resulting risk package. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitoring-runs",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitoring-runs"
              ],
              "query": []
            },
            "description": "Inspect scheduled or change-driven monitoring evaluations, including per-integration freshness, coverage, failures and the resulting risk package. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"mr_synthetic\",\n      \"monitor_id\": \"mon_synthetic\",\n      \"status\": \"partial\",\n      \"started_at\": \"2026-11-06T12:00:00Z\",\n      \"completed_at\": \"2026-11-06T12:00:00Z\",\n      \"risk_package_id\": \"rp_signal_synthetic\",\n      \"sources\": [\n        {\n          \"connection_id\": \"con_synthetic\",\n          \"integration_id\": \"bank_synthetic\",\n          \"source_as_of\": \"2026-11-01T00:00:00Z\",\n          \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n          \"window\": {\n            \"start\": \"2025-11-01T00:00:00Z\",\n            \"end\": \"2026-11-01T00:00:00Z\"\n          },\n          \"status\": \"partial\",\n          \"limitations\": [\n            \"Bank records alone do not establish a complete debt schedule.\"\n          ]\n        }\n      ],\n      \"evidence_set_id\": \"es_synthetic\",\n      \"limitations\": [\n        \"Debt-service data remains incomplete.\"\n      ],\n      \"record_version\": 1,\n      \"deal_snapshot_id\": \"ds_synthetic\",\n      \"failure\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get monitoring run",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitoring-runs/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitoring-runs",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get monitoring run. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitoring-runs/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitoring-runs",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get monitoring run. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"mr_synthetic\",\n    \"monitor_id\": \"mon_synthetic\",\n    \"status\": \"partial\",\n    \"started_at\": \"2026-11-06T12:00:00Z\",\n    \"completed_at\": \"2026-11-06T12:00:00Z\",\n    \"risk_package_id\": \"rp_signal_synthetic\",\n    \"sources\": [\n      {\n        \"connection_id\": \"con_synthetic\",\n        \"integration_id\": \"bank_synthetic\",\n        \"source_as_of\": \"2026-11-01T00:00:00Z\",\n        \"retrieved_at\": \"2026-11-06T12:00:00Z\",\n        \"window\": {\n          \"start\": \"2025-11-01T00:00:00Z\",\n          \"end\": \"2026-11-01T00:00:00Z\"\n        },\n        \"status\": \"partial\",\n        \"limitations\": [\n          \"Bank records alone do not establish a complete debt schedule.\"\n        ]\n      }\n    ],\n    \"evidence_set_id\": \"es_synthetic\",\n    \"limitations\": [\n      \"Debt-service data remains incomplete.\"\n    ],\n    \"record_version\": 1,\n    \"deal_snapshot_id\": \"ds_synthetic\",\n    \"failure\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List alerts",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/alerts",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "alerts"
          ],
          "query": []
        },
        "description": "Read system-derived risk conditions and their evidence. Missing or stale inputs are not a successful risk check. Institutions manage intervention in their own systems. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/alerts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "alerts"
              ],
              "query": []
            },
            "description": "Read system-derived risk conditions and their evidence. Missing or stale inputs are not a successful risk check. Institutions manage intervention in their own systems. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"alert_synthetic\",\n      \"monitor_id\": \"mon_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"status\": \"open\",\n      \"severity\": \"warning\",\n      \"rule_id\": \"dscr-minimum\",\n      \"policy_version_id\": \"rpv_synthetic\",\n      \"message\": \"Required debt-service evidence is unavailable.\",\n      \"detected_at\": \"2026-11-06T12:00:00Z\",\n      \"resolved_at\": null,\n      \"previous_package_id\": \"rp_synthetic\",\n      \"current_package_id\": \"rp_signal_synthetic\",\n      \"metric_key\": \"dscr\",\n      \"previous_value\": null,\n      \"current_value\": null,\n      \"threshold\": \"1.25\",\n      \"unit\": \"ratio\",\n      \"evidence_ids\": [\n        \"ev_bank_synthetic\"\n      ],\n      \"record_version\": 1\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get alert",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/alerts/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "alerts",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get alert. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/alerts/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "alerts",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get alert. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"alert_synthetic\",\n    \"monitor_id\": \"mon_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"status\": \"open\",\n    \"severity\": \"warning\",\n    \"rule_id\": \"dscr-minimum\",\n    \"policy_version_id\": \"rpv_synthetic\",\n    \"message\": \"Required debt-service evidence is unavailable.\",\n    \"detected_at\": \"2026-11-06T12:00:00Z\",\n    \"resolved_at\": null,\n    \"previous_package_id\": \"rp_synthetic\",\n    \"current_package_id\": \"rp_signal_synthetic\",\n    \"metric_key\": \"dscr\",\n    \"previous_value\": null,\n    \"current_value\": null,\n    \"threshold\": \"1.25\",\n    \"unit\": \"ratio\",\n    \"evidence_ids\": [\n      \"ev_bank_synthetic\"\n    ],\n    \"record_version\": 1\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List events",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/events",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "events"
          ],
          "query": []
        },
        "description": "Read the durable event feed. Start with start=now before a snapshot bootstrap, then retain resume_cursor after each committed batch. Delivery order is not resource-version order. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/events",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "events"
              ],
              "query": []
            },
            "description": "Read the durable event feed. Start with start=now before a snapshot bootstrap, then retain resume_cursor after each committed batch. Delivery order is not resource-version order. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_synthetic\",\n      \"type\": \"origination.completed\",\n      \"occurred_at\": \"2026-11-06T12:00:00Z\",\n      \"resource_type\": \"origination\",\n      \"resource_id\": \"orgn_synthetic\",\n      \"resource_version\": 4,\n      \"borrower_id\": \"bor_synthetic\",\n      \"environment\": \"sandbox\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"resume_cursor\": \"resume_synthetic\",\n    \"resume_expires_at\": \"2026-12-06T12:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get event",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/events/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "events",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get event. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/events/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "events",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get event. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"evt_synthetic\",\n    \"type\": \"origination.completed\",\n    \"occurred_at\": \"2026-11-06T12:00:00Z\",\n    \"resource_type\": \"origination\",\n    \"resource_id\": \"orgn_synthetic\",\n    \"resource_version\": 4,\n    \"borrower_id\": \"bor_synthetic\",\n    \"environment\": \"sandbox\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create export",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createExport-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/exports",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "exports"
          ],
          "query": []
        },
        "description": "Prepare a risk package, evidence set or billing report for download. Each kind requires its own source permissions in addition to export access. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:write. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"kind\": \"risk_package\",\n  \"risk_package_id\": \"rp_synthetic\",\n  \"format\": \"json\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createExport-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/exports",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "exports"
              ],
              "query": []
            },
            "description": "Prepare a risk package, evidence set or billing report for download. Each kind requires its own source permissions in addition to export access. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:write. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"kind\": \"risk_package\",\n  \"risk_package_id\": \"rp_synthetic\",\n  \"format\": \"json\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Accepted",
          "code": 202,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"exp_synthetic\",\n    \"status\": \"queued\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"format\": \"json\",\n    \"source\": {\n      \"kind\": \"risk_package\",\n      \"risk_package_id\": \"rp_synthetic\",\n      \"format\": \"json\"\n    },\n    \"failure\": null,\n    \"record_version\": 1,\n    \"expires_at\": null,\n    \"artifact\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get export",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/exports/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "exports",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Get export. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:read. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/exports/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "exports",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Get export. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:read. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"exp_synthetic\",\n    \"status\": \"queued\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"format\": \"json\",\n    \"source\": {\n      \"kind\": \"risk_package\",\n      \"risk_package_id\": \"rp_synthetic\",\n      \"format\": \"json\"\n    },\n    \"failure\": null,\n    \"record_version\": 1,\n    \"expires_at\": null,\n    \"artifact\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Download export",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "downloadExport-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/exports/{{record_id}}/download-links",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "exports",
            "{{record_id}}",
            "download-links"
          ],
          "query": []
        },
        "description": "Download export. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:read. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"purpose\": \"Institution underwriting review\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "downloadExport-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/exports/{{record_id}}/download-links",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "exports",
                "{{record_id}}",
                "download-links"
              ],
              "query": []
            },
            "description": "Download export. All IDs and cursors must belong to the authorized workspace and environment. Required scope: exports:read. Data exports require data:read and source authorization; risk-package exports require results:read; billing exports require billing:read and Owner authority; evidence exports require evidence:read and source entitlements. Permissions are checked at creation, retrieval and download.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"purpose\": \"Institution underwriting review\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"url\": \"https://downloads.example.com/synthetic\",\n    \"expires_at\": \"2026-11-06T12:05:00Z\",\n    \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n    \"mime_type\": \"application/json\",\n    \"artifact_id\": \"artifact_synthetic\",\n    \"part_number\": 1,\n    \"byte_offset\": 0,\n    \"byte_length\": 4096,\n    \"etag\": \"\\\"part_synthetic\\\"\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List deliveries",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/webhook-deliveries",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "webhook-deliveries"
          ],
          "query": []
        },
        "description": "List deliveries. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/webhook-deliveries",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "webhook-deliveries"
              ],
              "query": []
            },
            "description": "List deliveries. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:read. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"del_synthetic\",\n      \"event_id\": \"evt_synthetic\",\n      \"endpoint_id\": \"dest_synthetic\",\n      \"attempt\": 1,\n      \"status\": \"delivered\",\n      \"attempted_at\": \"2026-11-06T12:00:00Z\",\n      \"http_status\": 200\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Replay event",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "replayEvent-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/webhook-replays",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "webhook-replays"
          ],
          "query": []
        },
        "description": "Requeue an event for an existing console-managed webhook destination. Replay only retries delivery; it never reruns analysis or adds usage charges. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:write. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"event_id\": \"evt_synthetic\",\n  \"endpoint_id\": \"dest_synthetic\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "replayEvent-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/webhook-replays",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "webhook-replays"
              ],
              "query": []
            },
            "description": "Requeue an event for an existing console-managed webhook destination. Replay only retries delivery; it never reruns analysis or adds usage charges. All IDs and cursors must belong to the authorized workspace and environment. Required scope: events:write. Billing notifications require billing:read and current Owner authority in addition to event access. Data notifications require data:read. Lists and replays must not reveal unauthorized resource metadata.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event_id\": \"evt_synthetic\",\n  \"endpoint_id\": \"dest_synthetic\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "Accepted",
          "code": 202,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"replay_synthetic\",\n    \"event_id\": \"evt_synthetic\",\n    \"status\": \"accepted\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get billing summary",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/summary",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "summary"
          ],
          "query": []
        },
        "description": "Read the selected workspace CAD wallet shared across Insights and Signal. Payment methods and automatic funding controls belong to the organization billing console. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/summary",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "summary"
              ],
              "query": []
            },
            "description": "Read the selected workspace CAD wallet shared across Insights and Signal. Payment methods and automatic funding controls belong to the organization billing console. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"as_of\": \"2026-11-06T12:00:00Z\",\n    \"currency\": \"CAD\",\n    \"available_credits\": \"4935.00\",\n    \"spent_credits\": \"65.00\",\n    \"billing_account_id\": \"billing_synthetic\",\n    \"snapshot_id\": \"snap_synthetic\",\n    \"paid_funding_credits\": \"5000.00\",\n    \"promotional_credits\": \"0.00\",\n    \"adjustment_credits\": \"0.00\",\n    \"refunded_credits\": \"0.00\",\n    \"auto_pay\": {\n      \"enabled\": false,\n      \"trigger_amount\": \"200.00\",\n      \"top_up_amount\": \"500.00\"\n    },\n    \"snapshot_expires_at\": \"2026-11-06T13:00:00Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List billing transactions",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/transactions",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "transactions"
          ],
          "query": []
        },
        "description": "Read immutable workspace funding, usage, adjustment and final-refund entries. Use typed billing exports for detailed statements, workload and historical rates. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/transactions",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "transactions"
              ],
              "query": []
            },
            "description": "Read immutable workspace funding, usage, adjustment and final-refund entries. Use typed billing exports for detailed statements, workload and historical rates. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"txn_usage_synthetic\",\n      \"snapshot_id\": \"snap_synthetic\",\n      \"posted_at\": \"2026-11-06T12:00:00Z\",\n      \"amount\": \"-40.00\",\n      \"currency\": \"CAD\",\n      \"kind\": \"usage\",\n      \"product\": \"insights\",\n      \"description\": \"Synthetic underwriting usage, not a price quotation.\",\n      \"usage_id\": \"usage_synthetic\",\n      \"payment_id\": null,\n      \"borrower_id\": \"bor_synthetic\",\n      \"balance_after\": \"4935.00\",\n      \"sequence\": 3,\n      \"funding_type\": null,\n      \"record_version\": 1,\n      \"related_transaction_id\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get configuration",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/configuration",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "configuration"
          ],
          "query": []
        },
        "description": "Discover the approved schemas, products, integration IDs, embedding versions and monitoring cadences available to this API key. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read. operational_profile and embedding_versions are required discovery; sandbox is null in Live. Never infer production quotas from synthetic examples."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/configuration",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "configuration"
              ],
              "query": []
            },
            "description": "Discover the approved schemas, products, integration IDs, embedding versions and monitoring cadences available to this API key. All IDs and cursors must belong to the authorized workspace and environment. Required scope: configuration:read. operational_profile and embedding_versions are required discovery; sandbox is null in Live. Never infer production quotas from synthetic examples."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"products\": [\n      \"insights\",\n      \"signal\"\n    ],\n    \"embedding_version_ids\": [\n      \"embed_synthetic\"\n    ],\n    \"application_schemas\": [\n      {\n        \"id\": \"app_schema_synthetic\",\n        \"version\": \"1\",\n        \"json_schema\": {\n          \"type\": \"object\",\n          \"required\": [\n            \"annual_revenue\"\n          ],\n          \"properties\": {\n            \"annual_revenue\": {\n              \"type\": \"string\",\n              \"pattern\": \"^[0-9]+\\\\.[0-9]{2}$\"\n            }\n          },\n          \"additionalProperties\": false\n        }\n      },\n      {\n        \"id\": \"consumer_app_schema_synthetic\",\n        \"version\": \"1\",\n        \"json_schema\": {\n          \"type\": \"object\",\n          \"required\": [\n            \"gross_monthly_income\",\n            \"monthly_debt_payments\"\n          ],\n          \"properties\": {\n            \"gross_monthly_income\": {\n              \"type\": \"string\",\n              \"pattern\": \"^[0-9]+\\\\.[0-9]{2}$\"\n            },\n            \"monthly_debt_payments\": {\n              \"type\": \"string\",\n              \"pattern\": \"^[0-9]+\\\\.[0-9]{2}$\"\n            }\n          },\n          \"additionalProperties\": false\n        }\n      }\n    ],\n    \"pricing_schemas\": [\n      {\n        \"id\": \"pricing_synthetic\",\n        \"version\": \"1\",\n        \"json_schema\": {\n          \"type\": \"object\",\n          \"required\": [\n            \"rate_type\",\n            \"annual_interest_rate\",\n            \"amortization_months\",\n            \"fees\"\n          ],\n          \"properties\": {\n            \"rate_type\": {\n              \"const\": \"fixed\"\n            },\n            \"annual_interest_rate\": {\n              \"type\": \"string\"\n            },\n            \"amortization_months\": {\n              \"type\": \"integer\",\n              \"minimum\": 1\n            },\n            \"fees\": {\n              \"type\": \"array\",\n              \"items\": {\n                \"type\": \"object\"\n              }\n            }\n          },\n          \"additionalProperties\": false\n        }\n      }\n    ],\n    \"cadences\": [\n      {\n        \"id\": \"cadence_synthetic\",\n        \"description\": \"Illustrative daily schedule; use your provisioned cadence.\"\n      }\n    ],\n    \"dimensions\": [\n      {\n        \"key\": \"business_age_months\",\n        \"dimension_key\": \"identity\",\n        \"label\": \"Business age\",\n        \"description\": \"Business age. Whole calendar months from verified formation date to assessment date.\",\n        \"unit\": \"months\",\n        \"formula\": \"Whole calendar months from verified formation date to assessment date\",\n        \"required_inputs\": [\n          \"Verified formation date\",\n          \"assessment date\",\n          \"business only\"\n        ],\n        \"eligibility\": \"Identity and account-ownership checks identify inconsistencies; they do not substitute for financial capacity.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"identity\",\n          \"registry\",\n          \"banking\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-business_age_months-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"verified_account_owner_ratio\",\n        \"dimension_key\": \"identity\",\n        \"label\": \"Verified account ownership share\",\n        \"description\": \"Verified account ownership share. Accounts with positively matched ownership divided by eligible disclosed connected accounts.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Accounts with positively matched ownership divided by eligible disclosed connected accounts\",\n        \"required_inputs\": [\n          \"Account ownership evidence and resolved borrower identity\",\n          \"nonzero eligible-account count\"\n        ],\n        \"eligibility\": \"Identity and account-ownership checks identify inconsistencies; they do not substitute for financial capacity.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"identity\",\n          \"registry\",\n          \"banking\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-verified_account_owner_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"ownership_disclosed_ratio\",\n        \"dimension_key\": \"ownership_and_control\",\n        \"label\": \"Disclosed ownership share\",\n        \"description\": \"Disclosed ownership share. Sum of supported non-overlapping ownership fractions in the assessed entity.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Sum of supported non-overlapping ownership fractions in the assessed entity\",\n        \"required_inputs\": [\n          \"Current ownership register\",\n          \"common share basis\",\n          \"do not double-count direct and indirect paths\"\n        ],\n        \"eligibility\": \"Use documented beneficial ownership, control, guarantees and related-party exposure. Do not infer family relationships or hidden ownership.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"registry\",\n          \"identity\",\n          \"accounting\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-ownership_disclosed_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"related_party_balance_share\",\n        \"dimension_key\": \"ownership_and_control\",\n        \"label\": \"Related-party receivables share\",\n        \"description\": \"Related-party receivables share. Related-party receivables divided by total receivables.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Related-party receivables divided by total receivables\",\n        \"required_inputs\": [\n          \"Resolved related parties and same-date receivables\",\n          \"positive total receivables\"\n        ],\n        \"eligibility\": \"Use documented beneficial ownership, control, guarantees and related-party exposure. Do not infer family relationships or hidden ownership.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"registry\",\n          \"identity\",\n          \"accounting\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-related_party_balance_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"supported_guarantee_coverage\",\n        \"dimension_key\": \"ownership_and_control\",\n        \"label\": \"Supported guarantee coverage\",\n        \"description\": \"Supported guarantee coverage. Documented collectible guarantee amount capped at exposure divided by exposure.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Documented collectible guarantee amount capped at exposure divided by exposure\",\n        \"required_inputs\": [\n          \"Guarantee terms, guarantor assessment, currency and exposure\",\n          \"positive exposure\",\n          \"no unsupported collectible value\"\n        ],\n        \"eligibility\": \"Use documented beneficial ownership, control, guarantees and related-party exposure. Do not infer family relationships or hidden ownership.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"registry\",\n          \"identity\",\n          \"accounting\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-supported_guarantee_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"total_inflows\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Posted inflows\",\n        \"description\": \"Posted inflows. Sum posted inflow magnitudes before transfer or revenue exclusions.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum posted inflow magnitudes before transfer or revenue exclusions\",\n        \"required_inputs\": [\n          \"Complete eligible transaction set for the window, scope and currency\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-total_inflows-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"total_outflows\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Posted outflows\",\n        \"description\": \"Posted outflows. Sum posted outflow magnitudes before transfer or operating exclusions.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum posted outflow magnitudes before transfer or operating exclusions\",\n        \"required_inputs\": [\n          \"Complete eligible transaction set for the window, scope and currency\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-total_outflows-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_cash_flow\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Net cash flow\",\n        \"description\": \"Net cash flow. Posted inflows minus posted outflows after consolidation transfer elimination.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Posted inflows minus posted outflows after consolidation transfer elimination\",\n        \"required_inputs\": [\n          \"Matched transfers, complete transactions and consistent scope/currency\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_cash_flow-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"operating_cash_inflows\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Operating receipts\",\n        \"description\": \"Operating receipts. Sum classified operating receipts excluding financing, internal transfers and owner injections.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum classified operating receipts excluding financing, internal transfers and owner injections\",\n        \"required_inputs\": [\n          \"Supported transaction classifications and explicit exclusion bridge\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-operating_cash_inflows-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"operating_cash_outflows\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Operating cash payments\",\n        \"description\": \"Operating cash payments. Sum operating outflows excluding financing principal, capital expenditures and matched transfers.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum operating outflows excluding financing principal, capital expenditures and matched transfers\",\n        \"required_inputs\": [\n          \"Supported classifications and cash-flow basis\",\n          \"interest/tax treatment disclosed\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-operating_cash_outflows-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"operating_net_cash_flow\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Net operating cash flow\",\n        \"description\": \"Net operating cash flow. Operating receipts minus operating cash payments.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Operating receipts minus operating cash payments\",\n        \"required_inputs\": [\n          \"Same-window receipts/outflows and documented classification basis\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-operating_net_cash_flow-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"internal_transfer_inflows\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Internal transfer inflows\",\n        \"description\": \"Internal transfer inflows. Sum inflows matched to outflows within the consolidation scope.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum inflows matched to outflows within the consolidation scope\",\n        \"required_inputs\": [\n          \"Supported transfer pairs with stable IDs and explicit FX treatment\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-internal_transfer_inflows-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"financing_inflows\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Financing inflows\",\n        \"description\": \"Financing inflows. Sum identified debt and equity financing receipts.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum identified debt and equity financing receipts\",\n        \"required_inputs\": [\n          \"Financing classification and evidence\",\n          \"uncertain receipts remain unclassified\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-financing_inflows-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"positive_cashflow_month_share\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Positive cash-flow months\",\n        \"description\": \"Positive cash-flow months. Complete months with positive net cash flow divided by complete covered months.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Complete months with positive net cash flow divided by complete covered months\",\n        \"required_inputs\": [\n          \"At least three complete months and consistent account scope\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-positive_cashflow_month_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"cashflow_volatility\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Operating cash-flow volatility\",\n        \"description\": \"Operating cash-flow volatility. Population standard deviation of complete monthly net operating cash flow divided by absolute mean.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Population standard deviation of complete monthly net operating cash flow divided by absolute mean\",\n        \"required_inputs\": [\n          \"At least six complete months\",\n          \"nonzero mean\",\n          \"disclose near-zero denominator sensitivity\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-cashflow_volatility-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"cashflow_change_90d\",\n        \"dimension_key\": \"cashflow\",\n        \"label\": \"Operating cash-flow change\",\n        \"description\": \"Operating cash-flow change. Current 90-day operating net flow minus previous 90-day flow, divided by absolute previous flow.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current 90-day operating net flow minus previous 90-day flow, divided by absolute previous flow\",\n        \"required_inputs\": [\n          \"Two complete comparable 90-day windows\",\n          \"nonzero previous flow\"\n        ],\n        \"eligibility\": \"Use posted, deduplicated flows. Consolidation eliminates matched transfers; raw inflows remain distinct from operating receipts and revenue.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-cashflow_change_90d-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"unrestricted_cash\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Unrestricted cash\",\n        \"description\": \"Unrestricted cash. Sum verified cash balances available for use, excluding restricted balances.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum verified cash balances available for use, excluding restricted balances\",\n        \"required_inputs\": [\n          \"Same-as-of reconciled balances and restriction status\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-unrestricted_cash-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"average_daily_balance\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Average daily cash balance\",\n        \"description\": \"Average daily cash balance. Sum end-of-day balances divided by covered calendar days.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum end-of-day balances divided by covered calendar days\",\n        \"required_inputs\": [\n          \"Complete reconciled daily balances for the selected account scope\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-average_daily_balance-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"minimum_daily_balance\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Minimum daily cash balance\",\n        \"description\": \"Minimum daily cash balance. Minimum consolidated end-of-day balance.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Minimum consolidated end-of-day balance\",\n        \"required_inputs\": [\n          \"Complete comparable daily balances\",\n          \"disclose observed versus reconstructed basis\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-minimum_daily_balance-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"negative_balance_days\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Days below zero\",\n        \"description\": \"Days below zero. Count covered days with negative consolidated end-of-day balance.\",\n        \"unit\": \"days\",\n        \"formula\": \"Count covered days with negative consolidated end-of-day balance\",\n        \"required_inputs\": [\n          \"Complete daily balance series\",\n          \"no missing day treated as zero\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-negative_balance_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"cash_buffer_days\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Cash buffer\",\n        \"description\": \"Cash buffer. Unrestricted cash divided by mean daily essential cash outflows.\",\n        \"unit\": \"days\",\n        \"formula\": \"Unrestricted cash divided by mean daily essential cash outflows\",\n        \"required_inputs\": [\n          \"Positive essential-outflow denominator\",\n          \"current cash\",\n          \"documented window and exclusions\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-cash_buffer_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"current_ratio\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Current ratio\",\n        \"description\": \"Current ratio. Current assets divided by current liabilities.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current assets divided by current liabilities\",\n        \"required_inputs\": [\n          \"Same-date classified balance sheet\",\n          \"positive current liabilities\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-current_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"quick_ratio\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Quick ratio\",\n        \"description\": \"Quick ratio. Cash plus short-term investments plus eligible receivables, divided by current liabilities.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Cash plus short-term investments plus eligible receivables, divided by current liabilities\",\n        \"required_inputs\": [\n          \"Same-date asset/liability classifications\",\n          \"positive current liabilities\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-quick_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"cash_ratio\",\n        \"dimension_key\": \"liquidity\",\n        \"label\": \"Cash ratio\",\n        \"description\": \"Cash ratio. Unrestricted cash and cash equivalents divided by current liabilities.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Unrestricted cash and cash equivalents divided by current liabilities\",\n        \"required_inputs\": [\n          \"Same-date balances\",\n          \"positive current liabilities\"\n        ],\n        \"eligibility\": \"Separate available, restricted and observed balances. Reconstructed daily balances require reconciled opening/closing balances and complete transaction coverage.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-cash_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"verified_revenue\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Verified revenue\",\n        \"description\": \"Verified revenue. Sum supported revenue on the declared cash or accrual basis after exclusions.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum supported revenue on the declared cash or accrual basis after exclusions\",\n        \"required_inputs\": [\n          \"Reconciled bank, accounting or commerce evidence\",\n          \"taxes, financing and transfers excluded\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-verified_revenue-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"recurring_revenue_share\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Recurring revenue share\",\n        \"description\": \"Recurring revenue share. Supported recurring revenue divided by total verified revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Supported recurring revenue divided by total verified revenue\",\n        \"required_inputs\": [\n          \"Defined recurrence rule and matched periods\",\n          \"positive total revenue\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-recurring_revenue_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"revenue_growth_yoy\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Revenue growth year over year\",\n        \"description\": \"Revenue growth year over year. Current-period revenue minus prior-year comparable revenue, divided by prior-year revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current-period revenue minus prior-year comparable revenue, divided by prior-year revenue\",\n        \"required_inputs\": [\n          \"Comparable periods separated by one year\",\n          \"positive prior revenue\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-revenue_growth_yoy-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"revenue_growth_90d\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Revenue growth over 90 days\",\n        \"description\": \"Revenue growth over 90 days. Current 90-day revenue minus preceding 90-day revenue, divided by preceding revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current 90-day revenue minus preceding 90-day revenue, divided by preceding revenue\",\n        \"required_inputs\": [\n          \"Two complete 90-day periods\",\n          \"positive prior revenue\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-revenue_growth_90d-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"revenue_volatility\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Monthly revenue volatility\",\n        \"description\": \"Monthly revenue volatility. Population standard deviation of monthly revenue divided by mean monthly revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Population standard deviation of monthly revenue divided by mean monthly revenue\",\n        \"required_inputs\": [\n          \"At least six complete months\",\n          \"positive mean\",\n          \"consistent recognition basis\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-revenue_volatility-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"refund_amount_share\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Refund amount share\",\n        \"description\": \"Refund amount share. Refunded sales amount divided by eligible gross sales amount.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Refunded sales amount divided by eligible gross sales amount\",\n        \"required_inputs\": [\n          \"Matched sales/refund cohort and treatment of late refunds\",\n          \"positive gross sales\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-refund_amount_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"chargeback_amount_share\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Chargeback amount share\",\n        \"description\": \"Chargeback amount share. Disputed chargeback amount divided by eligible processed sales amount.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Disputed chargeback amount divided by eligible processed sales amount\",\n        \"required_inputs\": [\n          \"Matched processing cohort and consistent chargeback stage\",\n          \"positive denominator\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-chargeback_amount_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"revenue_cash_realization\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Revenue cash realization\",\n        \"description\": \"Revenue cash realization. Matched collections on recognized sales divided by recognized sales.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Matched collections on recognized sales divided by recognized sales\",\n        \"required_inputs\": [\n          \"Defined collection horizon and sales cohort\",\n          \"positive recognized sales\",\n          \"not raw deposits/revenue\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-revenue_cash_realization-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"unverified_receipts_share\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Unverified receipts share\",\n        \"description\": \"Unverified receipts share. Unclassified or unsupported operating-like receipts divided by total candidate receipts.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Unclassified or unsupported operating-like receipts divided by total candidate receipts\",\n        \"required_inputs\": [\n          \"Classification coverage and positive candidate receipts\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-unverified_receipts_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"nonrecurring_revenue_share\",\n        \"dimension_key\": \"revenue_quality\",\n        \"label\": \"Nonrecurring revenue share\",\n        \"description\": \"Nonrecurring revenue share. Identified nonrecurring revenue divided by verified revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Identified nonrecurring revenue divided by verified revenue\",\n        \"required_inputs\": [\n          \"Versioned recurrence criteria and positive revenue\"\n        ],\n        \"eligibility\": \"Distinguish accrual revenue, gross sales, refunds, taxes, fees and cash settlement. Financing, transfers and owner injections are not sales.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"payments\",\n          \"commerce\",\n          \"accounting\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-nonrecurring_revenue_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"gross_profit\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Gross profit\",\n        \"description\": \"Gross profit. Recognized revenue minus cost of goods sold.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Recognized revenue minus cost of goods sold\",\n        \"required_inputs\": [\n          \"Same-period income statement with classified COGS\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-gross_profit-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"gross_margin\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Gross margin\",\n        \"description\": \"Gross margin. Gross profit divided by recognized revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Gross profit divided by recognized revenue\",\n        \"required_inputs\": [\n          \"Positive revenue and consistent accounting basis\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-gross_margin-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"ebitda\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"EBITDA\",\n        \"description\": \"EBITDA. Net income plus income tax expense, interest expense, depreciation and amortization.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Net income plus income tax expense, interest expense, depreciation and amortization\",\n        \"required_inputs\": [\n          \"Complete supported statement line items\",\n          \"no automatic discretionary addbacks\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-ebitda-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"ebitda_margin\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"EBITDA margin\",\n        \"description\": \"EBITDA margin. EBITDA divided by recognized revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"EBITDA divided by recognized revenue\",\n        \"required_inputs\": [\n          \"Positive revenue and supported EBITDA\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-ebitda_margin-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"operating_profit\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Operating profit\",\n        \"description\": \"Operating profit. Revenue minus COGS and operating expenses.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Revenue minus COGS and operating expenses\",\n        \"required_inputs\": [\n          \"Complete same-period operating statement\",\n          \"financing excluded\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-operating_profit-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"operating_margin\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Operating margin\",\n        \"description\": \"Operating margin. Operating profit divided by revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Operating profit divided by revenue\",\n        \"required_inputs\": [\n          \"Positive recognized revenue\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-operating_margin-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_profit\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Net profit\",\n        \"description\": \"Net profit. Total recognized income minus all recognized expenses.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Total recognized income minus all recognized expenses\",\n        \"required_inputs\": [\n          \"Complete statement on declared accounting basis\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_profit-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_margin\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Net margin\",\n        \"description\": \"Net margin. Net profit divided by recognized revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Net profit divided by recognized revenue\",\n        \"required_inputs\": [\n          \"Positive recognized revenue\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_margin-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"free_cash_flow\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Free cash flow\",\n        \"description\": \"Free cash flow. Operating cash flow minus cash capital expenditures.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Operating cash flow minus cash capital expenditures\",\n        \"required_inputs\": [\n          \"Reconciled cash-flow statement or supported cash reconstruction\",\n          \"no debt proceeds\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-free_cash_flow-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"return_on_assets\",\n        \"dimension_key\": \"profitability\",\n        \"label\": \"Return on assets\",\n        \"description\": \"Return on assets. Period net profit divided by mean opening and closing total assets.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Period net profit divided by mean opening and closing total assets\",\n        \"required_inputs\": [\n          \"Positive average assets and complete period\",\n          \"disclose annualization, never apply silently\"\n        ],\n        \"eligibility\": \"Align accounting basis, reporting scope and periods. EBITDA addbacks require itemized justification; never infer profit from deposits alone.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-return_on_assets-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_working_capital\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Net working capital\",\n        \"description\": \"Net working capital. Current assets minus current liabilities.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Current assets minus current liabilities\",\n        \"required_inputs\": [\n          \"Same-date classified balance sheet\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_working_capital-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"receivables_days\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Receivable days\",\n        \"description\": \"Receivable days. Average trade receivables divided by credit sales, multiplied by period days.\",\n        \"unit\": \"days\",\n        \"formula\": \"Average trade receivables divided by credit sales, multiplied by period days\",\n        \"required_inputs\": [\n          \"Positive credit sales\",\n          \"opening/closing receivables\",\n          \"same accounting period\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-receivables_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"payables_days\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Payable days\",\n        \"description\": \"Payable days. Average trade payables divided by credit purchases, multiplied by period days.\",\n        \"unit\": \"days\",\n        \"formula\": \"Average trade payables divided by credit purchases, multiplied by period days\",\n        \"required_inputs\": [\n          \"Positive credit purchases\",\n          \"opening/closing payables\",\n          \"do not substitute COGS silently\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-payables_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"inventory_days\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Inventory days\",\n        \"description\": \"Inventory days. Average inventory divided by COGS, multiplied by period days.\",\n        \"unit\": \"days\",\n        \"formula\": \"Average inventory divided by COGS, multiplied by period days\",\n        \"required_inputs\": [\n          \"Positive COGS\",\n          \"opening/closing comparable inventory valuation\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-inventory_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"cash_conversion_cycle\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Cash conversion cycle\",\n        \"description\": \"Cash conversion cycle. Receivable days plus inventory days minus payable days.\",\n        \"unit\": \"days\",\n        \"formula\": \"Receivable days plus inventory days minus payable days\",\n        \"required_inputs\": [\n          \"All three components available on comparable periods and basis\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-cash_conversion_cycle-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"ar_overdue_share\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Overdue receivables share\",\n        \"description\": \"Overdue receivables share. Overdue collectible trade receivables divided by total collectible trade receivables.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Overdue collectible trade receivables divided by total collectible trade receivables\",\n        \"required_inputs\": [\n          \"Due dates and same-as-of open balances\",\n          \"positive receivables\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-ar_overdue_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"ar_90_plus_share\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Receivables over 90 days past due\",\n        \"description\": \"Receivables over 90 days past due. Receivables more than 90 days past due divided by total trade receivables.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Receivables more than 90 days past due divided by total trade receivables\",\n        \"required_inputs\": [\n          \"Aging based on due date, not invoice date\",\n          \"positive receivables\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-ar_90_plus_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"ap_overdue_share\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Overdue payables share\",\n        \"description\": \"Overdue payables share. Overdue trade payables divided by total trade payables.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Overdue trade payables divided by total trade payables\",\n        \"required_inputs\": [\n          \"Due dates and open balances\",\n          \"positive payables\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-ap_overdue_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"inventory_turnover\",\n        \"dimension_key\": \"working_capital\",\n        \"label\": \"Inventory turnover\",\n        \"description\": \"Inventory turnover. Period COGS divided by average inventory.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Period COGS divided by average inventory\",\n        \"required_inputs\": [\n          \"Positive comparable inventory and supported COGS\"\n        ],\n        \"eligibility\": \"Use dated invoice/bill aging, sales and cost denominators on the same basis. Inventory valuation and credit-sales coverage must be explicit.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"commerce\",\n          \"inventory\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-inventory_turnover-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"total_debt\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Total interest-bearing debt\",\n        \"description\": \"Total interest-bearing debt. Sum outstanding principal of resolved interest-bearing obligations.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum outstanding principal of resolved interest-bearing obligations\",\n        \"required_inputs\": [\n          \"Complete disclosed and supported debt inventory\",\n          \"leases treatment explicit\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-total_debt-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_debt\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Net debt\",\n        \"description\": \"Net debt. Total debt minus unrestricted cash eligible for offset.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Total debt minus unrestricted cash eligible for offset\",\n        \"required_inputs\": [\n          \"Same-as-of currency and consolidated scope\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_debt-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"debt_to_assets\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Debt to assets\",\n        \"description\": \"Debt to assets. Total interest-bearing debt divided by total assets.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Total interest-bearing debt divided by total assets\",\n        \"required_inputs\": [\n          \"Positive total assets and matched scope\",\n          \"excludes non-debt liabilities by definition\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-debt_to_assets-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"debt_to_equity\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Debt to equity\",\n        \"description\": \"Debt to equity. Total debt divided by equity.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Total debt divided by equity\",\n        \"required_inputs\": [\n          \"Positive equity\",\n          \"zero/negative equity produces unavailable ratio and a separate finding\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-debt_to_equity-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_debt_to_ebitda\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Net debt to EBITDA\",\n        \"description\": \"Net debt to EBITDA. Net debt divided by trailing-12-month EBITDA.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Net debt divided by trailing-12-month EBITDA\",\n        \"required_inputs\": [\n          \"Positive EBITDA and complete 12-month period\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_debt_to_ebitda-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"credit_utilization\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Revolving credit utilization\",\n        \"description\": \"Revolving credit utilization. Used revolving principal divided by committed revolving limits.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Used revolving principal divided by committed revolving limits\",\n        \"required_inputs\": [\n          \"Positive known limits\",\n          \"distinguish drawn balances from pending authorizations\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-credit_utilization-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"short_term_debt_share\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Debt due within one year\",\n        \"description\": \"Debt due within one year. Principal contractually due within 365 days divided by total debt.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Principal contractually due within 365 days divided by total debt\",\n        \"required_inputs\": [\n          \"Complete maturity schedule and positive total debt\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-short_term_debt_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"debt_maturing_90d\",\n        \"dimension_key\": \"leverage\",\n        \"label\": \"Debt maturing within 90 days\",\n        \"description\": \"Debt maturing within 90 days. Sum principal contractually due within the next 90 days.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum principal contractually due within the next 90 days\",\n        \"required_inputs\": [\n          \"Complete maturity schedule including balloon payments\"\n        ],\n        \"eligibility\": \"Reconcile observed debt payments to disclosed and entitled bureau obligations. Unknown balances and undisclosed obligations are not zero.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-debt_maturing_90d-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"dscr\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Cash-flow debt-service coverage\",\n        \"description\": \"Cash-flow debt-service coverage. Eligible cash flow available for debt service divided by existing plus proposed contractual debt service.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Eligible cash flow available for debt service divided by existing plus proposed contractual debt service\",\n        \"required_inputs\": [\n          \"Complete eligible cash-flow bridge and existing/proposed principal, interest and mandatory debt fees for the same period\",\n          \"positive debt service\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-dscr-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"fixed_charge_coverage\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Fixed-charge coverage\",\n        \"description\": \"Fixed-charge coverage. Cash flow before the specified fixed charges divided by those fixed charges.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Cash flow before the specified fixed charges divided by those fixed charges\",\n        \"required_inputs\": [\n          \"Explicit non-overlapping charge set, including leases where applicable\",\n          \"positive charges\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-fixed_charge_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"interest_coverage\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Interest coverage\",\n        \"description\": \"Interest coverage. EBIT divided by interest expense.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"EBIT divided by interest expense\",\n        \"required_inputs\": [\n          \"Supported same-period EBIT and positive interest expense\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-interest_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"existing_debt_service\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Existing debt service\",\n        \"description\": \"Existing debt service. Sum existing contractual principal, interest and mandatory debt fees over the assessment window.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum existing contractual principal, interest and mandatory debt fees over the assessment window\",\n        \"required_inputs\": [\n          \"Complete schedule\",\n          \"variable and balloon assumptions explicit\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-existing_debt_service-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"proposed_debt_service\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Proposed debt service\",\n        \"description\": \"Proposed debt service. Sum proposed contractual principal, interest and mandatory debt fees over the assessment window.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum proposed contractual principal, interest and mandatory debt fees over the assessment window\",\n        \"required_inputs\": [\n          \"Exact proposed product terms, amount, rate, amortization, fees and timing\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-proposed_debt_service-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"total_debt_service\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Total debt service\",\n        \"description\": \"Total debt service. Existing plus proposed debt service with duplicates removed.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Existing plus proposed debt service with duplicates removed\",\n        \"required_inputs\": [\n          \"Comparable complete schedules and shared currency\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-total_debt_service-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"residual_cash_after_debt\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Cash after debt service\",\n        \"description\": \"Cash after debt service. Eligible cash available for debt service minus total debt service.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Eligible cash available for debt service minus total debt service\",\n        \"required_inputs\": [\n          \"Supported cash-flow bridge and complete obligations\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-residual_cash_after_debt-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"debt_service_headroom\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Debt-service headroom\",\n        \"description\": \"Debt-service headroom. Eligible cash flow divided by institution DSCR requirement, minus total debt service.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Eligible cash flow divided by institution DSCR requirement, minus total debt service\",\n        \"required_inputs\": [\n          \"Positive institution-approved DSCR threshold and complete components\",\n          \"analytical capacity, not an offer\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-debt_service_headroom-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"debt_payment_to_receipts\",\n        \"dimension_key\": \"repayment_capacity\",\n        \"label\": \"Debt payments to operating receipts\",\n        \"description\": \"Debt payments to operating receipts. Observed debt payments divided by operating cash receipts.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Observed debt payments divided by operating cash receipts\",\n        \"required_inputs\": [\n          \"Positive receipts\",\n          \"payments classified with evidence\",\n          \"not a substitute for DSCR\"\n        ],\n        \"eligibility\": \"Use complete existing and proposed debt schedules, eligible cash flow and consistent periods. Include balloon and variable-payment terms.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"lender\",\n          \"application\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-debt_payment_to_receipts-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"top_customer_share\",\n        \"dimension_key\": \"concentration\",\n        \"label\": \"Largest customer share\",\n        \"description\": \"Largest customer share. Largest resolved customer revenue divided by covered customer revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Largest resolved customer revenue divided by covered customer revenue\",\n        \"required_inputs\": [\n          \"Positive covered revenue and disclosed unknown-counterparty share\"\n        ],\n        \"eligibility\": \"Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"banking\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-top_customer_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"top_five_customer_share\",\n        \"dimension_key\": \"concentration\",\n        \"label\": \"Top five customer share\",\n        \"description\": \"Top five customer share. Revenue of five largest resolved customers divided by covered customer revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Revenue of five largest resolved customers divided by covered customer revenue\",\n        \"required_inputs\": [\n          \"Positive covered revenue\",\n          \"fewer than five uses all resolved customers\"\n        ],\n        \"eligibility\": \"Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"banking\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-top_five_customer_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"top_supplier_share\",\n        \"dimension_key\": \"concentration\",\n        \"label\": \"Largest supplier share\",\n        \"description\": \"Largest supplier share. Largest resolved supplier spend divided by covered supplier spend.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Largest resolved supplier spend divided by covered supplier spend\",\n        \"required_inputs\": [\n          \"Positive supplier spend and explicit coverage\"\n        ],\n        \"eligibility\": \"Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"banking\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-top_supplier_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"top_channel_share\",\n        \"dimension_key\": \"concentration\",\n        \"label\": \"Largest sales channel share\",\n        \"description\": \"Largest sales channel share. Largest channel revenue divided by total covered channel revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Largest channel revenue divided by total covered channel revenue\",\n        \"required_inputs\": [\n          \"Positive channel revenue\",\n          \"no duplicated cross-platform sales\"\n        ],\n        \"eligibility\": \"Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"banking\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-top_channel_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"customer_hhi\",\n        \"dimension_key\": \"concentration\",\n        \"label\": \"Customer concentration index\",\n        \"description\": \"Customer concentration index. Sum squared customer revenue fractions on a 0-to-1 scale.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Sum squared customer revenue fractions on a 0-to-1 scale\",\n        \"required_inputs\": [\n          \"Complete resolved customer allocation or explicit partial coverage\",\n          \"unknown is not one customer\"\n        ],\n        \"eligibility\": \"Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"banking\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-customer_hhi-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"income_source_hhi\",\n        \"dimension_key\": \"concentration\",\n        \"label\": \"Income-source concentration index\",\n        \"description\": \"Income-source concentration index. Sum squared verified income-source fractions on a 0-to-1 scale.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Sum squared verified income-source fractions on a 0-to-1 scale\",\n        \"required_inputs\": [\n          \"Positive verified income and resolved income streams\"\n        ],\n        \"eligibility\": \"Aggregate only resolved counterparties within the authorized borrower scope. Unknown counterparties remain a disclosed unallocated bucket.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"banking\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-income_source_hhi-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"collateral_ltv\",\n        \"dimension_key\": \"collateral\",\n        \"label\": \"Loan to collateral value\",\n        \"description\": \"Loan to collateral value. Assessed facility exposure divided by supported collateral valuation.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Assessed facility exposure divided by supported collateral valuation\",\n        \"required_inputs\": [\n          \"Positive eligible valuation with valuation date, currency and ownership\"\n        ],\n        \"eligibility\": \"Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"collateral\",\n          \"registry\",\n          \"lender\",\n          \"accounting\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-collateral_ltv-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"combined_ltv\",\n        \"dimension_key\": \"collateral\",\n        \"label\": \"Combined loan to value\",\n        \"description\": \"Combined loan to value. All known secured claims including proposed exposure divided by collateral value.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"All known secured claims including proposed exposure divided by collateral value\",\n        \"required_inputs\": [\n          \"Positive valuation and complete supported lien/priority inventory\"\n        ],\n        \"eligibility\": \"Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"collateral\",\n          \"registry\",\n          \"lender\",\n          \"accounting\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-combined_ltv-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"collateral_coverage\",\n        \"dimension_key\": \"collateral\",\n        \"label\": \"Collateral coverage\",\n        \"description\": \"Collateral coverage. Eligible realizable collateral value after approved haircuts divided by secured exposure.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Eligible realizable collateral value after approved haircuts divided by secured exposure\",\n        \"required_inputs\": [\n          \"Positive exposure, documented haircut and enforceability assumptions\"\n        ],\n        \"eligibility\": \"Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"collateral\",\n          \"registry\",\n          \"lender\",\n          \"accounting\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-collateral_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"eligible_receivables\",\n        \"dimension_key\": \"collateral\",\n        \"label\": \"Eligible borrowing-base receivables\",\n        \"description\": \"Eligible borrowing-base receivables. Sum receivables meeting institution eligibility and concentration rules.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum receivables meeting institution eligibility and concentration rules\",\n        \"required_inputs\": [\n          \"Versioned borrowing-base rules, aging, dilution and prior-pledge evidence\"\n        ],\n        \"eligibility\": \"Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"collateral\",\n          \"registry\",\n          \"lender\",\n          \"accounting\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-eligible_receivables-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"collateral_haircut_ratio\",\n        \"dimension_key\": \"collateral\",\n        \"label\": \"Collateral haircut\",\n        \"description\": \"Collateral haircut. Gross eligible valuation minus supported realizable valuation, divided by gross valuation.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Gross eligible valuation minus supported realizable valuation, divided by gross valuation\",\n        \"required_inputs\": [\n          \"Positive valuation and disclosed approved valuation/haircut method\"\n        ],\n        \"eligibility\": \"Require current valuations, ownership, lien priority and permitted reports. This is collateral evidence, not a legal opinion or enforceability guarantee.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"collateral\",\n          \"registry\",\n          \"lender\",\n          \"accounting\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-collateral_haircut_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"reconciliation_break_share\",\n        \"dimension_key\": \"fraud_and_consistency\",\n        \"label\": \"Unreconciled value share\",\n        \"description\": \"Unreconciled value share. Unmatched absolute value divided by eligible source-side absolute value.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Unmatched absolute value divided by eligible source-side absolute value\",\n        \"required_inputs\": [\n          \"Comparable transaction populations, period, currency and matching tolerance\"\n        ],\n        \"eligibility\": \"Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"documents\",\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"identity\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-reconciliation_break_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"duplicate_transaction_share\",\n        \"dimension_key\": \"fraud_and_consistency\",\n        \"label\": \"Duplicate transaction share\",\n        \"description\": \"Duplicate transaction share. Confirmed duplicate records divided by examined records before deduplication.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Confirmed duplicate records divided by examined records before deduplication\",\n        \"required_inputs\": [\n          \"Nonzero examined records and documented duplicate criteria\"\n        ],\n        \"eligibility\": \"Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"documents\",\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"identity\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-duplicate_transaction_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"document_contradiction_count\",\n        \"dimension_key\": \"fraud_and_consistency\",\n        \"label\": \"Document contradictions\",\n        \"description\": \"Document contradictions. Count distinct supported inconsistencies between comparable document fields.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count distinct supported inconsistencies between comparable document fields\",\n        \"required_inputs\": [\n          \"Document-level findings with page/field evidence\",\n          \"a signal is not proof of fraud\"\n        ],\n        \"eligibility\": \"Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"documents\",\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"identity\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-document_contradiction_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"identity_mismatch_count\",\n        \"dimension_key\": \"fraud_and_consistency\",\n        \"label\": \"Unresolved identity mismatches\",\n        \"description\": \"Unresolved identity mismatches. Count distinct unresolved mismatches across supported borrower identity attributes.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count distinct unresolved mismatches across supported borrower identity attributes\",\n        \"required_inputs\": [\n          \"Comparable identity sources\",\n          \"absent attributes are missing, not mismatched\"\n        ],\n        \"eligibility\": \"Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"documents\",\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"identity\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-identity_mismatch_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"declared_income_gap_ratio\",\n        \"dimension_key\": \"fraud_and_consistency\",\n        \"label\": \"Declared-to-verified income gap\",\n        \"description\": \"Declared-to-verified income gap. Declared income minus verified comparable income, divided by verified income.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Declared income minus verified comparable income, divided by verified income\",\n        \"required_inputs\": [\n          \"Positive verified income\",\n          \"same gross/net basis, currency, scope and period\"\n        ],\n        \"eligibility\": \"Signals identify evidence needing review; no signal or score alone confirms fraud. Preserve document locations and conflicting values.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"documents\",\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"identity\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-declared_income_gap_ratio-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"verified_gross_monthly_income\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Verified gross monthly income\",\n        \"description\": \"Verified gross monthly income. Supported recurring pretax income normalized to one calendar month.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Supported recurring pretax income normalized to one calendar month\",\n        \"required_inputs\": [\n          \"Payroll, tax or supported gross-income evidence\",\n          \"net deposits alone do not establish gross income\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-verified_gross_monthly_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"verified_net_monthly_income\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Verified net monthly income\",\n        \"description\": \"Verified net monthly income. Supported recurring after-deduction income normalized to one calendar month.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Supported recurring after-deduction income normalized to one calendar month\",\n        \"required_inputs\": [\n          \"Verified income streams, recurrence and calendar conversion\",\n          \"transfers excluded\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-verified_net_monthly_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"debt_to_income\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Debt to income\",\n        \"description\": \"Debt to income. Existing plus proposed required monthly debt payments divided by verified gross monthly income.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Existing plus proposed required monthly debt payments divided by verified gross monthly income\",\n        \"required_inputs\": [\n          \"Positive verified gross income and complete monthly obligations\",\n          \"housing treatment explicit\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-debt_to_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"housing_to_income\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Housing cost to income\",\n        \"description\": \"Housing cost to income. Required monthly housing cost divided by verified gross monthly income.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Required monthly housing cost divided by verified gross monthly income\",\n        \"required_inputs\": [\n          \"Positive gross income\",\n          \"rent/mortgage/tax/insurance/components explicit\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-housing_to_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"essential_monthly_spend\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Essential monthly expenditure\",\n        \"description\": \"Essential monthly expenditure. Sum evidenced essential non-debt spending normalized to one month.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum evidenced essential non-debt spending normalized to one month\",\n        \"required_inputs\": [\n          \"Versioned institution expense taxonomy\",\n          \"exclude sensitive merchant categories and avoid housing/debt duplication\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-essential_monthly_spend-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"residual_monthly_income\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Residual monthly income\",\n        \"description\": \"Residual monthly income. Verified net income minus essential spending, housing and existing/proposed debt payments.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Verified net income minus essential spending, housing and existing/proposed debt payments\",\n        \"required_inputs\": [\n          \"Complete non-overlapping monthly expense/obligation set\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-residual_monthly_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"payment_to_income\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Proposed payment to income\",\n        \"description\": \"Proposed payment to income. Proposed required monthly payment divided by verified gross monthly income.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Proposed required monthly payment divided by verified gross monthly income\",\n        \"required_inputs\": [\n          \"Positive verified gross income and exact proposed terms\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-payment_to_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"liquid_reserve_months\",\n        \"dimension_key\": \"income_and_affordability\",\n        \"label\": \"Liquid reserve months\",\n        \"description\": \"Liquid reserve months. Unrestricted liquid funds divided by required monthly outgoings.\",\n        \"unit\": \"months\",\n        \"formula\": \"Unrestricted liquid funds divided by required monthly outgoings\",\n        \"required_inputs\": [\n          \"Positive complete essential/housing/debt outgoings\",\n          \"verified liquid balances\"\n        ],\n        \"eligibility\": \"Distinguish verified gross income, net deposits and modeled estimates. Include housing, essential spending, obligations and proposed payments without counting them twice.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"credit_bureau\",\n          \"application\",\n          \"documents\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-liquid_reserve_months-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"income_source_count\",\n        \"dimension_key\": \"income_stability\",\n        \"label\": \"Verified income sources\",\n        \"description\": \"Verified income sources. Count distinct supported recurring income streams.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count distinct supported recurring income streams\",\n        \"required_inputs\": [\n          \"Deduplicated income identities and complete observed window\"\n        ],\n        \"eligibility\": \"Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-income_source_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"income_volatility\",\n        \"dimension_key\": \"income_stability\",\n        \"label\": \"Monthly income volatility\",\n        \"description\": \"Monthly income volatility. Population standard deviation of complete monthly verified income divided by mean.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Population standard deviation of complete monthly verified income divided by mean\",\n        \"required_inputs\": [\n          \"At least six complete months\",\n          \"positive mean\",\n          \"gross/net basis fixed\"\n        ],\n        \"eligibility\": \"Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-income_volatility-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"income_growth_yoy\",\n        \"dimension_key\": \"income_stability\",\n        \"label\": \"Income growth year over year\",\n        \"description\": \"Income growth year over year. Current verified income minus comparable prior-year income, divided by prior-year income.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current verified income minus comparable prior-year income, divided by prior-year income\",\n        \"required_inputs\": [\n          \"Positive prior income\",\n          \"same income basis and comparable periods\"\n        ],\n        \"eligibility\": \"Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-income_growth_yoy-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"days_since_last_income\",\n        \"dimension_key\": \"income_stability\",\n        \"label\": \"Days since last income\",\n        \"description\": \"Days since last income. Days from most recent verified recurring income receipt to assessment date.\",\n        \"unit\": \"days\",\n        \"formula\": \"Days from most recent verified recurring income receipt to assessment date\",\n        \"required_inputs\": [\n          \"Supported receipt and assessment date\",\n          \"missing history is unavailable\"\n        ],\n        \"eligibility\": \"Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-days_since_last_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"income_interruption_days\",\n        \"dimension_key\": \"income_stability\",\n        \"label\": \"Income interruption\",\n        \"description\": \"Income interruption. Days past the next expected income date without a matched receipt.\",\n        \"unit\": \"days\",\n        \"formula\": \"Days past the next expected income date without a matched receipt\",\n        \"required_inputs\": [\n          \"Documented payment cadence, complete account coverage and nonnegative elapsed interval\"\n        ],\n        \"eligibility\": \"Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-income_interruption_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"income_continuity_share\",\n        \"dimension_key\": \"income_stability\",\n        \"label\": \"Income continuity\",\n        \"description\": \"Income continuity. Expected income periods with a supported receipt divided by elapsed expected periods.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Expected income periods with a supported receipt divided by elapsed expected periods\",\n        \"required_inputs\": [\n          \"Explicit expected cadence and nonzero elapsed periods\",\n          \"missing account coverage cannot count as interruption\"\n        ],\n        \"eligibility\": \"Analyze authorized employment, self-employment and other recurring income streams separately. Income type is not itself an adverse risk reason.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"banking\",\n          \"tax\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-income_continuity_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"nsf_event_count\",\n        \"dimension_key\": \"payment_behavior\",\n        \"label\": \"Insufficient-funds events\",\n        \"description\": \"Insufficient-funds events. Count distinct supported returned-payment events caused by insufficient funds.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count distinct supported returned-payment events caused by insufficient funds\",\n        \"required_inputs\": [\n          \"Return reason evidence\",\n          \"deduplicate event and related fee records\"\n        ],\n        \"eligibility\": \"Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"credit_bureau\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-nsf_event_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"overdraft_days\",\n        \"dimension_key\": \"payment_behavior\",\n        \"label\": \"Overdraft days\",\n        \"description\": \"Overdraft days. Count covered days with a negative balance in any assessed account.\",\n        \"unit\": \"days\",\n        \"formula\": \"Count covered days with a negative balance in any assessed account\",\n        \"required_inputs\": [\n          \"Complete per-account daily balances\",\n          \"union calendar days, not sum across accounts\"\n        ],\n        \"eligibility\": \"Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"credit_bureau\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-overdraft_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"returned_payment_amount\",\n        \"dimension_key\": \"payment_behavior\",\n        \"label\": \"Returned payment amount\",\n        \"description\": \"Returned payment amount. Sum principal amounts of distinct returned payment events.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum principal amounts of distinct returned payment events\",\n        \"required_inputs\": [\n          \"Return reason, direction and event linkage\",\n          \"exclude duplicate fees\"\n        ],\n        \"eligibility\": \"Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"credit_bureau\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-returned_payment_amount-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"delinquent_obligation_count\",\n        \"dimension_key\": \"payment_behavior\",\n        \"label\": \"Delinquent obligations\",\n        \"description\": \"Delinquent obligations. Count verified obligations past due at the assessment date.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count verified obligations past due at the assessment date\",\n        \"required_inputs\": [\n          \"Due dates, payment allocation and complete supported debt schedule\"\n        ],\n        \"eligibility\": \"Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"credit_bureau\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-delinquent_obligation_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"maximum_days_past_due\",\n        \"dimension_key\": \"payment_behavior\",\n        \"label\": \"Maximum days past due\",\n        \"description\": \"Maximum days past due. Maximum verified days past due among assessed obligations.\",\n        \"unit\": \"days\",\n        \"formula\": \"Maximum verified days past due among assessed obligations\",\n        \"required_inputs\": [\n          \"Known contractual dues and allocated repayments\",\n          \"no delinquency inferred from missing feed\"\n        ],\n        \"eligibility\": \"Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"credit_bureau\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-maximum_days_past_due-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"on_time_payment_share\",\n        \"dimension_key\": \"payment_behavior\",\n        \"label\": \"On-time payment share\",\n        \"description\": \"On-time payment share. Obligations paid by contractual due date divided by elapsed eligible obligations.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Obligations paid by contractual due date divided by elapsed eligible obligations\",\n        \"required_inputs\": [\n          \"Complete due/payment pairs and positive eligible count\"\n        ],\n        \"eligibility\": \"Deduplicate returns and their fees. Report payment outcomes and timing rather than inferring missed payments from missing source coverage.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"credit_bureau\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-on_time_payment_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"open_credit_obligation_count\",\n        \"dimension_key\": \"credit_history\",\n        \"label\": \"Open credit obligations\",\n        \"description\": \"Open credit obligations. Count resolved open obligations in entitled credit evidence.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count resolved open obligations in entitled credit evidence\",\n        \"required_inputs\": [\n          \"Current permitted report or lender records\",\n          \"duplicate trades resolved\"\n        ],\n        \"eligibility\": \"Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-open_credit_obligation_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"bureau_utilization\",\n        \"dimension_key\": \"credit_history\",\n        \"label\": \"Reported revolving utilization\",\n        \"description\": \"Reported revolving utilization. Reported used revolving balances divided by reported limits.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Reported used revolving balances divided by reported limits\",\n        \"required_inputs\": [\n          \"Same-report-date positive limits\",\n          \"disclose bureau coverage and currency\"\n        ],\n        \"eligibility\": \"Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-bureau_utilization-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"recent_credit_inquiry_count\",\n        \"dimension_key\": \"credit_history\",\n        \"label\": \"Recent credit inquiries\",\n        \"description\": \"Recent credit inquiries. Count supported inquiry events in the requested window.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count supported inquiry events in the requested window\",\n        \"required_inputs\": [\n          \"Entitled report\",\n          \"group duplicates/rate-shopping only under disclosed rules\"\n        ],\n        \"eligibility\": \"Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-recent_credit_inquiry_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"severe_delinquency_count\",\n        \"dimension_key\": \"credit_history\",\n        \"label\": \"Severe delinquency events\",\n        \"description\": \"Severe delinquency events. Count reported obligations meeting institution-defined severe-delinquency criteria.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count reported obligations meeting institution-defined severe-delinquency criteria\",\n        \"required_inputs\": [\n          \"Current entitled report, criterion version and observation window\"\n        ],\n        \"eligibility\": \"Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-severe_delinquency_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"public_record_event_count\",\n        \"dimension_key\": \"credit_history\",\n        \"label\": \"Relevant public-record events\",\n        \"description\": \"Relevant public-record events. Count supported relevant insolvency/judgment events in entitled evidence.\",\n        \"unit\": \"count\",\n        \"formula\": \"Count supported relevant insolvency/judgment events in entitled evidence\",\n        \"required_inputs\": [\n          \"Verified matching, jurisdiction, record date and status\",\n          \"disputed records remain flagged\"\n        ],\n        \"eligibility\": \"Use entitled credit reports with source, score model, pull time and coverage. No matched report is not a clean credit history.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"credit_bureau\",\n          \"lender\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-public_record_event_count-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"gross_sales\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Gross sales\",\n        \"description\": \"Gross sales. Sum eligible sales before refunds and discounts, excluding taxes.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum eligible sales before refunds and discounts, excluding taxes\",\n        \"required_inputs\": [\n          \"Complete store/processor scope and consistent order versus settlement basis\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-gross_sales-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_sales\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Net sales\",\n        \"description\": \"Net sales. Gross sales minus discounts, cancellations and refunds.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Gross sales minus discounts, cancellations and refunds\",\n        \"required_inputs\": [\n          \"Same sales cohort and recognition window\",\n          \"taxes excluded\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_sales-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"average_order_value\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Average order value\",\n        \"description\": \"Average order value. Net eligible order sales divided by completed noncancelled order count.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Net eligible order sales divided by completed noncancelled order count\",\n        \"required_inputs\": [\n          \"Positive comparable order count\",\n          \"order-based rather than settlement data\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-average_order_value-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"repeat_customer_share\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Repeat customer share\",\n        \"description\": \"Repeat customer share. Customers with more than one completed purchase divided by purchasing customers.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Customers with more than one completed purchase divided by purchasing customers\",\n        \"required_inputs\": [\n          \"Stable authorized customer IDs and positive cohort count\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-repeat_customer_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"monthly_recurring_revenue\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Monthly recurring revenue\",\n        \"description\": \"Monthly recurring revenue. Contracted recurring subscription revenue normalized to a month.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Contracted recurring subscription revenue normalized to a month\",\n        \"required_inputs\": [\n          \"Active recurring subscriptions, currency and documented usage/discount treatment\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-monthly_recurring_revenue-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"gross_revenue_retention\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Gross revenue retention\",\n        \"description\": \"Gross revenue retention. Opening recurring revenue minus churn and contraction divided by opening recurring revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Opening recurring revenue minus churn and contraction divided by opening recurring revenue\",\n        \"required_inputs\": [\n          \"Positive opening cohort revenue\",\n          \"expansion excluded\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-gross_revenue_retention-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"net_revenue_retention\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Net revenue retention\",\n        \"description\": \"Net revenue retention. Opening recurring revenue minus churn/contraction plus expansion divided by opening recurring revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Opening recurring revenue minus churn/contraction plus expansion divided by opening recurring revenue\",\n        \"required_inputs\": [\n          \"Same opening customer cohort and positive starting revenue\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-net_revenue_retention-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"settlement_delay_days\",\n        \"dimension_key\": \"commerce_performance\",\n        \"label\": \"Settlement delay\",\n        \"description\": \"Settlement delay. Amount-weighted days from captured sale to corresponding bank settlement.\",\n        \"unit\": \"days\",\n        \"formula\": \"Amount-weighted days from captured sale to corresponding bank settlement\",\n        \"required_inputs\": [\n          \"Matched eligible captures and settlements\",\n          \"positive settled value\"\n        ],\n        \"eligibility\": \"Keep store/platform coverage, settlement lags and currency explicit. Cohort metrics require stable customer identifiers and a complete comparable cohort.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payments\",\n          \"commerce\",\n          \"subscriptions\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-settlement_delay_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"payroll_burden_share\",\n        \"dimension_key\": \"operating_resilience\",\n        \"label\": \"Payroll burden\",\n        \"description\": \"Payroll burden. Payroll cash cost including employer costs divided by verified revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Payroll cash cost including employer costs divided by verified revenue\",\n        \"required_inputs\": [\n          \"Positive comparable revenue\",\n          \"supported payroll records\"\n        ],\n        \"eligibility\": \"Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"inventory\",\n          \"accounting\",\n          \"commerce\",\n          \"logistics\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-payroll_burden_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"payroll_growth_yoy\",\n        \"dimension_key\": \"operating_resilience\",\n        \"label\": \"Payroll growth year over year\",\n        \"description\": \"Payroll growth year over year. Current payroll cost minus prior-year cost divided by prior-year cost.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current payroll cost minus prior-year cost divided by prior-year cost\",\n        \"required_inputs\": [\n          \"Comparable periods\",\n          \"positive prior payroll\",\n          \"no employee protected attributes\"\n        ],\n        \"eligibility\": \"Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"inventory\",\n          \"accounting\",\n          \"commerce\",\n          \"logistics\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-payroll_growth_yoy-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"inventory_stockout_share\",\n        \"dimension_key\": \"operating_resilience\",\n        \"label\": \"Inventory stockout share\",\n        \"description\": \"Inventory stockout share. Observed sellable item-days out of stock divided by observed eligible item-days.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Observed sellable item-days out of stock divided by observed eligible item-days\",\n        \"required_inputs\": [\n          \"Inventory history and eligible active-item scope\",\n          \"positive coverage\"\n        ],\n        \"eligibility\": \"Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"inventory\",\n          \"accounting\",\n          \"commerce\",\n          \"logistics\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-inventory_stockout_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"fulfillment_on_time_share\",\n        \"dimension_key\": \"operating_resilience\",\n        \"label\": \"On-time fulfillment share\",\n        \"description\": \"On-time fulfillment share. Fulfilled eligible orders on/before promised date divided by eligible fulfilled orders.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Fulfilled eligible orders on/before promised date divided by eligible fulfilled orders\",\n        \"required_inputs\": [\n          \"Complete order and shipment dates\",\n          \"positive eligible count\"\n        ],\n        \"eligibility\": \"Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"inventory\",\n          \"accounting\",\n          \"commerce\",\n          \"logistics\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-fulfillment_on_time_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"supplier_payment_delay_days\",\n        \"dimension_key\": \"operating_resilience\",\n        \"label\": \"Supplier payment delay\",\n        \"description\": \"Supplier payment delay. Amount-weighted days paid after contractual due date for settled trade bills.\",\n        \"unit\": \"days\",\n        \"formula\": \"Amount-weighted days paid after contractual due date for settled trade bills\",\n        \"required_inputs\": [\n          \"Matched bill/payment allocations\",\n          \"positive paid amounts\",\n          \"early payments recorded as zero delay\"\n        ],\n        \"eligibility\": \"Measure payroll, supplier, inventory and fulfillment exposure from operational evidence. Do not infer management quality from personal traits or social media.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"payroll\",\n          \"inventory\",\n          \"accounting\",\n          \"commerce\",\n          \"logistics\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-supplier_payment_delay_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"tax_liability\",\n        \"dimension_key\": \"tax_and_compliance\",\n        \"label\": \"Reported tax liability\",\n        \"description\": \"Reported tax liability. Sum supported outstanding assessed tax obligations at the assessment date.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum supported outstanding assessed tax obligations at the assessment date\",\n        \"required_inputs\": [\n          \"Entitled tax/statement evidence with assessed versus estimated status\"\n        ],\n        \"eligibility\": \"Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"tax\",\n          \"accounting\",\n          \"registry\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-tax_liability-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"tax_overdue_amount\",\n        \"dimension_key\": \"tax_and_compliance\",\n        \"label\": \"Overdue tax amount\",\n        \"description\": \"Overdue tax amount. Sum supported unpaid tax obligations past their due dates.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum supported unpaid tax obligations past their due dates\",\n        \"required_inputs\": [\n          \"Actual due dates and paid allocations\",\n          \"estimated taxes not treated as arrears\"\n        ],\n        \"eligibility\": \"Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"tax\",\n          \"accounting\",\n          \"registry\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-tax_overdue_amount-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"tax_payment_coverage\",\n        \"dimension_key\": \"tax_and_compliance\",\n        \"label\": \"Tax payment coverage\",\n        \"description\": \"Tax payment coverage. Payments allocated to due assessed taxes divided by due assessed taxes.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Payments allocated to due assessed taxes divided by due assessed taxes\",\n        \"required_inputs\": [\n          \"Positive due taxes and matched same-period payments\"\n        ],\n        \"eligibility\": \"Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"tax\",\n          \"accounting\",\n          \"registry\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-tax_payment_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"filing_coverage\",\n        \"dimension_key\": \"tax_and_compliance\",\n        \"label\": \"Filing evidence coverage\",\n        \"description\": \"Filing evidence coverage. Required filings with supported filing evidence divided by known required filings.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Required filings with supported filing evidence divided by known required filings\",\n        \"required_inputs\": [\n          \"Explicit jurisdiction and obligation inventory\",\n          \"positive required count\",\n          \"not a compliance opinion\"\n        ],\n        \"eligibility\": \"Separate declared, filed, assessed and paid amounts and their periods. Registration or filing evidence is not a legal or tax-compliance certification.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"tax\",\n          \"accounting\",\n          \"registry\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-filing_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"bank_accounting_match_share\",\n        \"dimension_key\": \"financial_reporting_quality\",\n        \"label\": \"Bank-to-books match share\",\n        \"description\": \"Bank-to-books match share. Matched bank-side absolute value divided by eligible bank-side absolute value.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Matched bank-side absolute value divided by eligible bank-side absolute value\",\n        \"required_inputs\": [\n          \"Same currency/period\",\n          \"positive eligible value\",\n          \"timing/FX/fees reconciled explicitly\"\n        ],\n        \"eligibility\": \"Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-bank_accounting_match_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"statement_balance_discrepancy\",\n        \"dimension_key\": \"financial_reporting_quality\",\n        \"label\": \"Balance-sheet discrepancy\",\n        \"description\": \"Balance-sheet discrepancy. Assets minus liabilities minus equity.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Assets minus liabilities minus equity\",\n        \"required_inputs\": [\n          \"Same-date complete statement and currency\"\n        ],\n        \"eligibility\": \"Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-statement_balance_discrepancy-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"material_adjustment_share\",\n        \"dimension_key\": \"financial_reporting_quality\",\n        \"label\": \"Material accounting adjustments\",\n        \"description\": \"Material accounting adjustments. Absolute supported adjustment value divided by absolute pre-adjustment eligible activity.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Absolute supported adjustment value divided by absolute pre-adjustment eligible activity\",\n        \"required_inputs\": [\n          \"Versioned materiality rule\",\n          \"positive activity\",\n          \"journal reversals handled\"\n        ],\n        \"eligibility\": \"Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-material_adjustment_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"books_closing_lag_days\",\n        \"dimension_key\": \"financial_reporting_quality\",\n        \"label\": \"Books closing lag\",\n        \"description\": \"Books closing lag. Days between accounting period end and supported closing/finalization date.\",\n        \"unit\": \"days\",\n        \"formula\": \"Days between accounting period end and supported closing/finalization date\",\n        \"required_inputs\": [\n          \"Both dates\",\n          \"draft or unknown close state yields unavailable\"\n        ],\n        \"eligibility\": \"Measure statement coverage, closing lag, reconciliations and material adjustments; missing accounting records are not fabricated statements.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"accounting\",\n          \"banking\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-books_closing_lag_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"observed_account_coverage\",\n        \"dimension_key\": \"data_quality\",\n        \"label\": \"Declared-account coverage\",\n        \"description\": \"Declared-account coverage. Assessed declared accounts divided by known declared relevant accounts.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Assessed declared accounts divided by known declared relevant accounts\",\n        \"required_inputs\": [\n          \"Explicit declared account inventory and positive denominator\",\n          \"not all external accounts\"\n        ],\n        \"eligibility\": \"Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"identity\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-observed_account_coverage-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"covered_history_days\",\n        \"dimension_key\": \"data_quality\",\n        \"label\": \"Covered history\",\n        \"description\": \"Covered history. Count fully covered days across the required source/account set.\",\n        \"unit\": \"days\",\n        \"formula\": \"Count fully covered days across the required source/account set\",\n        \"required_inputs\": [\n          \"Required source roster and gap-aware observed intervals\"\n        ],\n        \"eligibility\": \"Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"identity\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-covered_history_days-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"stale_source_share\",\n        \"dimension_key\": \"data_quality\",\n        \"label\": \"Stale required sources\",\n        \"description\": \"Stale required sources. Required sources exceeding configured freshness tolerance divided by required sources.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Required sources exceeding configured freshness tolerance divided by required sources\",\n        \"required_inputs\": [\n          \"Nonzero required-source count\",\n          \"source-specific freshness policy\"\n        ],\n        \"eligibility\": \"Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"identity\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-stale_source_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"unclassified_transaction_share\",\n        \"dimension_key\": \"data_quality\",\n        \"label\": \"Unclassified transactions\",\n        \"description\": \"Unclassified transactions. Unclassified eligible transaction count divided by eligible transaction count.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Unclassified eligible transaction count divided by eligible transaction count\",\n        \"required_inputs\": [\n          \"Nonzero posted deduplicated population and versioned classification taxonomy\"\n        ],\n        \"eligibility\": \"Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"identity\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-unclassified_transaction_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"reconciled_value_share\",\n        \"dimension_key\": \"data_quality\",\n        \"label\": \"Reconciled financial value\",\n        \"description\": \"Reconciled financial value. Reconciled eligible absolute amount divided by eligible absolute amount.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Reconciled eligible absolute amount divided by eligible absolute amount\",\n        \"required_inputs\": [\n          \"Same comparable matching universe and positive denominator\"\n        ],\n        \"eligibility\": \"Describe observed coverage against declared/required sources; never imply visibility into all of a borrower's external accounts.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payments\",\n          \"commerce\",\n          \"payroll\",\n          \"identity\",\n          \"documents\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-reconciled_value_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"projected_minimum_cash\",\n        \"dimension_key\": \"forecasting_and_stress\",\n        \"label\": \"Projected minimum cash\",\n        \"description\": \"Projected minimum cash. Minimum closing cash in the defined forecast horizon.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Minimum closing cash in the defined forecast horizon\",\n        \"required_inputs\": [\n          \"Versioned model or deterministic projection, explicit assumptions, horizon and complete starting balances\"\n        ],\n        \"eligibility\": \"Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"application\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-projected_minimum_cash-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"stress_dscr\",\n        \"dimension_key\": \"forecasting_and_stress\",\n        \"label\": \"Stressed debt-service coverage\",\n        \"description\": \"Stressed debt-service coverage. Scenario eligible cash flow divided by scenario existing/proposed debt service.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Scenario eligible cash flow divided by scenario existing/proposed debt service\",\n        \"required_inputs\": [\n          \"Explicit parameter shocks, transmission method and positive complete debt service\"\n        ],\n        \"eligibility\": \"Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"application\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-stress_dscr-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"stress_residual_income\",\n        \"dimension_key\": \"forecasting_and_stress\",\n        \"label\": \"Stressed residual income\",\n        \"description\": \"Stressed residual income. Scenario verified net income minus scenario non-overlapping essential/housing/debt outgoings.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Scenario verified net income minus scenario non-overlapping essential/housing/debt outgoings\",\n        \"required_inputs\": [\n          \"Defined consumer scenario, exact payment terms and complete base components\"\n        ],\n        \"eligibility\": \"Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.\",\n        \"borrower_types\": [\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"application\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-stress_residual_income-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"liquidity_shortfall\",\n        \"dimension_key\": \"forecasting_and_stress\",\n        \"label\": \"Projected liquidity shortfall\",\n        \"description\": \"Projected liquidity shortfall. Maximum of zero and required liquidity floor minus minimum projected cash.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Maximum of zero and required liquidity floor minus minimum projected cash\",\n        \"required_inputs\": [\n          \"Institution-defined floor and supported forecast horizon\",\n          \"no default-probability interpretation\"\n        ],\n        \"eligibility\": \"Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"application\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-liquidity_shortfall-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"break_even_revenue_decline\",\n        \"dimension_key\": \"forecasting_and_stress\",\n        \"label\": \"Break-even revenue decline\",\n        \"description\": \"Break-even revenue decline. Smallest modeled proportional revenue reduction that breaches an explicit capacity threshold.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Smallest modeled proportional revenue reduction that breaches an explicit capacity threshold\",\n        \"required_inputs\": [\n          \"Documented cost elasticity, search bounds, institution threshold and scenario model\",\n          \"no universal shock\"\n        ],\n        \"eligibility\": \"Separate scenario assumptions from observations. Forecasts require model/version, horizon and interval methodology; stress outcomes are conditional, not default probabilities.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"application\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-break_even_revenue_decline-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"related_party_receipts_share\",\n        \"dimension_key\": \"relationship_risk\",\n        \"label\": \"Related-party receipts share\",\n        \"description\": \"Related-party receipts share. Identified related-party operating receipts divided by operating receipts.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Identified related-party operating receipts divided by operating receipts\",\n        \"required_inputs\": [\n          \"Evidence-supported relationships and positive operating receipts\"\n        ],\n        \"eligibility\": \"Only borrower-authorized ownership and transaction relationships are in scope. Links require evidence and uncertainty; no cross-institution identity graph is exposed.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"registry\",\n          \"accounting\",\n          \"banking\",\n          \"application\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-related_party_receipts_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"circular_flow_amount\",\n        \"dimension_key\": \"relationship_risk\",\n        \"label\": \"Potential circular-flow amount\",\n        \"description\": \"Potential circular-flow amount. Sum uniquely attributed flow amount in evidence-supported return paths.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Sum uniquely attributed flow amount in evidence-supported return paths\",\n        \"required_inputs\": [\n          \"Versioned temporal/value matching and unique path attribution\",\n          \"suspicion requires review\"\n        ],\n        \"eligibility\": \"Only borrower-authorized ownership and transaction relationships are in scope. Links require evidence and uncertainty; no cross-institution identity graph is exposed.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"registry\",\n          \"accounting\",\n          \"banking\",\n          \"application\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-circular_flow_amount-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"connected_counterparty_share\",\n        \"dimension_key\": \"relationship_risk\",\n        \"label\": \"Connected-counterparty exposure\",\n        \"description\": \"Connected-counterparty exposure. Exposure to evidence-linked counterparties divided by total covered counterparty exposure.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Exposure to evidence-linked counterparties divided by total covered counterparty exposure\",\n        \"required_inputs\": [\n          \"Authorized relationship graph, positive exposure and declared edge types\"\n        ],\n        \"eligibility\": \"Only borrower-authorized ownership and transaction relationships are in scope. Links require evidence and uncertainty; no cross-institution identity graph is exposed.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"registry\",\n          \"accounting\",\n          \"banking\",\n          \"application\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-connected_counterparty_share-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"revenue_change_from_baseline\",\n        \"dimension_key\": \"monitoring_change\",\n        \"label\": \"Revenue change from baseline\",\n        \"description\": \"Revenue change from baseline. Current comparable revenue minus baseline revenue divided by baseline revenue.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current comparable revenue minus baseline revenue divided by baseline revenue\",\n        \"required_inputs\": [\n          \"Positive baseline revenue and compatible equal-length windows and calculation versions\"\n        ],\n        \"eligibility\": \"Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-revenue_change_from_baseline-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"liquidity_change_from_baseline\",\n        \"dimension_key\": \"monitoring_change\",\n        \"label\": \"Liquidity change from baseline\",\n        \"description\": \"Liquidity change from baseline. Current unrestricted cash minus baseline unrestricted cash.\",\n        \"unit\": \"currency\",\n        \"formula\": \"Current unrestricted cash minus baseline unrestricted cash\",\n        \"required_inputs\": [\n          \"Compatible account scope, currency, basis and source quality\"\n        ],\n        \"eligibility\": \"Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-liquidity_change_from_baseline-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"dscr_change_from_baseline\",\n        \"dimension_key\": \"monitoring_change\",\n        \"label\": \"DSCR change from baseline\",\n        \"description\": \"DSCR change from baseline. Current DSCR minus baseline DSCR.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current DSCR minus baseline DSCR\",\n        \"required_inputs\": [\n          \"Comparable complete schedules, windows, methodology and lending scope\"\n        ],\n        \"eligibility\": \"Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.\",\n        \"borrower_types\": [\n          \"business\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-dscr_change_from_baseline-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      },\n      {\n        \"key\": \"obligation_growth_from_baseline\",\n        \"dimension_key\": \"monitoring_change\",\n        \"label\": \"Debt change from baseline\",\n        \"description\": \"Debt change from baseline. Current total debt minus baseline debt divided by baseline debt.\",\n        \"unit\": \"ratio\",\n        \"formula\": \"Current total debt minus baseline debt divided by baseline debt\",\n        \"required_inputs\": [\n          \"Positive baseline debt, compatible reporting scope and verified obligations\"\n        ],\n        \"eligibility\": \"Compare compatible windows, scope, currencies and calculation versions. If comparability fails, expose the reason and no numeric delta.\",\n        \"borrower_types\": [\n          \"business\",\n          \"person\"\n        ],\n        \"source_families\": [\n          \"banking\",\n          \"accounting\",\n          \"payroll\",\n          \"lender\"\n        ],\n        \"definition_version\": \"2026-11-06.1\",\n        \"calculation_version\": \"amlok-obligation_growth_from_baseline-1\",\n        \"window_rule\": \"Return the actual UTC observation window and as-of date. Point-in-time metrics use dated observations; period, cohort and prior-period requirements above are mandatory. No silent annualization.\",\n        \"unavailable_rule\": \"Return null with a typed reason when inputs, coverage, entitlement or a valid denominator are missing. Do not replace missing values with zero.\",\n        \"interpretation\": \"Ratios are fractions, not percentages. Amounts have an explicit currency. A metric is an assessment input, not an institution decision.\"\n      }\n    ],\n    \"integration_ids\": [\n      \"bank_synthetic\"\n    ],\n    \"operational_profile\": {\n      \"id\": \"development-example\",\n      \"version\": \"2\",\n      \"max_json_bytes\": 1048576,\n      \"max_upload_bytes\": 20971520,\n      \"max_document_pages\": 200,\n      \"allowed_document_mime_types\": [\n        \"application/pdf\",\n        \"image/png\",\n        \"image/jpeg\",\n        \"image/webp\"\n      ],\n      \"document_types\": [\n        \"financial_statement\",\n        \"bank_statement\",\n        \"identity_document\",\n        \"business_registration\",\n        \"tax_return\",\n        \"lending_terms\",\n        \"risk_policy\",\n        \"other\"\n      ],\n      \"session_ttl_seconds\": 900,\n      \"download_ttl_seconds\": 300,\n      \"snapshot_ttl_seconds\": 3600,\n      \"data_feed_retention_seconds\": 2592000,\n      \"event_retention_seconds\": 2592000,\n      \"export_retention_seconds\": 86400,\n      \"poll_min_interval_seconds\": 5,\n      \"poll_max_interval_seconds\": 60,\n      \"webhook_timeout_seconds\": 10,\n      \"webhook_max_body_bytes\": 65536,\n      \"webhook_rotation_overlap_seconds\": 86400,\n      \"rate_limits\": [\n        {\n          \"group\": \"reads\",\n          \"requests\": 120,\n          \"window_seconds\": 60\n        },\n        {\n          \"group\": \"commands\",\n          \"requests\": 30,\n          \"window_seconds\": 60\n        },\n        {\n          \"group\": \"uploads\",\n          \"requests\": 10,\n          \"window_seconds\": 60\n        }\n      ],\n      \"max_response_bytes\": 2097152,\n      \"max_export_bytes\": 68719476736,\n      \"export_part_bytes\": 8388608,\n      \"max_page_items\": 100,\n      \"capacity\": {\n        \"max_in_flight_requests\": 16,\n        \"workloads\": [\n          {\n            \"group\": \"origination\",\n            \"max_running\": 4,\n            \"max_queued\": 100,\n            \"max_queue_wait_seconds\": 600,\n            \"max_processing_seconds\": 1800\n          },\n          {\n            \"group\": \"monitoring\",\n            \"max_running\": 8,\n            \"max_queued\": 200,\n            \"max_queue_wait_seconds\": 600,\n            \"max_processing_seconds\": 1800\n          },\n          {\n            \"group\": \"export\",\n            \"max_running\": 2,\n            \"max_queued\": 20,\n            \"max_queue_wait_seconds\": 600,\n            \"max_processing_seconds\": 1800\n          }\n        ],\n        \"targets\": [\n          {\n            \"group\": \"origination\",\n            \"percentile\": 95,\n            \"elapsed_seconds\": 300,\n            \"population\": \"admitted_ready_work\",\n            \"window_seconds\": 2592000\n          },\n          {\n            \"group\": \"monitoring\",\n            \"percentile\": 95,\n            \"elapsed_seconds\": 300,\n            \"population\": \"admitted_ready_work\",\n            \"window_seconds\": 2592000\n          },\n          {\n            \"group\": \"export\",\n            \"percentile\": 95,\n            \"elapsed_seconds\": 300,\n            \"population\": \"admitted_ready_work\",\n            \"window_seconds\": 2592000\n          }\n        ]\n      }\n    },\n    \"embedding_versions\": [\n      {\n        \"id\": \"embed_synthetic\",\n        \"name\": \"Synthetic borrower Hub\",\n        \"integration_ids\": [\n          \"bank_synthetic\"\n        ],\n        \"consent_purposes\": [\n          \"credit_assessment\",\n          \"continuous_monitoring\"\n        ],\n        \"allowed_embed_origins\": [\n          \"https://institution.example.com\"\n        ],\n        \"allowed_return_urls\": [\n          \"https://institution.example.com/connected\"\n        ],\n        \"hub_origin\": \"https://borrower.example.com\"\n      }\n    ],\n    \"sandbox\": {\n      \"scenario_ids\": [\n        \"happy_path\",\n        \"source_reauthorization\",\n        \"document_required\",\n        \"missing_financial_input\",\n        \"restricted_report\",\n        \"provider_failure\",\n        \"insufficient_credits\",\n        \"monitoring_alert\",\n        \"payment_return\",\n        \"export_failure\"\n      ],\n      \"test_integration_id\": \"bank_synthetic\"\n    },\n    \"risk_catalog_version\": \"2026-11-06.1\",\n    \"contract\": {\n      \"revision\": \"2026-11-06.enterprise.1\",\n      \"schema_version\": \"1.0.0\",\n      \"compatibility\": \"additive_fields_only\",\n      \"enum_policy\": \"closed_within_v1\",\n      \"change_notice_days\": 30,\n      \"notice_channel\": \"registered_technical_contacts\",\n      \"documentation_url\": \"https://docs.amlok.io/api-reference/client-compatibility\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Lookup request receipt",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/request-receipts/lookup?operation_id=createOrigination&idempotency_key=origination-synthetic-0042",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "request-receipts",
            "lookup"
          ],
          "query": [
            {
              "key": "operation_id",
              "value": "createOrigination"
            },
            {
              "key": "idempotency_key",
              "value": "origination-synthetic-0042"
            }
          ]
        },
        "description": "Recover the accepted resource using the original operation and idempotency key after a timeout or expired response cache. Do not submit accepted work as a new command. All IDs and cursors must belong to the authorized workspace and environment. Required scope: reliability:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/request-receipts/lookup?operation_id=createOrigination&idempotency_key=origination-synthetic-0042",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "request-receipts",
                "lookup"
              ],
              "query": [
                {
                  "key": "operation_id",
                  "value": "createOrigination"
                },
                {
                  "key": "idempotency_key",
                  "value": "origination-synthetic-0042"
                }
              ]
            },
            "description": "Recover the accepted resource using the original operation and idempotency key after a timeout or expired response cache. Do not submit accepted work as a new command. All IDs and cursors must belong to the authorized workspace and environment. Required scope: reliability:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"idempotency_key\": \"origination-synthetic-0042\",\n    \"operation_id\": \"createOrigination\",\n    \"resource_id\": \"orgn_synthetic\",\n    \"accepted_at\": \"2026-11-06T12:00:00Z\",\n    \"response_replay_available\": false\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Healthcheck",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/healthcheck",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "healthcheck"
          ],
          "query": []
        },
        "description": "Healthcheck. All IDs and cursors must belong to the authorized workspace and environment. No API key is required.",
        "auth": {
          "type": "noauth"
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/healthcheck",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "healthcheck"
              ],
              "query": []
            },
            "description": "Healthcheck. All IDs and cursors must belong to the authorized workspace and environment. No API key is required.",
            "auth": {
              "type": "noauth"
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"status\": \"ok\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Service status",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/service-status",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "service-status"
          ],
          "query": []
        },
        "description": "Service status. All IDs and cursors must belong to the authorized workspace and environment. No API key is required.",
        "auth": {
          "type": "noauth"
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/service-status",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "service-status"
              ],
              "query": []
            },
            "description": "Service status. All IDs and cursors must belong to the authorized workspace and environment. No API key is required.",
            "auth": {
              "type": "noauth"
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"status\": \"operational\",\n    \"as_of\": \"2026-11-06T12:00:00Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List data records",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/data/records?borrower_id=bor_synthetic",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "data",
            "records"
          ],
          "query": [
            {
              "key": "borrower_id",
              "value": "bor_synthetic"
            }
          ]
        },
        "description": "Read all authorized collected and enriched records for a borrower, independently of an origination or risk package. The first page creates a stable snapshot and an atomic changes_cursor. No page truncation; follow next_cursor until has_more is false. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/data/records?borrower_id=bor_synthetic",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "data",
                "records"
              ],
              "query": [
                {
                  "key": "borrower_id",
                  "value": "bor_synthetic"
                }
              ]
            },
            "description": "Read all authorized collected and enriched records for a borrower, independently of an origination or risk package. The first page creates a stable snapshot and an atomic changes_cursor. No page truncation; follow next_cursor until has_more is false. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"dr_synthetic_v1\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"connection_id\": \"con_synthetic\",\n      \"integration_id\": \"bank_synthetic\",\n      \"resource_type\": \"bank_transaction\",\n      \"resource_id\": \"txn_synthetic\",\n      \"record_version\": 1,\n      \"ingested_at\": \"2026-11-06T12:00:00Z\",\n      \"source_as_of\": \"2026-11-06T12:00:00Z\",\n      \"access\": \"available\",\n      \"access_reason\": null,\n      \"normalized\": {\n        \"id\": \"txn_synthetic\",\n        \"object\": \"bank_transaction\",\n        \"subject_id\": \"biz_synthetic\",\n        \"created_at\": \"2026-11-06T12:00:00Z\",\n        \"updated_at\": \"2026-11-06T12:00:00Z\",\n        \"observed_at\": \"2026-11-06T12:00:00Z\",\n        \"record_version\": 1,\n        \"source_refs\": [],\n        \"data_status\": \"partial\",\n        \"missing_fields\": [],\n        \"schema_version\": \"1.0.0\",\n        \"account_id\": \"acct_synthetic\",\n        \"direction\": \"inflow\",\n        \"status\": \"posted\",\n        \"amount\": {\n          \"amount\": \"1250.00\",\n          \"currency\": \"CAD\"\n        },\n        \"extensions\": {\n          \"synthetic_provider\": {\n            \"original_description\": \"SYNTHETIC CUSTOMER PAYMENT\"\n          }\n        }\n      },\n      \"source_payload\": {\n        \"status\": \"available\",\n        \"value\": {\n          \"description\": \"SYNTHETIC CUSTOMER PAYMENT\",\n          \"amount\": \"1250.00\",\n          \"currency\": \"CAD\"\n        },\n        \"reason\": null\n      },\n      \"document_ids\": []\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"as_of\": \"2026-11-06T12:00:00Z\",\n    \"changes_cursor\": \"data_cursor_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get data record",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/data/records/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "data",
            "records",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Read an exact immutable data-record version with normalized fields, enrichment fields, provenance, authorized source payload and file references. Never silently replace this version with newer data. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/data/records/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "data",
                "records",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Read an exact immutable data-record version with normalized fields, enrichment fields, provenance, authorized source payload and file references. Never silently replace this version with newer data. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"dr_synthetic_v1\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"connection_id\": \"con_synthetic\",\n    \"integration_id\": \"bank_synthetic\",\n    \"resource_type\": \"bank_transaction\",\n    \"resource_id\": \"txn_synthetic\",\n    \"record_version\": 1,\n    \"ingested_at\": \"2026-11-06T12:00:00Z\",\n    \"source_as_of\": \"2026-11-06T12:00:00Z\",\n    \"access\": \"available\",\n    \"access_reason\": null,\n    \"normalized\": {\n      \"id\": \"txn_synthetic\",\n      \"object\": \"bank_transaction\",\n      \"subject_id\": \"biz_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"updated_at\": \"2026-11-06T12:00:00Z\",\n      \"observed_at\": \"2026-11-06T12:00:00Z\",\n      \"record_version\": 1,\n      \"source_refs\": [],\n      \"data_status\": \"partial\",\n      \"missing_fields\": [],\n      \"schema_version\": \"1.0.0\",\n      \"account_id\": \"acct_synthetic\",\n      \"direction\": \"inflow\",\n      \"status\": \"posted\",\n      \"amount\": {\n        \"amount\": \"1250.00\",\n        \"currency\": \"CAD\"\n      },\n      \"extensions\": {\n        \"synthetic_provider\": {\n          \"original_description\": \"SYNTHETIC CUSTOMER PAYMENT\"\n        }\n      }\n    },\n    \"source_payload\": {\n      \"status\": \"available\",\n      \"value\": {\n        \"description\": \"SYNTHETIC CUSTOMER PAYMENT\",\n        \"amount\": \"1250.00\",\n        \"currency\": \"CAD\"\n      },\n      \"reason\": null\n    },\n    \"document_ids\": []\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List data changes",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/data/changes?cursor=data_cursor_synthetic",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "data",
            "changes"
          ],
          "query": [
            {
              "key": "cursor",
              "value": "data_cursor_synthetic"
            }
          ]
        },
        "description": "Resume from the changes_cursor returned by a completed data snapshot, then persist resume_cursor after applying each batch. Includes upserts, source removals and access changes; expired or mismatched cursors fail explicitly. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/data/changes?cursor=data_cursor_synthetic",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "data",
                "changes"
              ],
              "query": [
                {
                  "key": "cursor",
                  "value": "data_cursor_synthetic"
                }
              ]
            },
            "description": "Resume from the changes_cursor returned by a completed data snapshot, then persist resume_cursor after applying each batch. Includes upserts, source removals and access changes; expired or mismatched cursors fail explicitly. All IDs and cursors must belong to the authorized workspace and environment. Required scope: data:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"change_synthetic\",\n      \"type\": \"upsert\",\n      \"occurred_at\": \"2026-11-06T12:00:00Z\",\n      \"record_id\": \"dr_synthetic_v1\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"resource_id\": \"txn_synthetic\",\n      \"resource_type\": \"bank_transaction\",\n      \"record_version\": 1,\n      \"reason\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"resume_cursor\": \"resume_synthetic\",\n    \"resume_expires_at\": \"2026-12-06T12:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List documents",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/documents",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "documents"
          ],
          "query": []
        },
        "description": "Discover institution uploads, borrower uploads, integration files and generated documents by borrower, origination, context and type. Responses include file status, provenance and association; download through the authorized document endpoint. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/documents",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "documents"
              ],
              "query": []
            },
            "description": "Discover institution uploads, borrower uploads, integration files and generated documents by borrower, origination, context and type. Responses include file status, provenance and association; download through the authorized document endpoint. All IDs and cursors must belong to the authorized workspace and environment. Required scope: evidence:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"doc_synthetic\",\n      \"context\": \"borrower\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"file_name\": \"financial-statement.pdf\",\n      \"mime_type\": \"application/pdf\",\n      \"sha256\": \"0000000000000000000000000000000000000000000000000000000000000000\",\n      \"size_bytes\": 12500,\n      \"status\": \"available\",\n      \"restriction_reason\": null,\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"document_type\": \"financial_statement\",\n      \"origination_id\": null,\n      \"requirement_id\": null,\n      \"origin\": \"institution_upload\",\n      \"record_version\": 1,\n      \"failure\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get billing transaction",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/transactions/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "transactions",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Retrieve one immutable wallet movement, its historical balance and links to payment or product usage. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/transactions/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "transactions",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Retrieve one immutable wallet movement, its historical balance and links to payment or product usage. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"txn_usage_synthetic\",\n    \"snapshot_id\": \"snap_synthetic\",\n    \"posted_at\": \"2026-11-06T12:00:00Z\",\n    \"amount\": \"-40.00\",\n    \"currency\": \"CAD\",\n    \"kind\": \"usage\",\n    \"product\": \"insights\",\n    \"description\": \"Synthetic underwriting usage, not a price quotation.\",\n    \"usage_id\": \"usage_synthetic\",\n    \"payment_id\": null,\n    \"borrower_id\": \"bor_synthetic\",\n    \"balance_after\": \"4935.00\",\n    \"sequence\": 3,\n    \"funding_type\": null,\n    \"record_version\": 1,\n    \"related_transaction_id\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List billing payments",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/payments",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "payments"
          ],
          "query": []
        },
        "description": "Read top-up and contract-funding payment attempts, including pending, failed, settled, returned and refunded states. Pending or failed payments are not spendable credits. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/payments",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "payments"
              ],
              "query": []
            },
            "description": "Read top-up and contract-funding payment attempts, including pending, failed, settled, returned and refunded states. Pending or failed payments are not spendable credits. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"pay_synthetic\",\n      \"snapshot_id\": \"snap_synthetic\",\n      \"created_at\": \"2026-11-06T12:00:00Z\",\n      \"updated_at\": \"2026-11-06T12:00:00Z\",\n      \"status\": \"succeeded\",\n      \"purpose\": \"manual_top_up\",\n      \"amount\": \"5000.00\",\n      \"currency\": \"CAD\",\n      \"credited_amount\": \"5000.00\",\n      \"refunded_amount\": \"0.00\",\n      \"method\": {\n        \"type\": \"card\",\n        \"label\": \"Visa ending 4242\"\n      },\n      \"external_reference\": \"PAY-SYNTHETIC-0042\",\n      \"settled_at\": \"2026-11-06T12:00:00Z\",\n      \"failure_reason\": null,\n      \"transaction_ids\": [\n        \"txn_funding_synthetic\"\n      ],\n      \"record_version\": 1\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get billing payment",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/payments/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "payments",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Retrieve one payment and the wallet entries created by its settlement, return or refund. Uses the requested billing snapshot when supplied. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/payments/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "payments",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Retrieve one payment and the wallet entries created by its settlement, return or refund. Uses the requested billing snapshot when supplied. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"pay_synthetic\",\n    \"snapshot_id\": \"snap_synthetic\",\n    \"created_at\": \"2026-11-06T12:00:00Z\",\n    \"updated_at\": \"2026-11-06T12:00:00Z\",\n    \"status\": \"succeeded\",\n    \"purpose\": \"manual_top_up\",\n    \"amount\": \"5000.00\",\n    \"currency\": \"CAD\",\n    \"credited_amount\": \"5000.00\",\n    \"refunded_amount\": \"0.00\",\n    \"method\": {\n      \"type\": \"card\",\n      \"label\": \"Visa ending 4242\"\n    },\n    \"external_reference\": \"PAY-SYNTHETIC-0042\",\n    \"settled_at\": \"2026-11-06T12:00:00Z\",\n    \"failure_reason\": null,\n    \"transaction_ids\": [\n      \"txn_funding_synthetic\"\n    ],\n    \"record_version\": 1\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List billing usage",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/usage",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "usage"
          ],
          "query": []
        },
        "description": "Read what was charged, for which borrower and product, with historical rate, tier, workload and links to the wallet transaction and assessment. Signal combines a borrower across deals once per workspace/month. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/usage",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "usage"
              ],
              "query": []
            },
            "description": "Read what was charged, for which borrower and product, with historical rate, tier, workload and links to the wallet transaction and assessment. Signal combines a borrower across deals once per workspace/month. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"usage_synthetic\",\n      \"snapshot_id\": \"snap_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"product\": \"insights\",\n      \"origination_id\": \"orgn_synthetic\",\n      \"monitor_ids\": [],\n      \"risk_package_ids\": [\n        \"rp_synthetic\"\n      ],\n      \"period\": {\n        \"start\": \"2026-11-06T00:00:00Z\",\n        \"end\": \"2026-11-07T00:00:00Z\"\n      },\n      \"charged_at\": \"2026-11-06T12:00:00Z\",\n      \"tier\": \"standard\",\n      \"quantity\": 1,\n      \"unit_rate\": \"40.00\",\n      \"amount\": \"40.00\",\n      \"currency\": \"CAD\",\n      \"rate_card_id\": \"rate_synthetic\",\n      \"rate_version\": \"synthetic-1\",\n      \"transaction_id\": \"txn_usage_synthetic\",\n      \"workload\": {\n        \"bank_accounts\": 1,\n        \"business_systems\": 2,\n        \"records\": 1500,\n        \"record_counting_basis\": \"per_underwriting\"\n      }\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get billing usage",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/billing/usage/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "billing",
            "usage",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Retrieve the immutable calculation and product references explaining one usage charge. Historical rates are preserved; retries and included Signal reassessments are not duplicate charges. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/billing/usage/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "billing",
                "usage",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Retrieve the immutable calculation and product references explaining one usage charge. Historical rates are preserved; retries and included Signal reassessments are not duplicate charges. All IDs and cursors must belong to the authorized workspace and environment. Required scope: billing:read. Owner authority is required. Related reads can pin snapshot_id from billing summary to reconcile the same as-of state; expired snapshots return 410, never a silent refresh."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"usage_synthetic\",\n    \"snapshot_id\": \"snap_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"product\": \"insights\",\n    \"origination_id\": \"orgn_synthetic\",\n    \"monitor_ids\": [],\n    \"risk_package_ids\": [\n      \"rp_synthetic\"\n    ],\n    \"period\": {\n      \"start\": \"2026-11-06T00:00:00Z\",\n      \"end\": \"2026-11-07T00:00:00Z\"\n    },\n    \"charged_at\": \"2026-11-06T12:00:00Z\",\n    \"tier\": \"standard\",\n    \"quantity\": 1,\n    \"unit_rate\": \"40.00\",\n    \"amount\": \"40.00\",\n    \"currency\": \"CAD\",\n    \"rate_card_id\": \"rate_synthetic\",\n    \"rate_version\": \"synthetic-1\",\n    \"transaction_id\": \"txn_usage_synthetic\",\n    \"workload\": {\n      \"bank_accounts\": 1,\n      \"business_systems\": 2,\n      \"records\": 1500,\n      \"record_counting_basis\": \"per_underwriting\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Create deal snapshot",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "createDealSnapshot-{{command_reference}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitors/{{record_id}}/deal-snapshots",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitors",
            "{{record_id}}",
            "deal-snapshots"
          ],
          "query": []
        },
        "description": "Append a complete, immutable lender-supplied snapshot of a monitored deal. Compare previous_snapshot_id atomically; never edit old balances, evidence or assessments. Future Signal runs use the accepted snapshot. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write. Failed monitors also reject new inputs; correct the failure and enroll a new monitor. previous_snapshot_id is mandatory optimistic concurrency; 409 deal_snapshot_conflict when stale. Same idempotency key replays the accepted snapshot even if the monitor has since advanced. New snapshot affects evaluations starting after acceptance; no retroactive analysis or new Insights charge.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \"previous_snapshot_id\": \"ds_initial\",\n  \"effective_at\": \"2026-11-06T12:00:00Z\",\n  \"deal\": {\n    \"institution_reference\": \"LOAN-0042\",\n    \"funded_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"outstanding_amount\": {\n      \"amount\": \"48000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"funded_at\": \"2026-11-05T12:00:00Z\",\n    \"maturity_date\": \"2027-11-06\",\n    \"repayment_frequency\": \"monthly\",\n    \"terms_document_ids\": []\n  },\n  \"performance\": null\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "createDealSnapshot-{{command_reference}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/{{record_id}}/deal-snapshots",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                "{{record_id}}",
                "deal-snapshots"
              ],
              "query": []
            },
            "description": "Append a complete, immutable lender-supplied snapshot of a monitored deal. Compare previous_snapshot_id atomically; never edit old balances, evidence or assessments. Future Signal runs use the accepted snapshot. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:write. Failed monitors also reject new inputs; correct the failure and enroll a new monitor. previous_snapshot_id is mandatory optimistic concurrency; 409 deal_snapshot_conflict when stale. Same idempotency key replays the accepted snapshot even if the monitor has since advanced. New snapshot affects evaluations starting after acceptance; no retroactive analysis or new Insights charge.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"previous_snapshot_id\": \"ds_initial\",\n  \"effective_at\": \"2026-11-06T12:00:00Z\",\n  \"deal\": {\n    \"institution_reference\": \"LOAN-0042\",\n    \"funded_amount\": {\n      \"amount\": \"50000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"outstanding_amount\": {\n      \"amount\": \"48000.00\",\n      \"currency\": \"CAD\"\n    },\n    \"funded_at\": \"2026-11-05T12:00:00Z\",\n    \"maturity_date\": \"2027-11-06\",\n    \"repayment_frequency\": \"monthly\",\n    \"terms_document_ids\": []\n  },\n  \"performance\": null\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "status": "OK",
          "code": 201,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"ds_synthetic\",\n    \"monitor_id\": \"mon_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"previous_snapshot_id\": \"ds_initial\",\n    \"sequence\": 2,\n    \"record_version\": 1,\n    \"effective_at\": \"2026-11-06T12:00:00Z\",\n    \"received_at\": \"2026-11-06T12:00:00Z\",\n    \"deal\": {\n      \"institution_reference\": \"LOAN-0042\",\n      \"funded_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"outstanding_amount\": {\n        \"amount\": \"48000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"funded_at\": \"2026-11-05T12:00:00Z\",\n      \"maturity_date\": \"2027-11-06\",\n      \"repayment_frequency\": \"monthly\",\n      \"terms_document_ids\": []\n    },\n    \"performance\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    },
    {
      "name": "List deal snapshots",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/monitors/{{record_id}}/deal-snapshots",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "monitors",
            "{{record_id}}",
            "deal-snapshots"
          ],
          "query": []
        },
        "description": "List the immutable lender snapshots for this monitor, including its initial enrollment snapshot. Ordered by sequence ascending within a stable snapshot. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/monitors/{{record_id}}/deal-snapshots",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "monitors",
                "{{record_id}}",
                "deal-snapshots"
              ],
              "query": []
            },
            "description": "List the immutable lender snapshots for this monitor, including its initial enrollment snapshot. Ordered by sequence ascending within a stable snapshot. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"ds_synthetic\",\n      \"monitor_id\": \"mon_synthetic\",\n      \"borrower_id\": \"bor_synthetic\",\n      \"previous_snapshot_id\": \"ds_initial\",\n      \"sequence\": 2,\n      \"record_version\": 1,\n      \"effective_at\": \"2026-11-06T12:00:00Z\",\n      \"received_at\": \"2026-11-06T12:00:00Z\",\n      \"deal\": {\n        \"institution_reference\": \"LOAN-0042\",\n        \"funded_amount\": {\n          \"amount\": \"50000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"outstanding_amount\": {\n          \"amount\": \"48000.00\",\n          \"currency\": \"CAD\"\n        },\n        \"funded_at\": \"2026-11-05T12:00:00Z\",\n        \"maturity_date\": \"2027-11-06\",\n        \"repayment_frequency\": \"monthly\",\n        \"terms_document_ids\": []\n      },\n      \"performance\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  },\n  \"page\": {\n    \"next_cursor\": null,\n    \"has_more\": false,\n    \"snapshot_id\": \"snap_synthetic\",\n    \"expires_at\": \"2026-11-06T13:00:00Z\"\n  }\n}"
        }
      ]
    },
    {
      "name": "Get deal snapshot",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/v1/deal-snapshots/{{record_id}}",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "v1",
            "deal-snapshots",
            "{{record_id}}"
          ],
          "query": []
        },
        "description": "Retrieve the exact lender input version used by a monitoring run or risk package, including its effective time and previous version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
      },
      "response": [
        {
          "name": "Synthetic success",
          "originalRequest": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/v1/deal-snapshots/{{record_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "v1",
                "deal-snapshots",
                "{{record_id}}"
              ],
              "query": []
            },
            "description": "Retrieve the exact lender input version used by a monitoring run or risk package, including its effective time and previous version. All IDs and cursors must belong to the authorized workspace and environment. Required scope: signal:read."
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": {\n    \"id\": \"ds_synthetic\",\n    \"monitor_id\": \"mon_synthetic\",\n    \"borrower_id\": \"bor_synthetic\",\n    \"previous_snapshot_id\": \"ds_initial\",\n    \"sequence\": 2,\n    \"record_version\": 1,\n    \"effective_at\": \"2026-11-06T12:00:00Z\",\n    \"received_at\": \"2026-11-06T12:00:00Z\",\n    \"deal\": {\n      \"institution_reference\": \"LOAN-0042\",\n      \"funded_amount\": {\n        \"amount\": \"50000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"outstanding_amount\": {\n        \"amount\": \"48000.00\",\n        \"currency\": \"CAD\"\n      },\n      \"funded_at\": \"2026-11-05T12:00:00Z\",\n      \"maturity_date\": \"2027-11-06\",\n      \"repayment_frequency\": \"monthly\",\n      \"terms_document_ids\": []\n    },\n    \"performance\": null\n  },\n  \"meta\": {\n    \"request_id\": \"req_synthetic\",\n    \"schema_version\": \"1.0.0\",\n    \"environment\": \"sandbox\"\n  }\n}"
        }
      ]
    }
  ]
}
