{
  "name": "Packrift packingsolver integration brief",
  "version": "v2026.05.31",
  "generated_at": "2026-05-31T13:50:37.604Z",
  "purpose": "Maintainer-facing review packet for integrating Packrift ecommerce cartonization fixtures into packingsolver or adjacent box-packing workflows.",
  "count_treatment": "Owned public technical asset. It is not a third-party backlink, not a referring-domain win, and not a claim that upstream maintainers accepted the data.",
  "status": {
    "converter_validation": "pass",
    "direct_public_package": true,
    "requires_authentication": false
  },
  "counts": {
    "source_rows_considered": 699,
    "carton_candidates": 120,
    "scenario_orders": 350,
    "order_item_lines": 803,
    "generated_packingsolver_instance_files": 1050,
    "instance_index_records": 350
  },
  "scenario_family_counts": {
    "apparel-return": 36,
    "electronics-accessory": 35,
    "book-media": 33,
    "home-goods-small": 36,
    "subscription-bundle": 36,
    "warehouse-restock": 33,
    "marketplace-replacement": 36,
    "sample-kit": 36,
    "bulk-lightweight": 36,
    "beauty-sampler": 33
  },
  "public_urls": {
    "integration_brief_html": "https://packrift-benchmark-navigator.vercel.app/packingsolver-fixtures-integration-brief.html",
    "integration_brief_json": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/integration-brief.json",
    "integration_brief_markdown": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/integration-brief.md",
    "converter_page": "https://packrift-benchmark-navigator.vercel.app/packingsolver-converter.html",
    "converter_script": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/convert_box_packrift.py",
    "format_map": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/packingsolver-format-map.json",
    "instance_index": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/instance-index.json",
    "validation_report": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/converter-validation-report.json"
  },
  "upstream_references": [
    {
      "label": "packingsolver convert_box.py",
      "url": "https://github.com/fontanf/packingsolver/blob/master/scripts/convert_box.py",
      "raw_url": "https://raw.githubusercontent.com/fontanf/packingsolver/master/scripts/convert_box.py",
      "relevance": "Shows the upstream convention of converter scripts that transform raw box benchmark formats into packingsolver data files."
    },
    {
      "label": "packingsolver box instance parser",
      "url": "https://github.com/fontanf/packingsolver/blob/e3a91035cea0501a11edfb94235d0baa6a0213fd/src/box/instance_builder.cpp#L337-L542",
      "raw_url": "https://raw.githubusercontent.com/fontanf/packingsolver/e3a91035cea0501a11edfb94235d0baa6a0213fd/src/box/instance_builder.cpp",
      "relevance": "Primary parser source used to align Packrift bins, items, and parameters columns with packingsolver box input files."
    }
  ],
  "expected_packingsolver_files": [
    {
      "name": "bins.csv",
      "role": "Packable container candidates",
      "columns": [
        "ID",
        "X",
        "Y",
        "Z",
        "COST",
        "COPIES"
      ],
      "notes": "Generated from Packrift carton candidates; optional packingsolver columns such as COPIES_MIN and MAXIMUM_WEIGHT are intentionally not claimed in the current fixture pack."
    },
    {
      "name": "items.csv",
      "role": "Generated ecommerce scenario item lines",
      "columns": [
        "ID",
        "X",
        "Y",
        "Z",
        "COPIES",
        "PROFIT",
        "ROTATION_XYZ",
        "ROTATION_YXZ",
        "ROTATION_ZYX",
        "ROTATION_YZX",
        "ROTATION_XZY",
        "ROTATION_ZXY"
      ],
      "notes": "Generated scenario dimensions with rotation flags present so parser behavior is explicit."
    },
    {
      "name": "parameters.csv",
      "role": "Instance-level solver settings",
      "columns": [
        "NAME",
        "VALUE"
      ],
      "notes": "Current generated instances declare the objective in a small parameters file instead of implying solver results."
    }
  ],
  "review_gates": [
    "Check the integration brief and machine-readable JSON before reviewing individual scenario files.",
    "Use instance-index.json or instance-index.csv to select a small scenario family sample.",
    "Run convert_box_packrift.py against the fixture CSVs and compare outputs with the published converter-validation report.",
    "Treat bins/items/parameters CSVs as parser and workflow inputs, not as proof of optimal or quasi-optimal solutions.",
    "If accepting into an upstream project, link to the public fixture page plus the converter script rather than copying the whole generated data set into a code repository."
  ],
  "boundaries": [
    "The scenarios are generated from public Packrift product records and are not real customer orders.",
    "No optimal, quasi-optimal, or benchmark-winning solution is claimed.",
    "No live Packrift inventory, live price, freight approval, or fulfillment promise is made.",
    "No third-party maintainer endorsement is claimed by this page.",
    "No separate open-data license is declared here; reuse requires Packrift approval unless a later publication venue declares a license."
  ]
}
