{
  "artifactVersion": 1,
  "synthetic": true,
  "parserVersion": "1.0.0",
  "calculationVersion": "1.0.0",
  "generator": {
    "file": "services/analysis/src/atlas_analysis/demo.py",
    "sha256": "c91d908789e6ba92e909b0520dae5089c80aba65c7d58ace48eae90821b1901f"
  },
  "calculationImplementation": {
    "sha256": "c757e25e1827cea08d5206fbaf978ad2852a39d97e90e449887933654933fb62",
    "files": [
      {
        "file": "packages/domain/src/analysis.ts",
        "sha256": "a88b6766d0c90b57d1f2995f4ea51109e1677494993c8157940ee309f1a05f0d"
      },
      {
        "file": "packages/domain/src/ingestion.ts",
        "sha256": "382f565247f5e3dd57da63b531cc01a369c1ec0ccbb396a7ae9dc5104f4f5b54"
      },
      {
        "file": "packages/domain/src/mapping.ts",
        "sha256": "bce48ddf1d0c8c0221413b34a2fa1b7a5cd885f0ff277489df9cc1fc9441ebcb"
      },
      {
        "file": "packages/domain/src/scan-evidence.ts",
        "sha256": "4367509a60cdc9fcf8786555a1e0009a7b733c7dbe5ea37271299863476c8ac2"
      },
      {
        "file": "packages/integrations/src/analysis/runtime.ts",
        "sha256": "0a30ed50509d80c04688748178fc9dd1ba3794549c9ee86d63160765bf6f8744"
      },
      {
        "file": "packages/integrations/src/ingestion/runtime.ts",
        "sha256": "0df67892dcdcbc7039510bbf7becd96eb60fe384115f04ae4403aad37359c40a"
      },
      {
        "file": "scripts/export-demo.ts",
        "sha256": "0e4cea161907fed8fe25a025344e3f95749b73607d8ca542ed24712e968e4635"
      },
      {
        "file": "services/analysis/pyproject.toml",
        "sha256": "38caebfcef9e28e6fe810d2760ef13204a85e1f40f93f7a83e7de667e0c8a45e"
      },
      {
        "file": "services/analysis/src/atlas_analysis/__init__.py",
        "sha256": "b8456ead9c7e65163aaeeb1fa09ecd085b4039fd0402479701b4f0ffe152048d"
      },
      {
        "file": "services/analysis/src/atlas_analysis/__main__.py",
        "sha256": "bdd800f37625c0dbf051d44bdb97e2a8e27442d7eb905891231e583bd519c8b8"
      },
      {
        "file": "services/analysis/src/atlas_analysis/analysis/cli.py",
        "sha256": "2e00c7c64a17418237b2499783a75fb923dbafb55aa350ef823d315f59256db7"
      },
      {
        "file": "services/analysis/src/atlas_analysis/analysis/contracts.py",
        "sha256": "3ebfdbe7afc512151653ecaf25b9c348fb6688f7f249384de9ae17f5e9db3e22"
      },
      {
        "file": "services/analysis/src/atlas_analysis/analysis/engine.py",
        "sha256": "ce4ccbeebd5c08029b442bd414dfdfdb02de934b5ad224c9be57beb750b05f7c"
      },
      {
        "file": "services/analysis/src/atlas_analysis/analysis/evidence.py",
        "sha256": "b39a3f77f774764ceb5cb383b0c582f95489d9380c1e96484caba9a0b4789eaf"
      },
      {
        "file": "services/analysis/src/atlas_analysis/analysis/normalize.py",
        "sha256": "12af23077a8e86013fd963f2554a3d22bae7d6726f9a16faa68355b5d655bde4"
      },
      {
        "file": "services/analysis/src/atlas_analysis/contracts.py",
        "sha256": "806af31809f8a0592b7498f0059a5f374a4c624ef15599d23cb0a455ceacb553"
      },
      {
        "file": "services/analysis/src/atlas_analysis/ingestion/__init__.py",
        "sha256": "ed66416fdd4fbbf76034b547afd2850704f7aee43af947261ff9b1bdeb261b28"
      },
      {
        "file": "services/analysis/src/atlas_analysis/ingestion/cli.py",
        "sha256": "550b7bb01e0517356f4789f194d373e5090a75de14de55aa35fd2d179e98a9be"
      },
      {
        "file": "services/analysis/src/atlas_analysis/ingestion/contracts.py",
        "sha256": "7c216516d3c29fc672a40ee0a2a706a3a811d74489c0c97860972753347802fd"
      },
      {
        "file": "services/analysis/src/atlas_analysis/ingestion/pipeline.py",
        "sha256": "8f128f298b4e0772cbab3d2766f7617f273f69c4348f2ee0ebabbe47696c1f58"
      },
      {
        "file": "services/analysis/src/atlas_analysis/ingestion/readers.py",
        "sha256": "482497da1e8f0c7cbf2b35464512c8f3198c1f74ea69cc3cf5e8a034a3cc5a26"
      },
      {
        "file": "services/analysis/src/atlas_analysis/ingestion/workbook.py",
        "sha256": "4144a65963ed6b982fb8549b2188b5f177adb1386d2dfc784ebd51cd34a6b031"
      },
      {
        "file": "services/analysis/uv.lock",
        "sha256": "86c77ffb2f6d92774f1a12b670f2e16068b6d5ecf715075ed8b9404315ece9db"
      }
    ]
  },
  "sources": [
    {
      "id": "planted-loss",
      "generatorScenario": "planted_loss",
      "file": "planted-loss.csv",
      "sha256": "a42a66cc43703ca9977393dd76e14cb787bab76d7f6c5afa4979d8eadff2d619",
      "byteLength": 4159,
      "rowCount": 90,
      "recordsSha256": "4a8da8404e84a6ee69f0c575d8d6625d496b9a727f82470e5934831ec51c1bf0"
    },
    {
      "id": "no-loss",
      "generatorScenario": "no_loss",
      "file": "no-loss.csv",
      "sha256": "a78981173b6841132bfd230c049c9d6a0fefaae794314faef9c13b018765c31a",
      "byteLength": 4129,
      "rowCount": 90,
      "recordsSha256": "f1e16bdf6e27e19faea96f8d9cd355b1ecf4a4de489d9f924d16fcb43b5780e2"
    },
    {
      "id": "small-sample",
      "generatorScenario": "insufficient",
      "file": "small-sample.csv",
      "sha256": "5f94c849d70e334a542bcdba326d749981245e23d002cc4103f0e42fe45f457d",
      "byteLength": 243,
      "rowCount": 3,
      "recordsSha256": "6a5065575338d4cc2b970f7a5ccda66cba26199fad6e406db5fc61e01e6809fc"
    }
  ],
  "variants": [
    {
      "id": "planted-unknown",
      "title": "Planted operational gaps",
      "description": "Thirty days of synthetic production records with deliberately planted downtime and scrap at Mill B. Review supported comparisons with unknown economics.",
      "sourceId": "planted-loss",
      "assumptionsExplanation": "Financial inputs and additional demand are unknown. Supported operational quantities remain visible; missing economics are not treated as zero.",
      "resultFile": "planted-unknown.result.json",
      "resultSha256": "4ce26a144cafb32e5adf16184cb85708e845874629c6101273eaeabfd33693f3",
      "resultByteLength": 35068,
      "evidenceFile": "planted-unknown.evidence.json",
      "evidenceSha256": "bf5470c4b59d68f0e424ee235b398d3852df65c714995568086da95cb1cfab1f",
      "evidenceByteLength": 157136,
      "sourceResultSha256": "b8658fd4fd8358766fd9a36cf1fadfcbc2d09a161262484b24cc3dcc4f2c6174",
      "requestSha256": "5fcc1c21ebeefd6ce3e10b6dabd29cb606d0ffbc220db00da87e1e009a2d725f"
    },
    {
      "id": "planted-illustrative",
      "title": "Illustrative economics",
      "description": "The same planted records with explicit sample financial inputs. Conditional amounts illustrate the calculation; they are not observed savings or a customer outcome.",
      "sourceId": "planted-loss",
      "assumptionsExplanation": "Illustrative USD inputs: margin per additional unit 10, avoidable scrap cost per unit 3, labor cost per hour 50, recovery fraction 0.5, and additional demand assumed confirmed. Inputs are synthetic; related opportunities are not added or annualized.",
      "resultFile": "planted-illustrative.result.json",
      "resultSha256": "8b3a07a3aa95b333c35e6124ab6b6ad0af9440e1e67d93b51d6b7ec2016308f0",
      "resultByteLength": 35895,
      "evidenceFile": "planted-illustrative.evidence.json",
      "evidenceSha256": "cf884f044b9191f9a8ca22e9967e4410955b279c10e815ff954beee721bd63bf",
      "evidenceByteLength": 157136,
      "sourceResultSha256": "c02b47346256df53241bc231e90c6abc4a2b5c9d61a42546d099e0cf2adbb3e9",
      "requestSha256": "9434d5f5f3e0e5a4ac0133fafa9aed09a0bc118ac5edab9f8ca87284649eaee7"
    },
    {
      "id": "no-loss",
      "title": "No supported positive opportunity",
      "description": "Thirty days of synthetic records meeting their recorded targets without recorded downtime or scrap. Missing fields still limit coverage; this scenario does not establish that an operation is loss-free.",
      "sourceId": "no-loss",
      "assumptionsExplanation": "Financial inputs and additional demand are unknown. Supported operational quantities remain visible; missing economics are not treated as zero.",
      "resultFile": "no-loss.result.json",
      "resultSha256": "112d30a43ddcb3ab070269f27cc73f83fffb3a58eade368619b58f02fd4370a1",
      "resultByteLength": 32589,
      "evidenceFile": "no-loss.evidence.json",
      "evidenceSha256": "3ab1b9c85758409ff4d11e7b17b7cc77e4272cd31d9fc5d26ce20fb04d7a8726",
      "evidenceByteLength": 157116,
      "sourceResultSha256": "10fa052f8f17bf69d070927d6274011a99462d85b04869e2be5497b4bc937d68",
      "requestSha256": "c703c1cbfed8d3d395d99beaa4ae2472037260c2601b842b972c01f59ca07fc9"
    },
    {
      "id": "small-sample",
      "title": "Small sample",
      "description": "One day with three valid synthetic records supports limited descriptive comparisons. Small samples and missing fields remain explicit limitations.",
      "sourceId": "small-sample",
      "assumptionsExplanation": "Financial inputs and additional demand are unknown. Supported operational quantities remain visible; missing economics are not treated as zero.",
      "resultFile": "small-sample.result.json",
      "resultSha256": "53640fde66b40d4a96652212dfe976a150830ce40eb2e60676e9a2d5135b9318",
      "resultByteLength": 18312,
      "evidenceFile": "small-sample.evidence.json",
      "evidenceSha256": "2beba6022cd61e661478d685ee13224c4d8140a5eb6a4212eda9e2b1ee5c11e6",
      "evidenceByteLength": 39107,
      "sourceResultSha256": "f72c139aa0812928cf730a4aaffd075553bb5dcc9bdb73fb23061b8631ca004c",
      "requestSha256": "1825751eedec73b3999183b03d665117947972354896a08b1f5e841ca2414a45"
    }
  ]
}
