{
  "run_id": "example-not-a-billed-run",
  "created_at": "2026-10-10T00:00:00.000Z",
  "model": "project_quote_margin",
  "model_version": "1",
  "engine_version": "continuum-api-1",
  "currency": "EUR",
  "cases": [
    {
      "name": "Baseline",
      "inputs": {
        "quote": 4200,
        "hours": 100,
        "loaded_hourly_cost": 25,
        "external_costs": 200,
        "target_margin": 0.3
      },
      "metrics": {
        "delivery_cost": 2700,
        "profit": 1500,
        "margin": 0.35714285714285715,
        "minimum_quote": 3857.15
      },
      "differences": {
        "delivery_cost": 0,
        "profit": 0,
        "margin": 0,
        "minimum_quote": 0
      },
      "checks": {
        "target_margin_met": true
      },
      "warnings": [
        "All monetary inputs use one currency; no exchange rates are fetched.",
        "Inputs are caller-supplied assumptions, not verified facts.",
        "Calculations use floating-point arithmetic; displayed money rounds to cents.",
        "Loaded labor cost includes the overhead you choose to include. Sales taxes and financing are outside this model."
      ]
    },
    {
      "name": "More delivery time",
      "inputs": {
        "quote": 4200,
        "hours": 120,
        "loaded_hourly_cost": 25,
        "external_costs": 200,
        "target_margin": 0.3
      },
      "metrics": {
        "delivery_cost": 3200,
        "profit": 1000,
        "margin": 0.23809523809523808,
        "minimum_quote": 4571.43
      },
      "differences": {
        "delivery_cost": 500,
        "profit": -500,
        "margin": -0.11904761904761907,
        "minimum_quote": 714.2800000000002
      },
      "checks": {
        "target_margin_met": false
      },
      "warnings": [
        "All monetary inputs use one currency; no exchange rates are fetched.",
        "Inputs are caller-supplied assumptions, not verified facts.",
        "Calculations use floating-point arithmetic; displayed money rounds to cents.",
        "Loaded labor cost includes the overhead you choose to include. Sales taxes and financing are outside this model."
      ]
    }
  ],
  "formulas": [
    "labor_cost = hours * loaded_hourly_cost",
    "delivery_cost = labor_cost + external_costs",
    "profit = quote - delivery_cost",
    "margin = profit / quote",
    "minimum_quote_raw = delivery_cost / (1 - target_margin)",
    "minimum_quote = minimum_quote_raw rounded up to nearest 0.01"
  ],
  "document_bundle": {
    "format": "continuum-api-review",
    "version": 1,
    "engine_version": "continuum-api-1",
    "request": {
      "model": "project_quote_margin",
      "model_version": "1",
      "currency": "EUR",
      "inputs": {
        "quote": 4200,
        "hours": 100,
        "loaded_hourly_cost": 25,
        "external_costs": 200,
        "target_margin": 0.3
      },
      "variants": [
        {
          "name": "More delivery time",
          "overrides": {
            "hours": 120
          }
        }
      ],
      "include": [
        "document_bundle",
        "formulas"
      ]
    },
    "created_at": "2026-10-10T00:00:00.000Z",
    "run_id": "example-not-a-billed-run",
    "edited": false,
    "documents": [
      {
        "name": "Baseline",
        "recipe": {
          "version": 1,
          "title": "Project quote margin — Baseline",
          "calculationSource": "quote = 4200\nhours = 100\nloaded_hourly_cost = 25\nexternal_costs = 200\ntarget_margin = 0.3\nlabor_cost = hours * loaded_hourly_cost\ndelivery_cost = labor_cost + external_costs\nprofit = quote - delivery_cost\nmargin = profit / quote\nminimum_quote_raw = delivery_cost / (1 - target_margin)\nminimum_quote = minimum_quote_raw rounded up to nearest 0.01",
          "preview": {
            "version": 1,
            "title": "Project quote margin — Baseline",
            "blocks": [
              {
                "kind": "metric_strip",
                "data": {
                  "metrics": [
                    {
                      "label": "Delivery cost",
                      "value": {
                        "symbol": "delivery_cost",
                        "format": "currency",
                        "currency": "EUR",
                        "digits": 2
                      }
                    },
                    {
                      "label": "Profit",
                      "value": {
                        "symbol": "profit",
                        "format": "currency",
                        "currency": "EUR",
                        "digits": 2
                      }
                    },
                    {
                      "label": "Margin",
                      "value": {
                        "symbol": "margin",
                        "format": "percent",
                        "currency": "EUR",
                        "digits": 2
                      }
                    },
                    {
                      "label": "Minimum quote",
                      "value": {
                        "symbol": "minimum_quote",
                        "format": "currency",
                        "currency": "EUR",
                        "digits": 2
                      }
                    }
                  ]
                }
              },
              {
                "kind": "summary",
                "data": {
                  "heading": "Assumptions",
                  "body": "All monetary inputs use one currency; no exchange rates are fetched. Inputs are caller-supplied assumptions, not verified facts. Calculations use floating-point arithmetic; displayed money rounds to cents. Loaded labor cost includes the overhead you choose to include. Sales taxes and financing are outside this model."
                }
              }
            ]
          }
        },
        "source": "quote = 4200\nhours = 100\nloaded_hourly_cost = 25\nexternal_costs = 200\ntarget_margin = 0.3\nlabor_cost = hours * loaded_hourly_cost\ndelivery_cost = labor_cost + external_costs\nprofit = quote - delivery_cost\nmargin = profit / quote\nminimum_quote_raw = delivery_cost / (1 - target_margin)\nminimum_quote = minimum_quote_raw rounded up to nearest 0.01\n\npreview:\n  {\"version\":1,\"title\":\"Project quote margin — Baseline\",\"blocks\":[{\"kind\":\"metric_strip\",\"data\":{\"metrics\":[{\"label\":\"Delivery cost\",\"value\":{\"symbol\":\"delivery_cost\",\"format\":\"currency\",\"currency\":\"EUR\",\"digits\":2}},{\"label\":\"Profit\",\"value\":{\"symbol\":\"profit\",\"format\":\"currency\",\"currency\":\"EUR\",\"digits\":2}},{\"label\":\"Margin\",\"value\":{\"symbol\":\"margin\",\"format\":\"percent\",\"currency\":\"EUR\",\"digits\":2}},{\"label\":\"Minimum quote\",\"value\":{\"symbol\":\"minimum_quote\",\"format\":\"currency\",\"currency\":\"EUR\",\"digits\":2}}]}},{\"kind\":\"summary\",\"data\":{\"heading\":\"Assumptions\",\"body\":\"All monetary inputs use one currency; no exchange rates are fetched. Inputs are caller-supplied assumptions, not verified facts. Calculations use floating-point arithmetic; displayed money rounds to cents. Loaded labor cost includes the overhead you choose to include. Sales taxes and financing are outside this model.\"}}]}\n"
      },
      {
        "name": "More delivery time",
        "recipe": {
          "version": 1,
          "title": "Project quote margin — More delivery time",
          "calculationSource": "quote = 4200\nhours = 120\nloaded_hourly_cost = 25\nexternal_costs = 200\ntarget_margin = 0.3\nlabor_cost = hours * loaded_hourly_cost\ndelivery_cost = labor_cost + external_costs\nprofit = quote - delivery_cost\nmargin = profit / quote\nminimum_quote_raw = delivery_cost / (1 - target_margin)\nminimum_quote = minimum_quote_raw rounded up to nearest 0.01",
          "preview": {
            "version": 1,
            "title": "Project quote margin — More delivery time",
            "blocks": [
              {
                "kind": "metric_strip",
                "data": {
                  "metrics": [
                    {
                      "label": "Delivery cost",
                      "value": {
                        "symbol": "delivery_cost",
                        "format": "currency",
                        "currency": "EUR",
                        "digits": 2
                      }
                    },
                    {
                      "label": "Profit",
                      "value": {
                        "symbol": "profit",
                        "format": "currency",
                        "currency": "EUR",
                        "digits": 2
                      }
                    },
                    {
                      "label": "Margin",
                      "value": {
                        "symbol": "margin",
                        "format": "percent",
                        "currency": "EUR",
                        "digits": 2
                      }
                    },
                    {
                      "label": "Minimum quote",
                      "value": {
                        "symbol": "minimum_quote",
                        "format": "currency",
                        "currency": "EUR",
                        "digits": 2
                      }
                    }
                  ]
                }
              },
              {
                "kind": "summary",
                "data": {
                  "heading": "Assumptions",
                  "body": "All monetary inputs use one currency; no exchange rates are fetched. Inputs are caller-supplied assumptions, not verified facts. Calculations use floating-point arithmetic; displayed money rounds to cents. Loaded labor cost includes the overhead you choose to include. Sales taxes and financing are outside this model."
                }
              }
            ]
          }
        },
        "source": "quote = 4200\nhours = 120\nloaded_hourly_cost = 25\nexternal_costs = 200\ntarget_margin = 0.3\nlabor_cost = hours * loaded_hourly_cost\ndelivery_cost = labor_cost + external_costs\nprofit = quote - delivery_cost\nmargin = profit / quote\nminimum_quote_raw = delivery_cost / (1 - target_margin)\nminimum_quote = minimum_quote_raw rounded up to nearest 0.01\n\npreview:\n  {\"version\":1,\"title\":\"Project quote margin — More delivery time\",\"blocks\":[{\"kind\":\"metric_strip\",\"data\":{\"metrics\":[{\"label\":\"Delivery cost\",\"value\":{\"symbol\":\"delivery_cost\",\"format\":\"currency\",\"currency\":\"EUR\",\"digits\":2}},{\"label\":\"Profit\",\"value\":{\"symbol\":\"profit\",\"format\":\"currency\",\"currency\":\"EUR\",\"digits\":2}},{\"label\":\"Margin\",\"value\":{\"symbol\":\"margin\",\"format\":\"percent\",\"currency\":\"EUR\",\"digits\":2}},{\"label\":\"Minimum quote\",\"value\":{\"symbol\":\"minimum_quote\",\"format\":\"currency\",\"currency\":\"EUR\",\"digits\":2}}]}},{\"kind\":\"summary\",\"data\":{\"heading\":\"Assumptions\",\"body\":\"All monetary inputs use one currency; no exchange rates are fetched. Inputs are caller-supplied assumptions, not verified facts. Calculations use floating-point arithmetic; displayed money rounds to cents. Loaded labor cost includes the overhead you choose to include. Sales taxes and financing are outside this model.\"}}]}\n"
      }
    ]
  }
}
