{
  "id": "fabivo-cutlistoptimizer-14-white-panels-2026-11-13",
  "status": "measured",
  "dateUtc": "2026-11-13",
  "comparisonOwner": "Fabivo internal comparison; not an independent evaluation",
  "sourcePlan": {
    "path": "/plans/stepped-tv-stand.json",
    "sha256": "1093aac3645737fb58985fbb12ecf90ca81fb41c138d65c1fd5e4381f56cc48d",
    "originalConfig": {
      "unit": "mm",
      "dimensionOrder": "width-height",
      "decimals": 0,
      "trimKerf": 3,
      "trimEdge": 5,
      "optimizationPriority": "balanced",
      "cutOrientation": "horizontal",
      "stackIdentical": true
    },
    "originalStock": {
      "width": 2440,
      "height": 1220,
      "quantity": 3,
      "grain": "horizontal"
    },
    "originalParts": [
      {
        "width": 1200,
        "height": 390,
        "quantity": 2,
        "grain": "lengthwise",
        "rotation": false
      },
      {
        "width": 493.8,
        "height": 390,
        "quantity": 2,
        "grain": "lengthwise",
        "rotation": false
      },
      {
        "width": 500,
        "height": 390,
        "quantity": 2,
        "grain": "lengthwise",
        "rotation": false
      },
      {
        "width": 1170,
        "height": 390,
        "quantity": 2,
        "grain": "lengthwise",
        "rotation": false
      },
      {
        "width": 280,
        "height": 390,
        "quantity": 2,
        "grain": "crosswise",
        "rotation": false
      },
      {
        "width": 220,
        "height": 390,
        "quantity": 4,
        "grain": "crosswise",
        "rotation": false
      }
    ],
    "changes": [
      "Keep all dimensions and quantities, including 493.8 mm.",
      "Change every part grain to none and rotation to true; stock grain to free.",
      "Set edge trim from 5 mm to 0 mm in both tools: rival's edge trim control is disabled at zero and marked PRO in this unsigned session.",
      "Set Fabivo priority to yield and cut orientation to mixed to match unrestricted cut directions and least-wasted-area objective shown by rival defaults.",
      "Fabivo display decimals 1 and identical-sheet grouping off; rival display decimals 2 and automatic grouping. The layouts differ, so grouping does not apply.",
      "Use one material, white melamine 30 mm; no edge banding, machining allowances, costs or existing offcuts.",
      "Use fresh deterministic identifiers and dimension labels; omit furniture model to prevent cut-list regeneration from restoring original constraints."
    ],
    "notTheOriginalPlanConfiguration": true
  },
  "commonInput": {
    "json": "/showcase/comparison/input.json",
    "sha256": "aee4f437328f129a4215599c555b229fa5845e835cb2cbd58d06873133c723ea",
    "partsCsv": "/showcase/comparison/parts.csv",
    "stockCsv": "/showcase/comparison/stock.csv",
    "unit": "mm",
    "kerf": 3,
    "edgeTrim": 0,
    "rotation90Allowed": true,
    "grainConstrained": false,
    "partsCount": 14,
    "partsAreaMm2": 3185364,
    "stockWidth": 2440,
    "stockHeight": 1220,
    "stockQuantityAvailable": 3
  },
  "fabivo": {
    "environment": "Local Vite development server, http://127.0.0.1:5173/?lang=es, not a production-version claim",
    "gitHead": "d99c41070c648ef9628bb322f0ab84c203ba416b",
    "sourceHashes": {
      "src/core/optimizer.ts": "a246a5f202ce04679db256771c15dbfee80626d71d79a3a0c432f2db34435a73",
      "src/core/guillotine.ts": "92ae33284f4d4c30d9ff9ecc34cf54d708a18cb9f873f0fd1df96b264d42ca7f",
      "src/ui/runOptimization.ts": "052f78bf5a6b893bf8485cc61d67281999f54d00ca23f2d3055cd1c8d548d11b"
    },
    "method": "runOptimization from src/ui/runOptimization.ts calls real optimizeBest; generate project with test, open JSON in app, click Optimizar, verify get_project_summary WebMCP reports current, not running, no failure.",
    "regenerateCommand": "COMPARISON_WRITE=1 npx vitest run scripts/seo/comparison.test.ts",
    "verifyCommand": "npx vitest run scripts/seo/comparison.test.ts scripts/seo/comparison.data.test.mjs",
    "result": "/showcase/comparison/fabivo-result.json",
    "project": "/showcase/comparison/fabivo-project.json",
    "browserSummary": "/showcase/comparison/fabivo-summary.json",
    "partsPlaced": 14,
    "unfitted": 0,
    "sheetsUsed": 2,
    "cutsReported": 18,
    "cutLengthMmReported": 15427.6,
    "piecesPerSheet": [
      12,
      2
    ],
    "wastePercentReportedInJson": 46.5,
    "wastePercentVisibleRounded": 47
  },
  "cutlistOptimizer": {
    "officialUrl": "https://www.cutlistoptimizer.com/",
    "observedVersion": "1.12.1, from loaded public script URL /js/app.min.js?v=1.12.1",
    "session": "seo-compare",
    "method": "Use the official website normally. Select millimeters, import our two CSV files into the respective part and stock grids, set kerf to 3 mm, allow rotation without grain constraints, use zero edge trim and unrestricted cut directions, prioritize least unused area. Do not force a single sheet. Start one calculation and wait for natural completion without accepting an intermediate layout.",
    "completionEvidence": "Observed natural completion at 100 percent and the return to idle controls; one calculation requested, no intermediate result accepted.",
    "observedAt": "2026-11-13T05:36:24.703Z",
    "partsPlaced": 14,
    "partsPlacedEvidence": "Observed piece counts on the two sheets were 10 and 4; the original private evidence was checked before moving it out of the deployment directory.",
    "sheetsUsed": 2,
    "cutsReported": 18,
    "cutLengthMmReported": 14000,
    "piecesPerSheet": [
      10,
      4
    ],
    "accountUsed": false,
    "paymentMade": false,
    "automationBlocked": false,
    "consoleLimitation": "A country-pricing /prices/MX request returned 404 and the app used its US fallback. No JavaScript page errors. Not relevant to layout; no price claim made.",
    "observationRecord": "/showcase/comparison/cutlistoptimizer-observed.json"
  },
  "normalizedResults": {
    "sheetsUsedBoth": 2,
    "sheetAreaMm2": 2976800,
    "totalAreaMm2": 5953600,
    "partsAreaMm2": 3185364,
    "areaNotOccupiedByPartsMm2": 2768236,
    "areaNotOccupiedPercent": 46.49684224670787,
    "formula": "100 * (2 * 2440 * 1220 - sum(width * height * quantity)) / (2 * 2440 * 1220)",
    "interpretation": "Includes kerf and remaining space; not reusable-offcut area. Do not compare rounded UI percentages as a performance gap.",
    "minimumSheetsProof": "3185364 > 2976800, so one sheet cannot contain all piece area even without kerf. Both complete two-sheet layouts attain the minimum sheet count for this case only."
  },
  "screenshots": [
    {
      "path": "/showcase/comparison/fabivo-result.png",
      "width": 1440,
      "height": 1100,
      "content": "Local Fabivo after live optimization; both sheets"
    },
    {
      "path": "/showcase/comparison/fabivo-settings.png",
      "width": 1440,
      "height": 1100,
      "content": "Local Fabivo advanced configuration, edge trim 0, yield, mixed"
    }
  ],
  "limitations": [
    "One small case, all pieces share one dimension; no broad ranking or claim about harder layouts.",
    "Local Fabivo source compared with live rival website, not two independently version-pinned production services.",
    "No speed benchmark, repeated-run statistical analysis, physical cutting, paid functions, account features or commercial limits evaluated.",
    "Reported cut lengths are kept as each product reports them, without proof of equivalent cut-counting rules; no ranking inferred.",
    "No per-grain, edge-trim, mixed-material or machining-allowance conclusions.",
    "Only our Fabivo screenshots are published. No rival screenshots, copied DOM, interface tables or raw interface text are redistributed. Numerical rival observations are our structured record, not a downloadable native result from that product."
  ],
  "primarySources": [
    {
      "url": "https://www.cutlistoptimizer.com/",
      "checkedDateUtc": "2026-11-13",
      "method": "codex-research open plus agent-browser UI",
      "supports": "Official product identity, UI settings and the actual recorded result. Search fetch alone contains unresolved templates, so result claims rely on browser evidence."
    },
    {
      "url": "https://www.cutlistoptimizer.com/terms-of-service.html",
      "checkedDateUtc": "2026-11-13",
      "method": "codex-research search and open",
      "supports": "Section 2 license restrictions; owner chose not to redistribute rival screenshots or copied interface content."
    },
    {
      "url": "https://cutlistoptimizer.com/",
      "checkedDateUtc": "2026-11-13",
      "method": "codex-research search",
      "supports": "Official product description and version 1.12.1; no price or daily-limit claim used in candidate page."
    }
  ],
  "publication": {
    "mode": "verified-factual-text-only-for-rival",
    "rivalScreenshotsPublic": false,
    "rivalRawDomPublic": false,
    "privateEvidence": {
      "availability": "Held outside the repository and deployment directory; not a public download.",
      "archiveReference": "seo-sprint-2026-11-13/private-evidence",
      "files": [
        "cutlistoptimizer-input.png",
        "cutlistoptimizer-result-full.png",
        "cutlistoptimizer-result.png",
        "cutlistoptimizer-settings.png",
        "cutlistoptimizer-sheet2.png",
        "cutlistoptimizer-observed.json",
        "cutlistoptimizer-sheet2.json"
      ]
    },
    "hashAlgorithm": "sha256",
    "hashManifestExcludes": [
      "protocol.json (self-reference)"
    ]
  },
  "publishedFilesSha256": {
    "cutlistoptimizer-observed.json": "b1bb7133d6bf7c53da689ba5b1cd76633e839fc544694de836c0a368a01c09fa",
    "fabivo-project.json": "47da76ff9053e6348fa4bff902d89dea9874e8b01fc574c17ed08ef20f3dfb3d",
    "fabivo-result.json": "08199a78d66ea4f437a143c7e7b0f4aa144d7596fd6da0b324d99f404eaab6ac",
    "fabivo-result.png": "055db551b8aedc7ab0835564c7e863b079b1f0d11c1834ce09fc838cc04c672e",
    "fabivo-settings.png": "ac94ddb3920822e40b2fa49ad449305af039a9f85bde70a490ba18b82da8fff6",
    "fabivo-summary.json": "550541dd3cf99f28fb7eea7fa3e24f69de37a77d39de10b77b93258e185eb4c2",
    "input.json": "aee4f437328f129a4215599c555b229fa5845e835cb2cbd58d06873133c723ea",
    "parts.csv": "64d82c7d5ce0bc4889216079104ecf64635dde155b144b8d03a49e126134de30",
    "stock.csv": "88c83d5e8b34a0aab11ef89d4d0aebb13cb2ea587890cbe088380609e147a27a"
  }
}
