{
 "version": "1.0",
 "date": "2026-09-30",
 "rowCount": 149,
 "flagLabels": {
  "composable-vendor-shown": "Combination of general settings, shown by the vendor",
  "composable-auditor-built": "Combination of general settings, assembled by the auditor from documented parts",
  "screenshot-only": "Evidence is a label in a screenshot",
  "implied-not-stated": "Follows from documented behaviour rather than stated outright",
  "shared-mechanism": "Relies on a setting other rows also use; they may not all work at once",
  "restricted-scope": "Only in some editions, plans, methods or equipment types",
  "source-conflict": "The vendor's own sources disagree on this point",
  "outdated-source": "Evidence is documentation five or more years old"
 },
 "rules": {
  "composable": "all verified combinations count, marked as vendor-shown or auditor-built in footnotes",
  "workaround": "does not count; shown as a marker",
  "screenshot": "counts, marked",
  "field": "does not count",
  "implied": "counts, marked",
  "enforcement": "does not count",
  "gap": "does not count",
  "shared": "each row passes, with a footnote on the conflict",
  "scope": "counts, restriction noted",
  "conflict": "counts, conflict noted",
  "outdated": "counts, dated",
  "marketing": "does not count; shown as a marker",
  "avail": "released only (beta and announced shown separately)",
  "display": "yes or no in the published cell; mechanism in the footnote; strict layer kept in the data"
 },
 "clusters": [
  {
   "id": "equipment",
   "name": "Equipment geometry",
   "description": "How the loading space itself can be described: its dimensions, obstructions, non-rectangular shapes, internal divisions, openings and open sides.",
   "rows": [
    {
     "id": "equipment-box-space",
     "requirement": "The user can define a loading space by its internal length, width and height, and the planner keeps all cargo inside it.",
     "passCondition": "Documentation shows a loading space with user-entered or preset internal length, width and height that the planner packs within.",
     "definitionNote": "Covers trucks, containers, pallets, cartons and the bounding box of a ULD. A type label (truck, sea container, ULD) counts here only as a box; any extra behaviour a type triggers is scored in its own row. Preset libraries and typed dimensions count equally.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-obstruction",
     "requirement": "The user can mark a fixed part of the loading space (such as a reefer unit, wheel arch or corner casting) as unusable, and the planner keeps cargo out of it.",
     "passCondition": "A documented input for at least one obstruction with a position and size inside the space, which the planner does not load into.",
     "definitionNote": "Obstructions of a fixed kind pass (e.g. only wheel arches, only a cooling unit). Shrinking the overall dimensions of the space does not pass. Whether cargo may be stacked on top of an obstruction (Cube-IQ's per-space no-stack flag; EasyCargo's documented dummy-item practice) is recorded in the note of the cell, not scored separately. Arbitrary multiple regions are the next row.",
     "modes": [
      "road",
      "sea",
      "air"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-obstruction-arbitrary",
     "requirement": "The user can block any number of box-shaped regions, each at a freely chosen position and size, inside the loading space.",
     "passCondition": "Documentation shows more than one blocked region per space, each with its own free position and size.",
     "definitionNote": "Fixed kits fail this row: for example up to four identical top boxes plus one wheel-well pair. A per-plan keep-clear region passes. A single blocked length section per container (packVol's per-solution unusable section) does not pass on its own.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-height-cap",
     "requirement": "For a plan, the user can keep a set gap below the ceiling (or cap the load height below the internal height) without redefining the equipment.",
     "passCondition": "A documented setting, per plan or per equipment, that lowers the usable height or enforces a ceiling clearance, separate from the internal height.",
     "definitionNote": "Editing the equipment's height is the trivial route and counts only as a workaround. A per-item height limit is scored under stacking. EasyCargo's per-shipment loading size and MaxLoad's clearance setting (truck manifests only) are the typical forms.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-step-lengthwise",
     "requirement": "The user can model a loading space whose floor or ceiling height changes along its length (drop-deck, step-deck, gooseneck, split-level), and the planner respects the steps.",
     "passCondition": "A documented input for at least one step in floor or ceiling height at a set distance along the space.",
     "definitionNote": "A composable route (blocked regions forming the step) passes if the vendor documents it for this purpose. Two separate spaces placed end to end do not pass unless the planner treats them as one space.",
     "modes": [
      "road",
      "sea"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-contour-crosswise",
     "requirement": "The user can model a loading space whose cross-section is not rectangular, such as a ULD with a cut-back side or a rail wagon with a curved roof, and the planner keeps cargo inside that contour.",
     "passCondition": "A documented input that describes the contour (points, slope parameters or steps across the width or height), which the planner respects.",
     "definitionNote": "A stepped approximation passes. True slopes are scored in the next row. A list of separate rectangular sections with no stated spatial relation between them does not pass.",
     "modes": [
      "air",
      "rail"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-contour-both-views",
     "requirement": "The user can model a loading space whose cross-section is not rectangular and whose floor or ceiling height also changes along its length, both in the same unit, and the planner respects both.",
     "passCondition": "Documentation shows a single space definition that combines a non-rectangular cross-section with a lengthwise height change, and the planner keeps cargo inside both.",
     "definitionNote": "Passing both equipment-step-lengthwise and equipment-contour-crosswise does not by itself pass this row: the documentation must show both kinds of shape in one unit. A contour defined in one view only (front or side) does not pass.",
     "modes": [
      "air",
      "rail",
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": true
    },
    {
     "id": "equipment-contour-sloped",
     "requirement": "The planner treats a sloped contour face as a slope, so cargo can be placed right up to the sloped wall rather than stopping at a rectangular step.",
     "passCondition": "Documentation shows the contour defined by an angle, chamfer or interpolated points, and cargo placed against it.",
     "definitionNote": "Step approximations fail. Where the documentation does not say whether a contour is a slope or a step, the cell is flagged ambiguous rather than passed.",
     "modes": [
      "air"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-compartments",
     "requirement": "The user can model one unit made of several separately packed sub-spaces, such as holds, sections, bays, a second deck, shelves or the two parts of a road train, each with its own dimensions.",
     "passCondition": "A documented input for at least two internal sub-spaces of one unit, each with its own geometry, that the planner packs as parts of that unit.",
     "definitionNote": "Includes multi-hold carriers, ULD sections, side-bay trucks, railcar split dividers, double decks, shelves, truck-and-trailer combinations and container zones used as sub-volumes. Planning two independent vehicles in one job does not pass. Two planning passes with a reduced height (EasyCargo's double-deck recipe) is a workaround. Per-compartment weight limits are scored under weight; axle transfer across a coupling is scored under weight. MaxLoad documents multi-zone vehicles as not supported.",
     "modes": [
      "road",
      "air",
      "rail",
      "sea"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-door-aperture",
     "requirement": "The user can set a door opening smaller than the internal cross-section, and the planner does not load items that cannot pass through it.",
     "passCondition": "A documented door width and height input, documented as limiting what is loaded.",
     "definitionNote": "Door dimensions listed only as descriptive equipment data, with no stated engine effect, fail.",
     "modes": [
      "sea",
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-access-side",
     "requirement": "The user can set which face of the space is the loading face (rear, side or top), and the planner builds the load, and any unloading order, from that face.",
     "passCondition": "A documented per-space loading or access face that changes how the load is built.",
     "definitionNote": "A packing axis with no concept of a door is scored under positioning (fill direction). More than one access face on one space (LoadOptimizer's two-sided curtain-sider) passes this row and is noted. MaxLoad's side-door railcar setting passes for rail.",
     "modes": [
      "road",
      "rail",
      "sea"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "equipment-open-equipment",
     "requirement": "On open-top, flat-rack or flatbed equipment, the planner can let cargo rise above the walls or extend beyond the deck edges, up to set limits.",
     "passCondition": "A documented open-equipment behaviour or envelope setting that allows cargo beyond the wall height or deck length/width, with a stated limit, used by the planner when placing.",
     "definitionNote": "Record which directions are allowed (height, width, length; one end or both). Enlarging the space's dimensions passes as composable only if the vendor documents it for this purpose (EasyCargo does). A rule allowing over-height only for items standing on the floor (packVol) passes and is noted. Goodloading's per-item overhang flag passes only if the planner places the overhang itself; it documents no maximum. Pallet overhang is scored under pallets.",
     "modes": [
      "road",
      "sea"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "fleet",
   "name": "Fleet and equipment selection",
   "description": "Choosing how many units and which equipment types a shipment uses, and restricting cargo to particular equipment.",
   "rows": [
    {
     "id": "fleet-auto-count",
     "requirement": "When the cargo does not fit one unit, the planner places the rest in further units of an offered type and reports how many are needed.",
     "passCondition": "Documentation shows the planner adding units automatically until the list is loaded (or an available quantity runs out), without the user adding each unit.",
     "definitionNote": "Record limits such as EasyCargo's 'at most 9 additional spaces of the same type'. A manual 'load the leftovers into a next vehicle' step fails (it is a workaround).",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-mixed-types",
     "requirement": "From several offered equipment types, the planner decides which types to use and how many of each, in one run.",
     "passCondition": "Documentation shows an automatic choice among two or more equipment types within one plan.",
     "definitionNote": "Producing one separate plan per candidate type for comparison (MaxLoad) fails; that is scored under objectives (alternatives). A sequence of manual passes on different types (EasyCargo) is a workaround. Goodloading's recommendation mixes types only in an API example; the manual says one type.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-quantity-limit",
     "requirement": "The user can cap how many units of each type are available, and the planner never uses more, leaving any remainder unloaded.",
     "passCondition": "A documented available-quantity input per equipment type that the planner honours.",
     "definitionNote": "CubeMaster honours the quantity only under one of its container-selection goals; record which strategies honour it. A quantity that only adds identical spaces to a project (Goodloading) passes if the planner stays within them.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-preference-order",
     "requirement": "The user can rank equipment so that a preferred type (or a given set of units) is filled first, and other types are used only when needed.",
     "passCondition": "A documented priority, preference or fill-order setting on equipment, or a documented fixed-then-automatic split.",
     "definitionNote": "Includes 'avoid unless required' fallback equipment and pallet-type loading priority. Filling units in the order they are listed passes if the vendor documents that behaviour.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-smallest-fit",
     "requirement": "Given several candidate equipment types, the planner picks the smallest type that holds a load: the whole shipment, or the last, partly filled unit.",
     "passCondition": "Documentation shows the planner selecting (not the user comparing) the smallest sufficient type for a whole shipment or swapping the last unit for a smaller type.",
     "definitionNote": "Covers cartonisation (best carton for an order), vehicle recommendations and post-optimisation downsizing. A list of per-type results the user reads through fails. Goodloading's recommendations cover vehicles and sea containers only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-min-cost",
     "requirement": "Each equipment type can be given a cost, and the planner chooses the combination of units with the lowest total cost.",
     "passCondition": "A documented per-equipment cost input and a documented cost-minimising selection.",
     "definitionNote": "A flat cost per unit passes. Rate tables and dimensional-weight pricing are beyond this row (LoadOptimizer states it has no rate engine). MaxLoad's costing is undocumented and 'reserved for specific customers'.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-fill-cap",
     "requirement": "The user can cap the fill of a unit at a set percentage of its volume or weight.",
     "passCondition": "A documented maximum fill-percentage input per unit or per plan that the planner respects.",
     "definitionNote": "Leaving air-circulation space through a volume cap passes. Best-fit selection thresholds whose effect is undocumented (CubeMaster) are flagged ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-min-fill",
     "requirement": "The user can set a minimum fill for a unit, below which the unit is not used and its cargo is moved or left unloaded.",
     "passCondition": "A documented minimum-fill input (percentage, weight, volume or unit count) that the planner acts on.",
     "definitionNote": "Merged: minima expressed as percentage, weight, volume or count all pass, because the outcome (no under-filled unit is dispatched) is the same. Record which measure.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-item-to-type",
     "requirement": "The user can restrict a specific item (or group) to certain equipment types, or exclude it from others, including which pallet type it is built on.",
     "passCondition": "A documented per-item or per-group rule, hard or stated as such, that limits which equipment types it may be loaded into.",
     "definitionNote": "Class-code matching (item codes matched to equipment, zone or hold codes) passes, and is how Cube-IQ, packVol and LoadOptimizer express it. A 'favourite' or preferred list passes only if the documentation says it is binding; otherwise flag ambiguous. Choosing the pallet type per item or group passes.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-item-to-unit",
     "requirement": "The user can assign a specific item (or group) to one particular unit of the plan.",
     "passCondition": "A documented input that ties an item or group to an individual unit (for example the n-th container, or a named unit), which the planner respects.",
     "definitionNote": "Assignment made by manually dragging items onto a space is a workaround. Matching a sequence number to a container sequence (Cube-IQ) passes.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "fleet-container-sizing",
     "requirement": "The planner can determine the dimensions of a new container, carton or pallet load within user-set minimum and maximum ranges.",
     "passCondition": "Documentation shows the planner choosing the dimensions of the space itself within stated ranges.",
     "definitionNote": "Choosing among predefined sizes is the smallest-fit row, not this one.",
     "modes": [
      "pallet",
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "cargo",
   "name": "Cargo items and shapes",
   "description": "What kinds of items the planner can take as input: boxes, cylinders, other shapes, soft goods and packaging levels.",
   "rows": [
    {
     "id": "cargo-box-items",
     "requirement": "The user can enter several box-shaped item types in one plan, each with length, width, height, weight and quantity.",
     "passCondition": "Documentation shows several cuboid item types with dimensions, weight and quantity in one calculation.",
     "definitionNote": "Record documented scale limits (for example EasyCargo: more than 10,000 items of up to 250 types). Item types that differ only in label (SeaRates 'sacks' and 'bigbags', which share the box schema) count here. Weight entered per piece or as a total does not matter.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "cargo-cylinders",
     "requirement": "The user can enter cylindrical items (drums, rolls, pipes) by diameter, and the planner packs them as cylinders rather than as bounding boxes.",
     "passCondition": "A documented cylinder item type with a diameter input.",
     "definitionNote": "Vendor advice to enter a bounding box instead fails. Whether cylinders nest, and whether the user can choose upright or lying, are separate rows. CubeMaster's SDK does not support rolls; its online product and API do.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "cargo-cylinder-nesting",
     "requirement": "The planner can nest cylinders in offset rows (hexagonal or pyramid packing), so that each sits in the gap between two cylinders below or beside it.",
     "passCondition": "Documentation of a nesting, staggered or honeycomb arrangement for cylindrical items.",
     "definitionNote": "Evidence only in release-note blog posts counts as claimed.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "cargo-shape-interlock",
     "requirement": "Two items of a non-rectangular shape can interlock: the planner uses the shape of both the item being placed and the item it is placed against (for example L-shapes nested into each other, or tapered items flipped against each other).",
     "passCondition": "Documentation shows the planner fitting a shaped item against another shaped item using both shapes, not only the bounding box of the item being placed.",
     "definitionNote": "Nesting of identical stackable items that only adds a set height per unit is covered by stacking-shape-aware, not here. Placing box-treated cargo into a shaped item's free space is the next row.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": true
    },
    {
     "id": "cargo-cavity-fill",
     "requirement": "Other cargo can be placed into the free space inside or under an item (a cavity, a frame, the space under an overhang or an L-shape's seat), with the placed cargo treated as its bounding box.",
     "passCondition": "Documentation shows cargo of a different item placed into the free space of another item.",
     "definitionNote": "Passes even if the placed cargo is handled as a box. Interlocking of two shaped items, which uses both shapes, is the previous row.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": true
    },
    {
     "id": "cargo-free-shapes",
     "requirement": "The user can enter items of arbitrary 3D shape (for example from a CAD or mesh model), and the planner packs the actual shape.",
     "passCondition": "Documentation of an arbitrary-geometry item input that the planner packs by its real shape.",
     "definitionNote": "Largely motivated by claims and documented absences: LoadOptimizer markets CAD/mesh input that its API documentation rejects, and Cube-IQ shows a disabled 'Complex' shape.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "cargo-bulk",
     "requirement": "The user can plan bulk or shapeless cargo given by volume and weight rather than by dimensions.",
     "passCondition": "A documented bulk or amorphous cargo input with a stated way of occupying space.",
     "definitionNote": "A bulk option that is listed with no description of how it is placed counts as claimed.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "cargo-compressible",
     "requirement": "The planner can compress a soft item (pillows, duvets) by up to a set percentage in a dimension so that it fits.",
     "passCondition": "A documented compression allowance per item, with a limit, applied by the planner.",
     "definitionNote": "CubeMaster documents that negative bulge (compression) is not applied. An allowance that enlarges items instead is the clearance row under positioning.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "cargo-pack-levels",
     "requirement": "An order quantity can be given in inner units, and the planner breaks it down into the item's available pack levels or bundles (each, case, layer, pallet, bundle).",
     "passCondition": "Documentation shows several packaging configurations for one item and the planner choosing the breakdown.",
     "definitionNote": "Pure arithmetic conversion (pieces to cases) does not pass. Includes configuration priorities, rounding to whole packs and preferred bundle sizes. packVol's load-by-objects pre-computes packages from counts; record it as a partial form.",
     "modes": [
      "general",
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "orientation",
   "name": "Orientation",
   "description": "Which ways up and which ways round an item may be placed, and rules that depend on orientation.",
   "rows": [
    {
     "id": "orientation-upright",
     "requirement": "The user can keep an item upright (a set face down), so that it is never tipped onto a side or an end.",
     "passCondition": "A documented per-item setting that keeps the item's vertical axis fixed.",
     "definitionNote": "A global 'load everything upright' switch passes only if it can be applied to specific items.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-no-turn",
     "requirement": "The user can stop an item turning about the vertical axis, so that it keeps a set direction relative to the equipment's length (for example forklift entry from the door).",
     "passCondition": "A documented per-item setting that fixes the horizontal orientation, or forces lengthwise or widthwise alignment.",
     "definitionNote": "Forcing the item's length along (or across) the vehicle passes. SeaRates documents no separate setting for rotation about the vertical axis.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-all-six",
     "requirement": "When the user allows it, the planner can place an item on any of its six faces.",
     "passCondition": "Documentation shows that an item may be laid on its side and stood on its end by the planner.",
     "definitionNote": "Non-orthogonal placement is the 'angled' row.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-side-not-end",
     "requirement": "The user can let an item lie on its side while forbidding it to stand on its end (that is, choose which of its dimensions may be vertical).",
     "passCondition": "A documented per-item setting that allows some but not all tipped orientations.",
     "definitionNote": "All-or-nothing rotation (Goodloading's 'any direction') fails. EasyCargo's single tilt flag fails.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-any-subset",
     "requirement": "The user can allow any subset of an item's six orientations.",
     "passCondition": "Documentation shows each of the six orientations can be allowed or forbidden independently (for example a six-bit mask or six checkboxes).",
     "definitionNote": "Axis toggles where each axis allows both directions may not reach every subset; the auditor checks whether, for example, 'upright lengthwise only, plus on its side crosswise only' can be expressed. Cube-IQ's 'Custom' option is referenced but its editor is not shown.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-preferred",
     "requirement": "The user can mark a preferred orientation that the planner uses where possible, while other orientations stay allowed.",
     "passCondition": "A documented soft preference for one orientation.",
     "definitionNote": "Includes an exception orientation allowed only for the last positions near the door (CubeMaster). A hard restriction is the rows above.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-floor-dependent",
     "requirement": "The user can allow an orientation only when the item is not on the floor (or only when it is).",
     "passCondition": "A documented rule that ties an allowed orientation to floor or non-floor placement.",
     "definitionNote": "Example: turned orientations only above the bottom layer (CubeMaster), floor-only in selected orientations (packVol).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-stacking-by-orientation",
     "requirement": "The user can set stacking limits (stack count or load-bearing weight) that differ with the item's orientation.",
     "passCondition": "A documented per-orientation stack limit or load-bearing limit for an item.",
     "definitionNote": "Separate 'on base' and 'on side' stack heights (MaxLoad) pass. A flag banning stacking on an item lying on its side passes. Record whether counts, weights or both vary. The Cube-IQ per-orientation grid is referenced but never shown; flag ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-angled",
     "requirement": "The planner can place items at angles other than multiples of 90 degrees (for example leaning against a wall).",
     "passCondition": "Documentation of automatic non-orthogonal placement.",
     "definitionNote": "Manual tilting in an editor is a workaround. Goodloading states its algorithm does not do this.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "orientation-cylinder-attitude",
     "requirement": "The user can choose whether a cylindrical item stands upright or lies down.",
     "passCondition": "A documented per-item upright/lying choice for cylinders.",
     "definitionNote": "Fixed types (barrels always upright, pipes always lying) pass as composable when both types exist, because the user chooses by type.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "stacking",
   "name": "Stacking and load-bearing",
   "description": "Where an item may sit vertically, how much it may carry and how many may stack, and the support rules for stacked items.",
   "rows": [
    {
     "id": "stacking-no-top",
     "requirement": "The user can make an item non-stackable, so that nothing is placed on top of it.",
     "passCondition": "A documented per-item setting that forbids any cargo on top of the item.",
     "definitionNote": "A load-bearing limit of zero passes. Marking every item non-stackable also gives a single-layer plan. packVol's top-only still allows the same item in the same orientation on top; record this.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-floor-only",
     "requirement": "The user can require an item to stand on the floor of the space.",
     "passCondition": "A documented per-item must-be-on-floor setting.",
     "definitionNote": "Includes soft 'prefer floor' variants only as a note; the row requires a hard rule. A rule that makes items floor-only by weight threshold passes composably.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-not-floor",
     "requirement": "The user can require an item to be placed on top of other items, never on the floor.",
     "passCondition": "A documented per-item must-not-be-on-floor setting.",
     "definitionNote": "Goodloading's route (non-stackable plus a list of permitted base items) is composable but has no documented example.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-max-count-same",
     "requirement": "The user can limit how many units of the same item may be stacked on each other.",
     "passCondition": "A documented per-item tier or stack-count limit.",
     "definitionNote": "Lowering the ceiling to force fewer layers (EasyCargo's tip) is a workaround. Goodloading's tier limit may also block other groups; record this.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-max-tier-any",
     "requirement": "The user can limit the tier an item may occupy, or the total number of tiers in a stack, whatever items are below it (for example never above the second tier).",
     "passCondition": "A documented limit on stack levels that counts different items, per item or for the whole unit.",
     "definitionNote": "Cube-IQ documents that its per-product limit does not cap mixed stacks; its separate container-wide level cap passes. MaxLoad's mixed stack limit is marked not implemented.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-max-height",
     "requirement": "The user can limit the height above the floor at which a specific item may be placed or to which it may be stacked.",
     "passCondition": "A documented per-item maximum placement or stacking height in length units.",
     "definitionNote": "A plan-level rule that derives the height limit from the base footprint (CubeMaster) passes as a variant; note it.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-bearing",
     "requirement": "The user can set the maximum weight an item may carry on top of it.",
     "passCondition": "A documented per-item load-bearing (weight on top) limit that the planner enforces.",
     "definitionNote": "Record whether the limit counts the whole column above or only the item resting directly on it, and whether it is evaluated as pressure over the contact area (packVol). Record scale limits: Cube-IQ switches this constraint off above 200 units.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-bearing-pressure",
     "requirement": "The load-bearing limit is evaluated as pressure (weight per area of the supporting face) rather than as a total weight per item.",
     "passCondition": "Documentation states that the bearing limit depends on the contact area or is given per support face as a pressure.",
     "definitionNote": "A plain weight limit per item passes stacking-bearing but not this row.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": true
    },
    {
     "id": "stacking-bearing-same-item",
     "requirement": "The load-bearing limit also applies within a stack of identical units.",
     "passCondition": "Documentation shows the weight-on-top limit checked when an item is stacked on units of the same item.",
     "definitionNote": "MaxLoad and CubeMaster state that like-item stacks are limited only by stack count; these are documented limitations.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-heavier-below",
     "requirement": "The planner never places an item on top of a lighter, different item.",
     "passCondition": "A documented weight-ordering stacking rule.",
     "definitionNote": "A minimum weight difference before the rule applies (CubeMaster) is a variant. A general claim that heavy goods go to the bottom counts as claimed.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-strength-index",
     "requirement": "The user can give items a numeric strength or fragility index, and the planner never places an item on one with a weaker index.",
     "passCondition": "A documented per-item stacking index with a stated ordering rule.",
     "definitionNote": "Record the direction of the rule; CubeMaster's sources disagree on it.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-item-pair",
     "requirement": "The user can state, for a specific pair of items, whether one may be stacked on the other.",
     "passCondition": "A documented item-to-item stacking permission list or matrix.",
     "definitionNote": "A class matrix passes when each item can be given its own class. 'Stack only on the same item' passes composably with such a matrix. CubeMaster's matrix is 'Desktop Only' in its online UI.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-footprint",
     "requirement": "The user can forbid an item from being stacked on an item with a smaller (or a different) footprint, or require stacks to form aligned columns.",
     "passCondition": "A documented footprint, alignment or column rule for stacking.",
     "definitionNote": "Merged: same-footprint, top-not-larger, face-on-face, corner-on-corner and same-orientation-as-below rules all pass; record which. MaxLoad's corner-support rule is undefined in its documentation; flag ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-min-support",
     "requirement": "The user can require a minimum share of an item's base to be supported (or limit how far it overhangs the item below), and the planner refuses unsupported placements.",
     "passCondition": "A documented support-percentage, overhang-over-support or centre-of-mass-over-support rule enforced by the planner.",
     "definitionNote": "Merged: support percentage, maximum overhang over the item below (distance or percent) and a centre-of-mass-over-support check all pass. A bare claim that 'every box is supported' is claimed. Record whether the threshold can be set per item or only per plan (CubeMaster: per plan only).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-bridging",
     "requirement": "The user can set how large a height difference between neighbouring supporting surfaces an item may bridge.",
     "passCondition": "A documented maximum vertical gap or height-difference parameter for stacking across several items.",
     "definitionNote": "Cube-IQ's palletising parameters (minimum bridging support, maximum height difference in a layer) are listed without explanation; flag ambiguous.",
     "modes": [
      "general",
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-shape-aware",
     "requirement": "Stacking uses the item's actual top shape: nestable items add only a set height per extra unit, and items with a smaller or open top carry load only on the real top surface.",
     "passCondition": "A documented nesting height increment or top-shape description used when stacking.",
     "definitionNote": "Record which of the two (nesting, top shape) is documented. CubeMaster's NestedCube and open-face values appear only in enumerations without descriptions.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "stacking-complete-only",
     "requirement": "The user can require that only complete stacks or complete layers of an item are loaded, with remainders handled separately.",
     "passCondition": "A documented complete-stacks, complete-layers or flat-top rule.",
     "definitionNote": "Record what happens to the remainder (left unloaded, moved to another pallet, sent to a mixed pallet).",
     "modes": [
      "general",
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "between",
   "name": "Rules between items",
   "description": "Keeping items together or apart, sharing rules, fixed ratios and per-unit caps on combinations.",
   "rows": [
    {
     "id": "between-identical-together",
     "requirement": "The planner can keep all units of the same item together in one block.",
     "passCondition": "A documented setting that keeps like items together (or stops identical items being spread).",
     "definitionNote": "SeaRates' remainsNear appears only in an example request; flag ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-group-together",
     "requirement": "The user can assign items to groups (such as orders or customers), and the planner keeps each group's items together in the unit.",
     "passCondition": "A documented group attribute and a keep-together rule.",
     "definitionNote": "Two-level grouping (sub-groups inside a group, CubeMaster Alias1/Alias2) passes and is noted. Groups that carry no solver behaviour (LoadOptimizer API V0.5) fail.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-group-one-unit",
     "requirement": "The user can require all items of a group to go in the same unit when the shipment needs several units.",
     "passCondition": "A documented rule that forbids splitting a group across units.",
     "definitionNote": "Record softer variants (split only if that avoids an extra unit, Cube-IQ) and the failure mode (Cube-IQ leaves an oversized unsplittable group unloaded).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-group-all-or-none",
     "requirement": "When not everything fits, a group of items (for example one order or shipment) is loaded completely or not at all.",
     "passCondition": "Documentation shows an option that leaves a whole group unloaded rather than loading part of it.",
     "definitionNote": "Per-stop all-or-nothing is sequence-stop-whole. Keeping a group in one unit (between-group-one-unit) does not pass this row unless the documentation says an unfitting group is left out whole.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": true
    },
    {
     "id": "between-sections",
     "requirement": "The user can have each group loaded in its own section of the unit, with no other group's items in it.",
     "passCondition": "A documented rule that separates groups into distinct sections (an invisible wall, zero overlap, segmented stops or barriers).",
     "definitionNote": "Record whether a physical divider of set thickness is inserted and accounted for (Goodloading barriers, LoadOptimizer segmented barrier, Cube-IQ drop wall).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-no-cross-stack",
     "requirement": "The user can forbid items of one group (order, stop, customer) from being stacked on items of another group.",
     "passCondition": "A documented group-level stacking ban.",
     "definitionNote": "A class stacking matrix passes composably when groups can be encoded as classes. MaxLoad's rule exists only as an undocumented load rule; a zero overlap setting achieves a similar result.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-not-same-unit",
     "requirement": "The user can prevent specific items or groups from sharing a unit.",
     "passCondition": "A documented rule, compatibility matrix or group-to-unit restriction that keeps chosen items out of the same unit.",
     "definitionNote": "SeaRates' route (groups restricted to fixed containers) works only for fixed containers. CubeMaster's hazardous-goods tag is claimed only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-spatial-separation",
     "requirement": "The user can keep specific items (or classes) apart within the same unit: at least a set distance apart, or never anywhere above one another.",
     "passCondition": "A documented separation-distance or not-above rule between items or classes in one unit.",
     "definitionNote": "A ban on direct contact only (stacking matrix) does not pass. LoadOptimizer names notAbove and separation rules but does not specify them; flag ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-dg-classes",
     "requirement": "The user can give items dangerous-goods classes, and the planner applies segregation between classes without the user defining each pair.",
     "passCondition": "A documented hazard-class attribute with built-in segregation rules.",
     "definitionNote": "Motivated mainly by claims and absences: several vendors suggest groups or codes for dangerous goods, which are scored under the composable rows. packVol documents nothing on hazmat.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-sum-cap",
     "requirement": "The user can cap, per unit, the total of a per-item quantity other than weight and volume, such as declared value, dangerous-goods points or piece count.",
     "passCondition": "A documented per-unit cap on the sum of at least one such per-item quantity.",
     "definitionNote": "Fixed quantities pass this row (Cube-IQ value and Q-value; CubeMaster price and piece count). A cap on any quantity the user chooses is the expressiveness row. Record documented ceilings (Cube-IQ caps loaded value at 9999999/2).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-distinct-cap",
     "requirement": "The user can cap how many distinct items (or orders) a unit may contain.",
     "passCondition": "A documented per-unit (or per-zone) limit on distinct item types or order numbers.",
     "definitionNote": "Setting the limit to 1 gives single-item units. Record whether items, orders or both can be capped.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-ratio",
     "requirement": "The user can require items to be loaded in a fixed ratio in every unit (for example one table to four chairs).",
     "passCondition": "A documented set or ratio rule applied per unit.",
     "definitionNote": "Record behaviour when the ratio cannot be met (MaxLoad returns no solution; packVol stops). Kits defined as products made of other products pass.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "between-batch",
     "requirement": "The user can require an item to be loaded into each unit only in multiples of a set number.",
     "passCondition": "A documented batch or multiple-of-N rule per item.",
     "definitionNote": "A fixed quantity per pallet is the pattern-control row under pallets.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "positioning",
   "name": "Positioning",
   "description": "Where in the unit items go: fixed placements, regions, fill direction, handling limits, clearances and load security.",
   "rows": [
    {
     "id": "positioning-lock-and-complete",
     "requirement": "The user can fix part of a plan (placed items, pre-loaded pallets or whole units) and have the planner complete or re-plan the rest around it.",
     "passCondition": "Documentation shows existing placements kept fixed while the planner adds or re-plans the remaining cargo.",
     "definitionNote": "Manual placement followed by automatic completion passes. Re-running the whole calculation that discards manual edits fails.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-fixed-coordinates",
     "requirement": "The user can give an item's exact position as input data, without manual placement in an editor, and the planner loads the rest around it.",
     "passCondition": "A documented input field for an item's position (coordinates) that the planner treats as fixed.",
     "definitionNote": "Dragging an item into place is a workaround. EasyCargo's vendor answer implies no fixed-position control.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-confine-region",
     "requirement": "The user can confine an item to a defined region of the unit, such as the front, the rear, one side or a zone.",
     "passCondition": "A documented per-item (or per-class) region, zone or location rule the planner respects.",
     "definitionNote": "Zones that accept only matching items pass. MaxLoad's front/middle/rear location is marked not implemented in the guide but appears in the import specification; flag ambiguous. CubeMaster's zones have no documented assignment of cargo.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-exclude-region",
     "requirement": "The user can keep items out of a defined region of the unit (for example the first metre at the door, or a central aisle).",
     "passCondition": "A documented rule that keeps an item, or all items, out of a region of a unit.",
     "definitionNote": "Differs from equipment obstructions in scope: it applies to a plan or an item, not to the equipment record. packVol's front/rear exclusion is UI-only (its ODBC fields are marked unused).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-fill-direction",
     "requirement": "The user can choose the direction in which the planner fills the unit (for example front to back, bottom to top or side to side).",
     "passCondition": "A documented setting with at least two fill directions or fill patterns.",
     "definitionNote": "A single fixed order (EasyCargo: front wall to back, largest first) fails. SeaRates' loadType values are listed without description; flag ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-floor-first",
     "requirement": "The user can make the planner cover the floor before stacking, for a whole plan or for specific items.",
     "passCondition": "A documented floor-first, spread or floor-to-ceiling strategy.",
     "definitionNote": "Either scope passes; record which. EasyCargo states it stacks upwards first by default and offers no switch.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-handling",
     "requirement": "The user can make the planner respect handling-equipment limits: how deep a loading block may reach, or room to turn an item with a forklift.",
     "passCondition": "A documented maximum reach or block depth, or a forklift-turning check.",
     "definitionNote": "Record which of the two is documented. packVol's forklift check applies to closed containers only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-clearance",
     "requirement": "The user can require clearance around items: a gap between all units, or extra space around a specific item.",
     "passCondition": "A documented gap or clearance setting (plan-wide or per item) that the planner leaves empty.",
     "definitionNote": "A per-item bulge allowance that makes an item occupy more than its nominal size passes (CubeMaster applies positive bulge only). Record the scope.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "positioning-shift-support",
     "requirement": "The planner makes sure every item is backed in the loading direction (and, if the user asks, sideways) by a wall or another item, so it cannot shift.",
     "passCondition": "A documented check that each item rests against the wall or another item, lengthwise and/or laterally.",
     "definitionNote": "packVol's rear-balance check, with its optional width check, is the only documented form. Motivated also by the dynamic-stability constraint in the literature.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "weight",
   "name": "Weight, balance and axle loads (enforced)",
   "description": "Weight limits, distribution and balance that the planner respects while building the plan. What the output reports about weight is in the output cluster.",
   "rows": [
    {
     "id": "weight-payload",
     "requirement": "The planner never exceeds the maximum payload of a unit, including a pallet's maximum load.",
     "passCondition": "A documented maximum-weight input per unit that the planner enforces.",
     "definitionNote": "Record scale limits and switches (EasyCargo turns the check off above 10,000 items; LoadOptimizer's implemented API has no carrier weight limit). A gross vehicle weight limit that includes the vehicle's tare passes.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "weight-compartment-cap",
     "requirement": "Each compartment, deck or part of a unit can have its own weight limit, which the planner respects.",
     "passCondition": "A documented weight limit per compartment, section, zone, deck or part.",
     "definitionNote": "Lengthwise sections of one open space are the next row.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-length-sections",
     "requirement": "The user can set different maximum weights for lengthwise sections of the unit (for example front, middle and rear floor sections).",
     "passCondition": "A documented per-section weight limit along the length that the planner enforces.",
     "definitionNote": "MaxLoad's segment limits are shown and highlighted, but whether they are enforced is not stated; flag ambiguous. Zones used for the purpose pass composably.",
     "modes": [
      "road",
      "sea",
      "rail"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-linear-density",
     "requirement": "The planner keeps the weight per unit of length below a set value everywhere along the unit.",
     "passCondition": "A documented maximum weight-per-length rule.",
     "definitionNote": "packVol's two modes (every strip, or floor length reserved per heavy package) both pass.",
     "modes": [
      "road",
      "sea",
      "rail"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-axle-limits",
     "requirement": "The user can set a maximum load for each axle group, and the planner does not produce a plan that exceeds it.",
     "passCondition": "Documentation stating that axle limits are respected while the plan is built (not only calculated afterwards).",
     "definitionNote": "Kept apart from the axle report (output cluster). Where the documentation shows axle loads calculated and flagged but does not say they are respected, the cell is 'reported only' and fails this row. MaxLoad says it 'will try'; Goodloading's API returns an overloaded axle.",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-axle-three-plus",
     "requirement": "The axle model accepts three or more axle groups on one vehicle, each with its own position and limit.",
     "passCondition": "A documented axle input that allows at least three groups per vehicle.",
     "definitionNote": "Applies to the axle model used for limits or reporting; record which. SeaRates' web tool allows exactly two; Cube-IQ's sources conflict (two axles vs an add-row grid).",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-axle-tare",
     "requirement": "The axle calculation includes the empty vehicle's own weight on each axle.",
     "passCondition": "A documented tare-per-axle, empty-axle-load or tare centre-of-gravity input used in the axle calculation.",
     "definitionNote": "A single vehicle tare with no distribution fails unless the documentation shows how it is split between axles.",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-axle-coupling",
     "requirement": "The axle calculation includes the towing unit: the load on a semi-trailer's kingpin (or on a drawbar) is passed to the tractor's axles.",
     "passCondition": "Documentation that coupling load is transferred to the towing vehicle's axles.",
     "definitionNote": "A kingpin reaction reported without tractor axle loads fails (MaxLoad marks tractor axle weights not implemented).",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-axle-legal",
     "requirement": "The planner can take axle and gross limits from a chosen jurisdiction or region (including axle-spacing rules and trip permits) rather than from values typed per vehicle.",
     "passCondition": "A documented region or jurisdiction setting that supplies legal limits.",
     "definitionNote": "Record which jurisdictions are documented, whether spacing-based rules (bridge formula, tandem/tridem) and permits are modelled, and whether the limits are enforced or only highlighted.",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-cog-longitudinal",
     "requirement": "The user can set a permitted range for the lengthwise position of the load's centre of gravity, and the planner keeps within it.",
     "passCondition": "A documented longitudinal centre-of-gravity range that the planner enforces.",
     "definitionNote": "A tolerance that only raises a warning (Goodloading) fails and is noted. MaxLoad lists a centre-of-gravity window as not implemented.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-cog-lateral",
     "requirement": "The user can set a permitted range for the sideways position of the load's centre of gravity (left/right balance), and the planner keeps within it.",
     "passCondition": "A documented lateral centre-of-gravity range, or maximum left/right difference, that the planner enforces.",
     "definitionNote": "A claim of left/right balancing with no documented parameter counts as claimed.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-cog-vertical",
     "requirement": "The user can cap the height of the load's centre of gravity.",
     "passCondition": "A documented vertical centre-of-gravity limit that the planner enforces.",
     "definitionNote": "packVol states its centre-of-mass rule has no vertical control; LoadOptimizer documents no vertical limit.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-balance-soft",
     "requirement": "The planner can improve weight distribution as a goal rather than a limit: moving the load's centre of gravity toward the centre, or evening out axle loads.",
     "passCondition": "A documented option that shifts or arranges the load for balance without a hard bound.",
     "definitionNote": "Moving the load by hand after the plan (MaxLoad's Weight button) is a workaround. Record whether it centres the centre of gravity, balances axles or both.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "weight-item-cog",
     "requirement": "The user can give an item an off-centre centre of gravity, and the weight calculations use it.",
     "passCondition": "A documented per-item centre-of-gravity offset input.",
     "definitionNote": "Goodloading allows it for cuboids only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "sequence",
   "name": "Sequencing, priority and multi-drop",
   "description": "Loading order, which cargo is loaded when not everything fits, and delivery-stop rules.",
   "rows": [
    {
     "id": "sequence-load-order",
     "requirement": "The user can set an order among items or groups, and the planner places earlier ones deeper in the unit (further from the door).",
     "passCondition": "A documented user-set sequence (list order, sequence number or group order) that the planner follows when placing.",
     "definitionNote": "Built-in sort rules only (heaviest first, largest volume first) fail this row; record them. Record the direction, which CubeMaster's help contradicts.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-priority-selection",
     "requirement": "When not everything fits, the user can decide by priority which items are loaded and which are left out.",
     "passCondition": "A documented priority that controls which items are loaded first or dropped.",
     "definitionNote": "A minimum quantity per item (packVol) passes. Removing items by hand fails.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-optional-items",
     "requirement": "The user can mark items as optional (fill items), so that they are loaded only into space left after all required items.",
     "passCondition": "A documented optional or fill-item flag.",
     "definitionNote": "Record whether optional items can respect the sequence (CubeMaster) and whether surplus fill items trigger another unit (MaxLoad: they do not).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-multi-drop",
     "requirement": "The user can assign items to delivery stops, and the planner places each stop's items nearer the door than the items for later stops.",
     "passCondition": "A documented stop or destination attribute with a load rule that orders stops along the unit.",
     "definitionNote": "A composable route from ordered groups passes only if the documentation says the order maps to position along the unit. Record priorities within a stop.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-multi-drop-strict",
     "requirement": "The planner guarantees that no item for a later stop is in front of or on top of an item for an earlier stop, so each stop unloads without moving other goods.",
     "passCondition": "Documentation stating that items of later stops never block earlier stops (front or above), as a hard rule.",
     "definitionNote": "A soft ordering fails. Record gaps such as packVol's 'no lateral check'. A layered mode (earlier stops on top, LoadOptimizer) passes for top access.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-stop-overlap",
     "requirement": "The user can set how far one stop's goods may overlap the next stop's along the unit's length.",
     "passCondition": "A documented overlap or mixing distance between stops or sequences.",
     "definitionNote": "Setting zero gives a clean vertical split. A look-ahead count of mixed sequences (Cube-IQ) is a variant; record it.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-pickup-delivery",
     "requirement": "The user can give items a pickup stop as well as a drop-off stop, and the planner keeps the load accessible at every stop.",
     "passCondition": "A documented per-item origin and destination stop.",
     "definitionNote": "Goodloading requires at least three stops and one loading space.",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-multi-drop-units",
     "requirement": "Stop-order rules still apply when the shipment spans several units.",
     "passCondition": "Documentation that multi-drop ordering works in multi-unit plans (within each unit or across consecutive units).",
     "definitionNote": "Goodloading states multi-stop works with one loading space only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-stop-whole",
     "requirement": "When not everything fits, each stop's (or sequence's) items are loaded completely or not at all.",
     "passCondition": "A documented rule that a stop or sequence is never partially loaded.",
     "definitionNote": "MaxLoad makes an exception for the first stop. Record other exceptions.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "sequence-date-assignment",
     "requirement": "The planner can assign items to units or shipping dates by due or storage date, within set limits.",
     "passCondition": "A documented date input and a rule that uses it to allocate cargo.",
     "definitionNote": "MaxLoad lists a 'Days Range' option as not implemented. Grouping an order pool by ship date and lane is claimed by LoadOptimizer only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "pallet",
   "name": "Pallet building, cartonisation and multi-stage loading",
   "description": "Building pallets (and cartons), how they are patterned, and loading built pallets into vehicles.",
   "rows": [
    {
     "id": "pallet-pallet-base",
     "requirement": "The user can build a load on a pallet, with the deck height counted and a maximum total height that includes the deck.",
     "passCondition": "Documentation of a pallet as a loading space with deck height and total height limit.",
     "definitionNote": "Pallet weight limits are scored under weight (payload).",
     "modes": [
      "pallet"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-single-item-pattern",
     "requirement": "For a single item type, the planner generates the layer pattern and number of layers for a pallet (Hi/Ti).",
     "passCondition": "Documentation of automatic single-item pallet pattern generation.",
     "definitionNote": "Record how many alternative patterns are offered.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-pattern-control",
     "requirement": "The user can steer the pallet pattern: choose a pattern style (block, pinwheel, interlocked), supply a saved pattern, fix the number of cases per pallet, or rotate alternate layers.",
     "passCondition": "At least one documented control over the pattern the planner builds.",
     "definitionNote": "Record which controls exist. A pinwheel arrangement of pallets or cases inside a vehicle (MaxLoad, Cube-IQ) is recorded here too.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-mixed-pallets",
     "requirement": "The planner builds pallets that carry several different item types.",
     "passCondition": "Documentation of automatic mixed-item pallet building.",
     "definitionNote": "Record whether mixed pallets are built in level layers or columns. EasyCargo states its pallet algorithm handles one item type only.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-overhang",
     "requirement": "The user can allow cargo to overhang the pallet edge by up to a set distance.",
     "passCondition": "A documented pallet overhang allowance with a limit.",
     "definitionNote": "LoadOptimizer states pallet overhang is not yet available in its app.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-deck-position",
     "requirement": "The user can control where the load sits on the pallet deck: centred, or within a set distance inside the edge.",
     "passCondition": "A documented centre-load or underhang (inset) setting.",
     "definitionNote": "Record which.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-interlayers",
     "requirement": "The planner inserts slip sheets or interlayers of a set thickness every N layers.",
     "passCondition": "A documented interlayer setting with thickness and frequency.",
     "definitionNote": "Wrapping, banding or corner boards that are only drawn fail.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-no-mix-groups",
     "requirement": "The user can prevent items of different groups (customers, orders, stops) from sharing a pallet.",
     "passCondition": "A documented rule keeping groups on separate pallets.",
     "definitionNote": "Includes combining purchase orders only in the last stage of a multi-stage plan (Cube-IQ).",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-build-then-load",
     "requirement": "In one run, the planner builds pallets from cases and then loads those pallets into vehicles or containers.",
     "passCondition": "Documentation of a single calculation that palletises and then loads the pallets.",
     "definitionNote": "Two separate runs with the result carried across is the next row. CubeMaster's Windows edition palletises only for sea container and truck loads.",
     "modes": [
      "pallet",
      "road",
      "sea"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-carry-over",
     "requirement": "A built pallet or packed carton can be carried into a later vehicle plan as an item with its actual size and weight, without re-entering them.",
     "passCondition": "Documentation of saving a pallet or carton result as a loadable item, or of assigning a built pallet to a vehicle.",
     "definitionNote": "Re-typing the pallet's size and weight by hand (EasyCargo's documented method) is a workaround. Inside/outside dimensions and tare of a carton or crate count toward the carried-over size.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-three-stage",
     "requirement": "The planner chains three or more packing levels (for example items into cartons, cartons onto pallets, pallets into trucks).",
     "passCondition": "Documentation of at least three nested levels in one plan or chained stages.",
     "definitionNote": "",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-split-routing",
     "requirement": "The user controls how an item's quantity splits between full pallets, partial or mixed pallets and loose loading (or packed versus shipped in its own box), or the planner decides per unit.",
     "passCondition": "A documented remainder rule or palletise-or-loose choice per item.",
     "definitionNote": "Record whether the user sets the rule or the planner decides. Includes a minimum height for a standalone pallet, breaking pallets into loose items to fill space, and shipping an item in its own box unless it fits a carton already in use.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-rules-in-vehicle",
     "requirement": "Built pallets get their own orientation and stacking rules in the vehicle, independent of the items on them (including whether a pallet may carry another and how full its top must be).",
     "passCondition": "Documented orientation, stacking or floor rules set on built pallets for the next stage.",
     "definitionNote": "SeaRates' minimum top-layer fill before another pallet goes on top passes. Cube-IQ does not stack pallets in stage 2 unless a feature code is set.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "pallet-height-to-vehicle",
     "requirement": "The planner sizes pallet height to the space available in the vehicle (for example shorter pallets for the top tier).",
     "passCondition": "Documentation of pallet heights adapted to the vehicle or to the space above a lower tier.",
     "definitionNote": "CubeMaster's 'dynamic' palletising algorithm is not described; flag ambiguous.",
     "modes": [
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "objective",
   "name": "Objectives and search control",
   "description": "What the planner optimises, and how the user controls the search.",
   "rows": [
    {
     "id": "objective-max-fill",
     "requirement": "The planner maximises the cargo loaded into a given set of units, leaving any excess unloaded.",
     "passCondition": "Documentation that the planner fills fixed units as fully as possible.",
     "definitionNote": "Record the measure (volume by default). Optimising across all given units at once (Goodloading) passes.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "objective-weight-objective",
     "requirement": "The user can make the planner maximise loaded weight (or weight utilisation) instead of volume.",
     "passCondition": "A documented weight-based objective or selection strategy.",
     "definitionNote": "",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "objective-balance-units",
     "requirement": "The planner can spread the load evenly over the units used, instead of filling each to the maximum in turn.",
     "passCondition": "A documented balancing or redistribution option across units.",
     "definitionNote": "Record the measure (volume, weight, count); packVol and LoadOptimizer do not define it.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "objective-quantity-fit",
     "requirement": "The planner works out how many units of an item (or complete sets) fit, or tops up leftover space with more of the items already planned, without a quantity being given.",
     "passCondition": "A documented cube-out, maximum-sets or top-up mode.",
     "definitionNote": "Record which of the three is documented.",
     "modes": [
      "general",
      "pallet"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "objective-time-quality",
     "requirement": "The user can trade calculation time for plan quality (for example a time limit, search depth, quality level or fast mode).",
     "passCondition": "A documented run-time or quality control.",
     "definitionNote": "Record whether results are reproducible (Cube-IQ states results vary between runs; packVol offers a random seed) and whether any mode drops features (Goodloading's simple algorithm).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "objective-alternatives",
     "requirement": "The planner returns several alternative plans (for example one per strategy or per candidate equipment) for the user to compare.",
     "passCondition": "Documentation of multiple solutions produced in one run.",
     "definitionNote": "Asking for the next alternative placement in an editor (MaxLoad's Reject) is noted.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  },
  {
   "id": "expressiveness",
   "name": "Expressiveness (user-built rules)",
   "description": "What users can express themselves by combining general mechanisms, beyond the vendor's named settings.",
   "rows": [
    {
     "id": "expressiveness-attribute-condition",
     "requirement": "The user can write a rule that selects items by a condition on an attribute (for example all items over 500 kg) and applies a constraint to them.",
     "passCondition": "A documented rule mechanism that selects items by an attribute condition.",
     "definitionNote": "A built-in single-attribute threshold (Cube-IQ: floor-only above a set weight) passes only for that attribute; record which attributes are supported.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-custom-attributes",
     "requirement": "The user can define their own item attributes and use them in planning rules.",
     "passCondition": "Documentation of user-defined fields that a rule, matrix or objective can select on.",
     "definitionNote": "Custom fields documented as display or report only fail (CubeMaster properties 1-10, MaxLoad SKU info, SeaRates attr, LoadOptimizer V0.5 labels). Free-text group or order fields that drive built-in rules are scored under the between-items rows.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-class-stack-matrix",
     "requirement": "The user can define item classes and a matrix of which class may be stacked on which.",
     "passCondition": "A documented class code per item and a class-to-class stacking matrix.",
     "definitionNote": "A rule allowing stacking only within the same class (CubeMaster equal stack values, Cube-IQ 'stack only if stack code the same') passes as the diagonal case. Record whether per-orientation exceptions are possible (packVol) and any size guidance (MaxLoad: keep to about 5-20 classes).",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-class-unit-matrix",
     "requirement": "The user can define item classes and a matrix of which classes may share a unit.",
     "passCondition": "A documented class code per item and a class-to-class compatibility matrix for sharing a unit.",
     "definitionNote": "Cube-IQ's combination-matrix article is referenced but not published; flag the matrix semantics ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-any-sum-cap",
     "requirement": "The user can cap, per unit (or per group within a unit), the sum of any per-item numeric value they choose.",
     "passCondition": "A documented mechanism in which the user chooses the attribute to be summed and capped.",
     "definitionNote": "Caps on fixed attributes (value, hazard points, count) pass only the between-items sum-cap row. A per-group cap on weight or volume within a unit (CubeMaster swagger) is recorded here as a partial form.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-rules-per-equipment",
     "requirement": "Rule settings can differ from one equipment unit to another within one plan.",
     "passCondition": "Documentation of rule or optimiser profiles assigned per unit or equipment type.",
     "definitionNote": "",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-combine-stacking",
     "requirement": "Several stacking criteria (for example footprint, weight order and a class matrix) can be active at the same time in one plan.",
     "passCondition": "Documentation that more than one stacking criterion applies simultaneously.",
     "definitionNote": "CubeMaster allows one stacking rule per plan, with a fixed set of composite rules; record which combinations exist.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-combine-objectives",
     "requirement": "The user can combine several objectives in a priority order or with weights (for example fewest units, then axle balance, within a tolerance).",
     "passCondition": "A documented mechanism for ordered or weighted multiple objectives.",
     "definitionNote": "A single selectable objective fails. LoadOptimizer's implemented API rejects a tolerance.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-custom-logic",
     "requirement": "The user can add their own constraint or objective logic (script, plug-in or callback) that the planner evaluates.",
     "passCondition": "Documentation of a user-accessible extension mechanism for constraints or objectives.",
     "definitionNote": "Vendor-configured rule sets (MaxLoad Load Rules 'with guidance from TOPS', Cube-IQ feature codes and BlackBox customisation) fail as user capabilities; record them. Motivated by their presence and by the absence of any user-level mechanism.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "expressiveness-hard-or-soft",
     "requirement": "For a given rule, the user can choose whether it is a hard limit or a preference the planner follows where it can.",
     "passCondition": "Documentation shows at least one constraint type that can be set either as a hard rule or as a soft preference.",
     "definitionNote": "Rows that name a single preference (orientation-preferred, positioning-floor-first, weight-balance-soft) are scored separately; this row asks whether the choice between hard and soft exists for at least one constraint type that also has a hard form.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": true
    }
   ]
  },
  {
   "id": "output",
   "name": "Plan output",
   "description": "What the finished plan reports. Reporting a value is separate from respecting it (see the weight cluster).",
   "rows": [
    {
     "id": "output-positions",
     "requirement": "The plan gives the position and orientation of every loaded unit, individually or as blocks with counts along each axis.",
     "passCondition": "Documented coordinates (and orientation or placed dimensions) for each unit or block.",
     "definitionNote": "Record the origin and axes, and whether orientation is a code or only implied by placed dimensions.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "output-steps",
     "requirement": "The plan includes step-by-step loading instructions, with a diagram for each step.",
     "passCondition": "Documented step-by-step instructions with per-step views.",
     "definitionNote": "Record the step types available (by placement, stop, layer).",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "output-contents-utilisation",
     "requirement": "The plan lists, for each unit (including each built pallet), which items it holds and how many, and its volume and weight utilisation.",
     "passCondition": "Documented per-unit contents and utilisation figures.",
     "definitionNote": "Pallet reports with cases per layer and layers (Hi/Ti) are noted. Cube-IQ's pallet stability index is noted.",
     "modes": [
      "general"
     ],
     "baseline": true,
     "addedByCoordinator": false
    },
    {
     "id": "output-loading-metres",
     "requirement": "The plan reports the floor length used or left free (loading metres).",
     "passCondition": "A documented loading-metre, length-used or end-gap figure.",
     "definitionNote": "",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-unplaced",
     "requirement": "The plan lists the items that could not be loaded, with quantities.",
     "passCondition": "A documented not-loaded or cut list.",
     "definitionNote": "SeaRates documents no such list.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-unplaced-reasons",
     "requirement": "The plan states why each unplaced item was not loaded.",
     "passCondition": "A documented reason per unplaced item (for example too large, over weight, no space, rule violation).",
     "definitionNote": "A general list of typical causes (Cube-IQ) fails. A warning shown only when nothing at all could be loaded (EasyCargo) fails.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-cog",
     "requirement": "The plan reports the load's centre of gravity as a position (lengthwise and sideways).",
     "passCondition": "A documented numeric centre-of-gravity output, or numeric offsets from the centre of the space.",
     "definitionNote": "A marker drawn in a view with no number (packVol, Cube-IQ diagrams) fails and is noted. EasyCargo documents offsets after centring; its centre-of-gravity report is claimed in a blog only.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-axle-loads",
     "requirement": "The plan reports the load on each axle group and whether it is within its limit.",
     "passCondition": "Documented per-axle load figures in the output.",
     "definitionNote": "Record whether limits and margins are shown. CubeMaster documents the report but not the axle inputs.",
     "modes": [
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-length-distribution",
     "requirement": "The plan reports how weight is distributed along the unit's length (per section or per unit length).",
     "passCondition": "A documented weight-distribution output along the length.",
     "definitionNote": "",
     "modes": [
      "road",
      "sea",
      "rail"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-gross-mass",
     "requirement": "The plan reports gross weight including the equipment's tare (for example for a verified gross mass declaration).",
     "passCondition": "A documented gross or total weight that includes tare.",
     "definitionNote": "LoadOptimizer's VGM claim is not reflected in its result schema.",
     "modes": [
      "sea",
      "road"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-per-stop",
     "requirement": "The plan gives per-stop information: the contents for each stop and a view of the unit at each stop.",
     "passCondition": "Documented per-stop summaries or views.",
     "definitionNote": "CubeMaster's routing and time-window reports have no documented inputs; flag ambiguous.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-rule-check",
     "requirement": "The planner checks a plan, including one edited by hand, against the item rules and lists any violations.",
     "passCondition": "Documented rule validation of an edited or imported plan, with a violations list or warnings.",
     "definitionNote": "Editors that block collisions only (EasyCargo states its item constraints are not enforced) fail. A single height warning (LoadOptimizer) is noted.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-voids",
     "requirement": "The plan identifies empty voids above a set size (for example for dunnage or airbags).",
     "passCondition": "Documented void or empty-space output.",
     "definitionNote": "Automatic airbag insertion (CubeMaster SDK) passes.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    },
    {
     "id": "output-cost",
     "requirement": "The plan reports the cost of the equipment used, and the cost allocated to each item.",
     "passCondition": "Documented plan cost output.",
     "definitionNote": "Record whether per-item allocation is included.",
     "modes": [
      "general"
     ],
     "baseline": false,
     "addedByCoordinator": false
    }
   ]
  }
 ],
 "products": [
  {
   "id": "cargo-planner",
   "name": "Cargo-Planner",
   "vendor": "Cargo-Planner",
   "url": "https://cargo-planner.com/",
   "auditedOn": "2026-09-30",
   "caveat": "Cargo-Planner published this comparison. It was scored last, from its public website only, by an auditor who had not worked on the competitor audits, under rules fixed before it was scored.",
   "scope": "Live public site cargo-planner.com as served on 2026-09-30 (docs undated;",
   "sources": [
    {
     "title": "Cargo-Planner Docs (53 English pages)",
     "url": "https://cargo-planner.com/docs/"
    },
    {
     "title": "Cargo-Planner API 2.1.0 OpenAPI schema (rendered by Redoc at https://api.cargo-planner.com/api/2/docs/)",
     "url": "https://api.cargo-planner.com/api/2/schema/"
    },
    {
     "title": "Guides (18 pages, vendor-written scenario/how-to/explainer/reference pages)",
     "url": "https://cargo-planner.com/guides/"
    },
    {
     "title": "News (16 posts, Nov 2022 - Sep 2026)",
     "url": "https://cargo-planner.com/news/"
    },
    {
     "title": "Features hub and four step pages",
     "url": "https://cargo-planner.com/features/"
    },
    {
     "title": "Six solutions pages, four *-loading-software pages, home, integration, pricing, calculators",
     "url": "https://cargo-planner.com/solutions/freight-forwarders/"
    }
   ],
   "passed": 109,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A container is defined by an internal length, width, height and payload but does often have additional properties.",
       "url": "https://cargo-planner.com/docs/introduction/"
      },
      {
       "text": "Inside length in meters",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldData.L)"
      }
     ],
     "recipe": "",
     "note": "Library of preset containers, trailers, ULDs, pallets plus custom containers; typed or overridden dimensions via API container_types.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use the Components tab in the container editor to model the geometry that lives inside a container: corner posts, structural frames, internal walls, mezzanine floors, and arbitrary blocks that occupy space or provide a loading surface. The load plan treats each component as a solid shape the solver must place cargo around.",
       "url": "https://cargo-planner.com/docs/equipment/hold-parts/"
      },
      {
       "text": "X, Y, Z | Position of the part inside the container, measured from the front-left-floor corner.",
       "url": "https://cargo-planner.com/docs/equipment/hold-parts/"
      }
     ],
     "recipe": "",
     "note": "Stacking on top of an obstruction is controlled per component: \"Not stackable\" flag and \"Max load\" (weight the part can support on its top surface). Wheel wells are shown modelled this way in the touring guide.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Custom | Custom part",
       "url": "https://cargo-planner.com/docs/equipment/hold-parts/"
      },
      {
       "text": "Every component uses the same six-field layout. The title of each card shows the position number and the component’s raw type in upper case (1 - WALL, 2 - CORNER, 3 - FLOOR).",
       "url": "https://cargo-planner.com/docs/equipment/hold-parts/"
      }
     ],
     "recipe": "",
     "note": "Multiple components per container, each with its own L/W/H and X/Y/Z (or anchoring). No stated maximum count. Separately, custom rule \"Cannot be loaded in zone\" gives per-plan keep-clear regions anchored to container sides.",
     "searched": "",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Do adjustments on the fly like Max Loading Height, Payload, Max Volume etc...",
       "url": "https://cargo-planner.com/features/equipment/"
      },
      {
       "text": "Max loading height allowed of cargoes in m",
       "url": "https://api.cargo-planner.com/api/2/schema/ (InlineHoldData.max_height)"
      }
     ],
     "recipe": "",
     "note": "Per-equipment Max loading height is editable per load plan in Setup (\"Now you can change some container properties on the fly\") without editing the library container; plan-level Max stacking height also exists. The docs mostly show max height used to raise the limit on open equipment (wrong-settings page); lowering it below internal height rests on the field definition.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use the Decks card on the Road tab to describe trailers with raised loading platforms at the front or rear — step-decks, low-boys, drop-decks and any custom shape where the deck height changes along the length of the trailer.",
       "url": "https://cargo-planner.com/docs/equipment/decks/"
      },
      {
       "text": "Length | How far the raised area reaches from that end of the trailer. ... Height | How much higher the deck sits above the main floor.",
       "url": "https://cargo-planner.com/docs/equipment/decks/"
      }
     ],
     "recipe": "",
     "note": "Decks span the full width only; mezzanine levels are floor components.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Each contour is a triangular cut into one corner of the container envelope. The load plan treats the cut as unusable space.",
       "url": "https://cargo-planner.com/docs/equipment/contours/"
      },
      {
       "text": "A container can have a maximum of eight contours — one at each corner (front top, front bottom, rear top, rear bottom, and the four equivalents on the two long sides).",
       "url": "https://cargo-planner.com/docs/equipment/contours/"
      }
     ],
     "recipe": "",
     "note": "Side 1 / Side 2 contours cut the cross-section (e.g. ULD lower-deck cut-backs). One triangular cut per corner; arbitrary polygons need components.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A container can have a maximum of eight contours — one at each corner (front top, front bottom, rear top, rear bottom, and the four equivalents on the two long sides). Rotate the 3D preview on the right to see all of them.",
       "url": "https://cargo-planner.com/docs/equipment/contours/"
      },
      {
       "text": "Contours — triangular cuts at the bow and stern corners of the hold to describe the taper of the hull.",
       "url": "https://cargo-planner.com/docs/equipment/breakbulk-vessels/"
      }
     ],
     "recipe": "",
     "note": "Front/rear contours change the floor or ceiling height along the length; side contours change the cross-section; all eight are defined on the same container. Decks (lengthwise steps) and contours are both tabs of the same container editor.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use the Contours tab to describe corners of a container that are not perfect right angles: the sloped nose of a trailer, the curved top of a ULD, the tapered sides of a specialty flatrack. Each contour is a triangular cut into one corner of the container envelope.",
       "url": "https://cargo-planner.com/docs/equipment/contours/"
      },
      {
       "text": "Length or Width | How far in from the corner edge the cut starts. ... Height | How much of the corner is cut away, measured from the floor or ceiling.",
       "url": "https://cargo-planner.com/docs/equipment/contours/"
      }
     ],
     "recipe": "",
     "note": "The ULD guide states curves themselves are not modelled (\"Curves themselves are a hard problem\"), so a curved roof is one chamfer per corner.",
     "searched": "",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Add a Floor preset, set the Z position to the mezzanine height, and Stick to Side 1 + Side 2 so the floor spans the full width. Leave Not stackable off and set Max load to describe what the mezzanine can carry.",
       "url": "https://cargo-planner.com/docs/equipment/hold-parts/"
      },
      {
       "text": "Set Builder is the tool for defining a piece of equipment that contains more than one container: an aircraft with cargo bays, a cargo vessel with holds, a road train with a tractor and trailers, a warehouse with numbered bays. The load plan then treats the whole thing as one unit and places cargo across its parts according to a fixed layout.",
       "url": "https://cargo-planner.com/docs/equipment/set-builder/"
      }
     ],
     "recipe": "",
     "note": "Most widely available form: floor/wall components inside one container. The full multi-hold/road-train form (Set Builder) is Enterprise-only.",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the containers you have selected also have the door property set which is smaller than the cargoes you will also receive this message.",
       "url": "https://cargo-planner.com/docs/help/faq/"
      },
      {
       "text": "Door info ... Door height in m ... Door width in m",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldData.door / HoldDoor)"
      }
     ],
     "recipe": "",
     "note": "Set Builder group doors are explicitly \"not currently enforced by the load calculation\"; the container-level door is enforced per the FAQ.",
     "searched": "",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the door is at longside of container",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldDoor.longside)"
      },
      {
       "text": "Each group can carry a door specification — width, height, and an At longside flag — for future-facing use. Door dimensions are stored with the set but are not currently enforced by the load calculation.",
       "url": "https://cargo-planner.com/docs/equipment/set-builder/"
      }
     ],
     "recipe": "",
     "note": "A longside-door flag exists but no page says it changes how the load is built; the set-level door incl. At longside is stated as not enforced. Loading style (front-to-back / bottom-up) is a fill direction, scored under positioning. Open-top containers are \"Loaded from above\" as a description of the equipment, not as a solver setting.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"side load\", \"curtain\", \"longside\", \"access\", \"loading face\", \"top load\", \"door\"; container editor, open containers, set builder, primary settings (loading style), API HoldDoor.",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "No roof | Removes the ceiling | Cargo may extend upward past the container height, capped only by Max height if set. No side walls | Removes Side 1 and Side 2 | Cargo may overhang laterally past the width. No end walls | Removes Front and Rear | Cargo may overhang past the length.",
       "url": "https://cargo-planner.com/docs/equipment/open-containers/"
      },
      {
       "text": "Max length, Max width, max height on the trailer | Setup → Expand selected equipment | Grants items permission to overhang in given directions by a set distance.",
       "url": "https://cargo-planner.com/docs/cargo/oog/"
      }
     ],
     "recipe": "",
     "note": "Source nuance: the open-containers page says overhang \"is unbounded on any open side unless the equipment has a Max length, Max width or Max height set\", while the OOG page states a 33% default. API field descriptions for no_roof and no_side_walls are swapped (no_roof says \"If there should be side walls\").",
     "searched": "",
     "corrected": {
      "reason": "Before publication, Cargo-Planner corrected its open-containers page, which had contradicted the 33% out-of-gauge default stated elsewhere. The verdict is unchanged."
     }
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If all rows have a quantity set, then the tool loads the cargoes in as many containers as is necessary",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "This view contains all the containers needed to load the provided cargoes. In the top there is a summary containing how many and what type of containers are used",
       "url": "https://cargo-planner.com/docs/creating-a-loadplan/"
      }
     ],
     "recipe": "",
     "note": "Limits: max 40 000 loadable cargoes per calculation; optional cap via \"Max number of trailers to be used\" / per-type qty.",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If more than one container type is available here then the tool will try to determine which one(s) is most suitable.",
       "url": "https://cargo-planner.com/docs/creating-a-loadplan/"
      },
      {
       "text": "The solver then chooses between the selected equipment (containers, pallets, sets) based on the load and its constraints.",
       "url": "https://cargo-planner.com/docs/equipment/set-builder/"
      }
     ],
     "recipe": "",
     "note": "The docs example (wrong-settings) shows a 20ft DV, 40ft HC and 40ft OT selected together with the tool assigning cargo across types.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A max number of this container type to be avaialable",
       "url": "https://api.cargo-planner.com/api/2/schema/ (InlineHoldData.qty)"
      },
      {
       "text": "All of the configurations for the premade aircrafts are active by default. Set the max quantity of the ULDs available to 0 in order to disable certain configurations.",
       "url": "https://cargo-planner.com/docs/equipment/planning-aircrafts/"
      }
     ],
     "recipe": "",
     "note": "Per-type qty (API; \"max quantity\" in aircraft setup) and a combined max_containers cap. The docs state the remainder becomes unloaded items for the combined cap.",
     "searched": "",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load items into existing containers first. Either this and / or `container_types`/`set_types`/`sets` field needs to be set",
       "url": "https://api.cargo-planner.com/api/2/schema/ (Calculation.containers)"
      },
      {
       "text": "To force the plan to always fill sets before falling back to individual containers, enable Load in sets in Primary settings.",
       "url": "https://cargo-planner.com/docs/equipment/set-builder/"
      }
     ],
     "recipe": "",
     "note": "A library \"priority\" integer on holds (Hold.priority) has no description and is not relied on.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The cost of this container. Does not need to be a currency, but a number. Example, 100 for a 20ft DV and 180 for a 40ft DV.",
       "url": "https://api.cargo-planner.com/api/2/schema/ (InlineHoldData.cost)"
      },
      {
       "text": "Select the container types you are willing to book in the setup step and give each one a fixed container cost — the freight rate you would actually be quoted for it. The plan then minimises total cost rather than maximising how full each container is",
       "url": "https://cargo-planner.com/guides/planning-an-export-container-shipment/"
      }
     ],
     "recipe": "1. Offer several container types and give each a fixed cost that rises with size (API InlineHoldData.cost, example 100 for 20ft / 180 for 40ft) [api]. 2. The solver minimises total cost across the plan [cost-function page: \"Cargo-Planner will try to find a solution where the cost is minimal\"; export-container guide]. 3. With size-ordered costs, the minimum-cost solution uses the smallest type(s) that hold the load, including for the last unit [inferred from 1-2].",
     "note": "No dedicated \"smallest sufficient type\" or last-unit downsizing option is documented. greedy_container_selection (\"Generally minimizes the contents of the last container-type\") is a related but different API switch. Without costs the docs only say the tool picks the \"most suitable\" types.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Default Cost | The set’s default relative cost, used by the solver’s cost objective when the set is chosen.",
       "url": "https://cargo-planner.com/docs/equipment/set-builder/"
      },
      {
       "text": "The plan then minimises total cost rather than maximising how full each container is, which are two different answers whenever container types are priced differently.",
       "url": "https://cargo-planner.com/guides/planning-an-export-container-shipment/"
      }
     ],
     "recipe": "",
     "note": "Flat cost per container/set type; optional cost function adds per-container costs; no rate tables. Solver wording is \"will try to find a solution where the cost is minimal\".",
     "searched": "",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max loading volume allowed of cargoes in m3",
       "url": "https://api.cargo-planner.com/api/2/schema/ (InlineHoldData.max_volume)"
      },
      {
       "text": "Do adjustments on the fly like Max Loading Height, Payload, Max Volume etc...",
       "url": "https://cargo-planner.com/features/equipment/"
      }
     ],
     "recipe": "",
     "note": "Cap is an absolute volume (m3) per container, and payload can be overridden lower per plan; no percentage input. A percentage cap is reached by arithmetic on the container volume.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Items cannot be loaded in a container that doesn't meet the limitations provided. The rule is applied after the container is finished loading",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "",
     "note": "The API condition cannot_load_in_container_with could plausibly express a minimum-fill test, but \"the limitations provided\" are not described anywhere, so it does not meet the pass condition (undescribed field). Minimize mixing thresholds concern mixing, not fill.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"minimum\", \"min fill\", \"min_\", \"under-filled\", \"at least\", \"threshold\"; primary settings, custom rules page, API ConditionEnum and settings.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If a cargo needs to be loaded in a specific container type then double-click in this column and a new dialog will be shown where you can select the allowed equipments.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "We need to tell the app to load the cargo in specific pallet types. To do this, we double click the “load in” column for the cargo, and in the dialog we select the pallets that this cargo should be loaded in.",
       "url": "https://cargo-planner.com/docs/equipment/working-with-pallets/"
      }
     ],
     "recipe": "",
     "note": "Per item (Load in / allowed_containers) and per selector (Must be loaded in / Cannot be loaded in rules); includes pallet type.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load items into a designated space into a designated container",
       "url": "https://api.cargo-planner.com/api/2/schema/ (/api/2/calculate/load_into_space/)"
      },
      {
       "text": "Load items into this container",
       "url": "https://api.cargo-planner.com/api/2/schema/ (LoadIntoSpace.container)"
      }
     ],
     "recipe": "",
     "note": "Only via API endpoints that load given items into one designated existing container. In the web app, assignment to an individual unit is by drag and drop (workaround); the Load in column and rules work on container types, not individual units.",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "What none of this does is invent a crate size. It evaluates the configurations you give it.",
       "url": "https://cargo-planner.com/guides/designing-a-crate-for-shipping/"
      }
     ],
     "recipe": "",
     "note": "The crate guide recommends building two or three candidate crates and comparing counts. The Packaging and crating solutions page claims \"Design optimal crate dimensions\" (marketing), contradicted by the guide.",
     "searched": "",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Each row needs at least data for the following fields to be accepted: Length Width Height Weight",
       "url": "https://cargo-planner.com/docs/creating-a-loadplan/"
      },
      {
       "text": "Max number of loadable cargoes in one calculation: 40 000",
       "url": "https://cargo-planner.com/docs/introduction/"
      }
     ],
     "recipe": "",
     "note": "Limits: 40 000 loadable cargoes per calculation; minimum side 1 mm, minimum volume 3 cm3. No limit on number of item types stated.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cylinders appear in the load plan as proper rounded objects (not boxes), and hollow cylinders show the internal cavity. Supported in excel exports, placement and instructions",
       "url": "https://cargo-planner.com/docs/cargo/cylinders/"
      },
      {
       "text": "For Regular Cylinders: Length: Outer diameter of the cylinder Width: Outer diameter of the cylinder (typically same as Length for circular cross-section) Height: Length/height of the cylindrical object",
       "url": "https://cargo-planner.com/docs/cargo/cylinders/"
      }
     ],
     "recipe": "",
     "note": "Solid and hollow cylinders (outer and inner diameter). Whether packing uses the round shape rather than the bounding box is stated only for display/placement (\"proper rounded objects\").",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We’ve added pipe and coil loading capabilities to Cargo-Planner, with the possibility to nest pipes within pipes.",
       "url": "https://cargo-planner.com/news/pipe-loading/"
      }
     ],
     "recipe": "",
     "note": "Only telescoping (pipes inside hollow pipes) is documented, which is cavity use, not offset-row nesting. Marketing says the tool \"will find an optimized solution even if you add pipes and boxes\" without describing arrangement.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"nest\", \"honeycomb\", \"stagger\", \"pyramid\", \"hexagonal\", \"offset\"; cylinders doc, pipe-loading news post, road/sea landing pages, feature pages.",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "It lets you specify what a master carton looks like, how a pallet should be packed when full, or represent packing of a non-regular interlocking shape.",
       "url": "https://cargo-planner.com/docs/cargo/bundling/"
      },
      {
       "text": "In this example we created a bundle that is larger than the sum of its parts (due to the cardboard mentioned earlier), but if we have a shape that interlocks a certain way, we can also create something that is smaller.",
       "url": "https://cargo-planner.com/docs/cargo/bundling/"
      }
     ],
     "recipe": "",
     "note": "The user works out the interlocked pair outside the tool and enters the combined bundle dimensions; the planner does not use both shapes. Inner spaces place cargo by its outer dimensions.",
     "searched": "",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Inner spaces allow you to define hollow areas inside cargo that can be used for additional loading space. This feature is useful for items like cabinets, shelving units, L-shaped furniture, and any cargo with usable internal cavities.",
       "url": "https://cargo-planner.com/docs/cargo/inner-spaces/"
      },
      {
       "text": "The inner spaces become available loading areas - Smaller cargo items can be loaded into the inner cavities - Weight and stacking rules still apply within inner spaces",
       "url": "https://cargo-planner.com/docs/cargo/inner-spaces/"
      }
     ],
     "recipe": "",
     "note": "Up to 10 box-shaped cavities per item, positioned by anchors or X/Y/Z; hollow cylinders also take items. Custom rule \"Cannot contain\" restricts what goes inside. The crate guide notes the host item is not reported as a container.",
     "searched": "",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "3D model",
       "url": "https://api.cargo-planner.com/api/2/schema/ (FileTypeEnum)"
      }
     ],
     "recipe": "",
     "note": "Geometry is box, cylinder or hollow cylinder; \"Complex geometries\" are handled via inner spaces (box cavities). Items can have an attached file of type \"3D model\" but no page says the planner packs by it. Project-logistics marketing claims \"Model complex geometries\", undocumented.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"CAD\", \"mesh\", \"STL\", \"3D model\", \"arbitrary\", \"irregular\", \"complex geometr\"; cargo properties (Geometry), inner spaces, API GeometryEnum/FileTypeEnum.",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "\"Breakbulk\" pages concern piece cargo in vessel holds, not bulk cargo.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"bulk\", \"liquid\", \"shapeless\", \"amorphous\", \"by volume\"; cargo properties, API GeometryEnum.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In the same way if a value of -10 is provided then the cargo will be smaller than the provided dimension. This might be useful to simulate cargoes that can be “compressed” when loading by pushing and squeezing.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "Compression exists only as a plan-wide negative error margin (-50 to 50 %) applied to every cargo, not as a per-item allowance; the pass condition requires per item.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"compress\", \"squeeze\", \"bulge\", \"error margin\", \"margin\"; cargo properties, primary/secondary settings, custom rules, API item fields.",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We want to pack 644 pieces, which means that the tool will first fill an entire pallet (with 460 pieces). The remaining 184 pieces will be loaded in the 15 pcs of the 12-packs (a total of 180 pcs), the remaining 4 pieces don’t divide evenly with a 12-pack, so the remainder will be loaded piece by piece.",
       "url": "https://cargo-planner.com/docs/cargo/bundling/"
      },
      {
       "text": "A list of possible bundles that this item can utilize",
       "url": "https://api.cargo-planner.com/api/2/schema/ (Bundling.bundles)"
      }
     ],
     "recipe": "",
     "note": "Several bundle levels per item with their own dimensions, weight and properties; partial bundles and even spread options. The documented breakdown fills the largest level first.",
     "searched": "",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rotatable The cargo can be rotated. Default option for box geometry",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      },
      {
       "text": "Possible orientations - this will overide not_rotatable and tiltable properties. 1 = Longship, 3 = Rotatable, 63 = Tiltable",
       "url": "https://api.cargo-planner.com/api/2/schema/ (InputItem.orientations)"
      }
     ],
     "recipe": "",
     "note": "Per item. \"Rotatable\" (value 3) = the two orientations with the original height vertical, i.e. upright with turning allowed.",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Longship The cargo can only be loaded in its lengthwise direction",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      },
      {
       "text": "If true, item can only be loaded in lengthwise direction",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ExtendedBaseItem.not_rotatable)"
      }
     ],
     "recipe": "",
     "note": "Per item (Longship = orientation value 1). Also per rule: \"Must load with pattern\" restricted heightwise two-block keeps most cargo longship.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Tiltable The cargo can be rotated in any direction",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      },
      {
       "text": "Tiltable (index 63 orientations): Can be oriented in any direction",
       "url": "https://cargo-planner.com/docs/cargo/cylinders/"
      }
     ],
     "recipe": "",
     "note": "Per item (value 63 = all six bits).",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Custom You can set a custom orientation as well and select variations of the above.",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      },
      {
       "text": "If you need to enter an orientation for your cargo through the Excel sheet or by using the API - you have to enter a number from 1-63 - (which is what the app is using internally). This number is actually a bit mask of values between 1-63.",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      }
     ],
     "recipe": "",
     "note": "A six-bit mask (1-63) with one bit per orientation allows partial tipped sets. Only bits 1 and 2 are named; the meaning of bits 4, 8, 16, 32 is not listed, and the custom editor is shown only in screenshots (pipe-loading news: \"We’ve clicked the Custom value in Orientations to get a 3D view of the rotations that are allowed\").",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you need to enter an orientation for your cargo through the Excel sheet or by using the API - you have to enter a number from 1-63 - (which is what the app is using internally). This number is actually a bit mask of values between 1-63.",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      },
      {
       "text": "The first orientation, which in the app is called “Longship” means a value of 1. The second orientation which essentially means the cargo rotated around its Z axis has a value of 2. This means that if you allow both those values it results in an orientation number of 3",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      }
     ],
     "recipe": "",
     "note": "Same evidence as side-not-end; 63 values = 2^6-1 non-empty subsets of six orientations.",
     "searched": "",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Restricted heightwise two block — like heightwise two block, but with strict limitations that keep the majority of cargo oriented longship",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "No per-item soft orientation preference. The closest is a pattern option that keeps \"the majority\" of cargo longship, which is a pattern, not a preferred orientation.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"prefer\", \"preferred\", \"where possible\", \"soft\"; orientations doc, cargo properties, custom rules, API.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Custom rules can combine selectors but no condition ties orientation to floor/non-floor placement.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"floor\", \"bottom layer\", \"orientation\" combined with floor/bottom; custom rules conditions list (API ConditionEnum), orientations doc.",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Max layers and max load are single values per item.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"on side\", \"per orientation\", \"orientation\" with \"layers\"/\"max load\"/\"stack\"; cargo properties, custom rules, API item fields.",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "\"Tiltable\" means any of the six orthogonal orientations. The windows case study describes windows leaning on a pallet wall modelled as custom equipment, not angled placement by the planner. The interactive view allows manual rotation (workaround).",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"angle\", \"lean\", \"tilt\", \"degrees\", \"non-orthogonal\"; orientations doc, interactive view, news (windows on trailers).",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cylinders, Standing The cargo can only be loaded standing. Default option for cylinders",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      },
      {
       "text": "Cylinders, Laying (crosswise) The cargo can only be loaded laying in its crosswise direction",
       "url": "https://cargo-planner.com/docs/cargo/orientations/"
      }
     ],
     "recipe": "",
     "note": "Per item. Minor source conflict: the cargo-properties page says \"Cylinder: A cylinder laying down\" while the orientations and cylinders pages say cylinders stand by default.",
     "searched": "",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Not stackable If checked, then no cargo (including itself) is allowed to be put on top. The cargo itself is however allowed to be put on other cargoes which are stackable.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      }
     ],
     "recipe": "",
     "note": "Per item; custom rule \"Always stackable\" can override for selected items/pallets.",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Bottom only If checked then this cargo must be loaded at the bottom on the floor. If nothing else is specified then other cargoes can still be loaded on top of this cargo",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      }
     ],
     "recipe": "",
     "note": "Per item.",
     "searched": "",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Must be on top of Selected items must be on top of specified item types.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Selected items must be on top of specified item types. `value` should be an ItemSelector",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "1. Add custom rule with condition \"Must be on top of\" [custom-rules page]. 2. Selector = the item(s) that must not stand on the floor [custom-rules page, Selector]. 3. Second selector (the permitted base items) = all cargo, e.g. an empty selector or weight > 0 [API ItemProperty/ItemSelectorField: empty selector matches all items; comparison gt]. Result: the item must rest on another item, never on the floor.",
     "note": "No dedicated \"not on floor\" flag; the condition names specific base item types.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max Layers If a layer option is provided for a cargo (a number) it means that this cargo can only be stacked up to a certain amount of times (layers).",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "A number representing the max amount of layers this item can be stacked in",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ExtendedBaseItem.max_layers, maximum 255)"
      }
     ],
     "recipe": "",
     "note": "Per item (0-255). \"Max Layers per SKU\" / max_layers_by_prop restricts the count to same SKU or same property.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max Layers per SKU Cargo max layer option is only applicable on items with same SKU. This means that when this is enabled, even if SKU-A has max layers set to 3, we can still stack SKA-B on top of it.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "If enabled then cargo max layer option is only applicable per item property (like SKU or Shipment) (and not aggregated)",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationSettings.max_layers_by_prop)"
      }
     ],
     "recipe": "",
     "note": "That the per-item limit counts mixed stacks by default is stated only as the converse of the per-SKU option (\"and not aggregated\").",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max height The top of the selected items cannot exceed specified height.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Max stacking height The bottom of the selected items cannot exceed the specified height. ... Max stacking height limits how high the item needs to be lifted during loading.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Per item or attribute-selected group via custom rules, in length units; both top-of-item and bottom-of-item forms.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max load Max weight (in dimension specified by loadlist) that is allowed to be loaded on top of a cargo",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Max weight (in dimension specified by loadlist) that is allowed to be loaded on top of this item",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ExtendedBaseItem.max_load)"
      }
     ],
     "recipe": "",
     "note": "Per item, weight. Whether it counts the whole column above or only the directly supported item is not stated. Components also carry a Max load.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Max load is a plain weight.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"pressure\", \"per area\", \"kg/m2\", \"contact area\", \"surface\"; cargo properties, API max_load.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max load Max weight (in dimension specified by loadlist) that is allowed to be loaded on top of a cargo",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      }
     ],
     "recipe": "",
     "note": "No statement either way on whether max load is checked within stacks of the same item; the Ti-Hi guide discusses bottom-layer load but describes it as a limit the user sets as max layers or max load.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"same item\", \"same SKU\", \"identical\", \"max load\"; cargo properties, primary settings (max layers per SKU), API.",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allow heavy on light Usually a cargo weighing 100kg cannot be loaded on a cargo weighing 50kg. However a box weighing 5kg can usually be loaded on a box weighing 4 kg. There are different opinions on this so you can change it here to fit your requirements. It will likely affect the utilization. It is set to true by default.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "If loading a cargo with weight 20kg is okay to be loaded on top of a cargo with weight 10kg is allowed",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationSettings)"
      }
     ],
     "recipe": "",
     "note": "Plan-level switch (default: heavy on light allowed). Custom rule \"Cannot support\" can express \"restricting stacking to items within a certain weight ratio\".",
     "searched": "",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Number: metrics for use in ordering or summing. For example “Square meters” or “Stackability grade”",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Cannot support Selected items cannot support specified item types. Useful when you need fine-grained control over stacking combinations",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "1. Create a Number custom column, e.g. \"Stackability grade\" [cargo-properties page, Custom columns]. 2. For each grade value g, add a custom rule: selector grade eq g, condition \"Cannot support\", second selector grade gt g (items with a higher required grade) [custom-rules page; API ComparisonEnum eq/gt; custom columns are looked up in item metadata per ItemSelectorField]. 3. Items are then never placed on an item with a lower grade.",
     "note": "No built-in stacking index; the vendor names \"Stackability grade\" as an example column but does not show the ordering rule.",
     "searched": "",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cannot support Selected items cannot support specified item types.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Can only support Selected items can only support specified item types. The inverse of Cannot support — useful when a base item is only structurally suitable for specific cargo on top, such as a pallet designed for a particular product.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Pairwise permission via item selectors (by SKU, name, class, any property).",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A rule that limits stacking to only be allowed on cargo of the exact same dimensions",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Cannot support ... restricting stacking to items within a certain weight ratio, or requiring identical dimensions before allowing stacking.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "1. Custom rule with condition \"Can only support\"/\"Cannot support\" [custom-rules page]. 2. Second selector on length and width relative to the base item (is_dynamic: \"Is this value relative to the main selected value? Only viable on sub-selectors like condition: can_only_support\") [API ItemSelectorField.is_dynamic]. The vendor shows the same-dimensions variant as an example rule.",
     "note": "No dedicated footprint/column switch; the vendor example image is the main evidence of the configuration.",
     "searched": "",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allowed overhang If you allow a cargo to not have full support from below you can change the allowed overhang setting. Setting it to 0 means all cargoes need full support from below.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Allowed overhang Selected items can have this amount of overhang. Overrides the overhang in settings for these items. If multiple overlapping overhang rules apply, the smallest will be used.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Separate values for the pallet stage (secondary settings).",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Height tolerance In a situation where you have different cargo being used as support, what is the largest accepted difference in height between the packages the system should allow to consider the space on top a single loadable area? Defaults to 5mm.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "Plan-level (and pallet stage via secondary settings).",
     "searched": "",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Inner spaces and hollow cylinders let cargo go inside an item (cavity row), not nesting height increments or top-shape bearing.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"nest\", \"nesting\", \"increment\", \"open top\" (cargo), \"top shape\", \"smaller top\"; cargo properties, inner spaces, API.",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "It lets you specify what a master carton looks like, how a pallet should be packed when full",
       "url": "https://cargo-planner.com/docs/cargo/bundling/"
      },
      {
       "text": "Setting it to `false` will load non-full bundles without any bundling",
       "url": "https://api.cargo-planner.com/api/2/schema/ (Bundling.partial_bundles)"
      }
     ],
     "recipe": "",
     "note": "No complete-stacks/complete-layers/flat-top rule. A user can enter a complete layer or stack as a bundle with partial bundles off, so only full ones are built and the remainder is loaded loose, but the layer/stack geometry has to be worked out outside the tool.",
     "searched": "",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Group by Selected items are loaded closely together if they have the same value for the specified property.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Cargo with the same value of the given property will be loaded closely together. ... Set `ignore_reachability` to true to only keep the groups together",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "1. Custom rule \"Group by\" [custom-rules page]. 2. Property = SKU (or Name) [custom-rules page: \"Property: The column in 1.Data that determines what group a cargo belongs to\"; API: property may be any item property]. 3. Optionally ignore_reachability=true to only keep groups together [API].",
     "note": "No dedicated like-items-together switch is documented; the API example request contains \"group_items\": true, which is not in the schema. Block patterns (\"One block\") concern orientation of large groups, not togetherness.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Group / Consignment Different cargoes can belong to the same group / shipment / consignment. If you enter an ID (number or text) then cargoes with the same ID will be loaded together.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Group shipments together This setting will make sure that cargo that belong to the same shipment are packed next to each other without cargo in between.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "One grouping field plus Group by rules on any other property (e.g. Destination, custom column), so two-level grouping is composable.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use at most a single container per shipment If this setting is enabled, a shipment will be packed into a single container. If the entire shipment does not fit, the entire shipment will be unloaded.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Must be loaded in a single container Selected items with the same value for the specified property must be loaded in a single container.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Entire shipments must be loaded or none This setting ensures that entire shipments are packed. If one cargo item from the shipment is excluded from the load plan, then the entire shipment will be unloaded.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Can only be side-by-side with Selected items can only share a lengthwise section of the container with specified item types. The container is divided into slices along its length, and this rule restricts which other items are allowed to occupy the same slice.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Group shipments together This setting will make sure that cargo that belong to the same shipment are packed next to each other without cargo in between.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "1. Give items a Group/Consignment ID [cargo-properties page]. 2. For each group G, add custom rule: selector Group eq G, condition \"Can only be side-by-side with\", second selector Group eq G [custom-rules page]. 3. Each lengthwise slice then holds items of one group only, giving separate sections along the length.",
     "note": "No physical divider/barrier item is documented. \"Group shipments together\" gives contiguity but not an exclusive section.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cannot support Selected items cannot support specified item types. Useful when you need fine-grained control over stacking combinations — for example, preventing cargo from different shipments from supporting each other",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "1. Custom rule \"Cannot support\" with the selector on one group (Group/Shipment eq A) and the second selector on another group (ne A) [custom-rules page, which names this use].",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cannot be loaded with Selected items cannot be loaded in the same container as specified items. Useful for segregating incompatible cargo",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "The segregation table enables you to tell which cargoes can or cannot be loaded together in the same equipment.",
       "url": "https://cargo-planner.com/docs/calculation/segregation-table/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Must keep distance Selected items must maintain a minimum distance from specified item types. For example, cargo from shipment A must stay at least 2m away from cargo from shipment B.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Say you’re loading Class 3 flammable liquids and Class 8 corrosives that can share a container but need at least a meter of separation. Rather than eyeballing that gap in the load plan, a single Must keep distance rule between the two classes holds it on every container the engine generates",
       "url": "https://cargo-planner.com/guides/loading-dangerous-goods/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cargo-Planner doesn’t classify cargo or look up those rules for you - it gives you the tools to encode whatever the regulation requires into a load plan, and then packs around them.",
       "url": "https://cargo-planner.com/guides/loading-dangerous-goods/"
      }
     ],
     "recipe": "",
     "note": "Segregation is user-defined (Class + segregation table, custom rules). Marketing claims \"Ensure proper planning for dangerous goods\" (airlines page).",
     "searched": "",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cannot exceed quantity A max cap for the specified items in specified container types.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "A max total of summed value based on specified item property that can be loaded into specified containers. `value` consist of `{max_total: positive number, property: ItemProperty}`",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max cargo types A max cap for number of different cargo types that can be loaded into specified containers.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "A max cap for number of types that can be loaded into specified containers. `value` consist of `{count: positive integer, property: ItemProperty}`",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-ratio": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Keep equal ratio Selected items with the same value for the specified property must be loaded in an equal ratio in each container. For example, if shipment A and shipment B each have 10 items and there are 2 containers, each container will receive 5 items from each shipment.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "The ratio is taken from the loaded quantities (e.g. 10 tables, 40 chairs over 2 units gives 5 and 20 per unit); no user-entered ratio or set definition; behaviour when quantities do not divide evenly is not stated.",
     "searched": "",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Bundles pack items in fixed counts but do not constrain how many units of an item a container receives.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"multiple of\", \"batch\", \"increments\", \"per container\" with quantity; custom rules, bundling, API.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load items into existing containers first. Either this and / or `container_types`/`set_types`/`sets` field needs to be set",
       "url": "https://api.cargo-planner.com/api/2/schema/ (Calculation.containers)"
      },
      {
       "text": "All items in container (also including any non cargo items like posts, frames etc",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldData.items)"
      }
     ],
     "recipe": "",
     "note": "API only: existing (already loaded) containers can be passed in and the calculation loads items into them first, then into new containers; insert_items/load_into_space add items to an existing container. The web docs describe manual modification (drag, unload, move) but no automatic completion around manual placements.",
     "searched": "",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Position of cargo",
       "url": "https://api.cargo-planner.com/api/2/schema/ (Item.pos)"
      },
      {
       "text": "Load cargo into this space",
       "url": "https://api.cargo-planner.com/api/2/schema/ (LoadIntoSpace.load_at_position)"
      }
     ],
     "recipe": "",
     "note": "API only. Positions can be supplied through existing containers (HoldData.items with pos) or a load_at_position point for load_into_space. Neither is described as an input contract beyond the one-line field descriptions.",
     "searched": "",
     "corrected": {
      "reason": "Item.pos is a results field reused by the containers input; no source says users may enter coordinates or that given positions stay fixed."
     }
    },
    "positioning-confine-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Must be loaded in zone Selected items must be loaded within a specified zone. A zone is defined by one or more container sides (Front, Rear, Side 1, Side 2, Floor, Roof) and a depth — the zone extends inward from each selected side by that length.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Must touch side Selected items must be placed flush against specified container sides.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Zones are side-anchored depths (intersection when several sides); empty zones leave items unloaded.",
     "searched": "",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cannot be loaded in zone Selected items cannot be loaded within a specified zone. See Must be loaded in zone for a description of how zones are defined.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Per item/selector (empty selector = all items); side-anchored zones only, so a central aisle is not expressible this way.",
     "searched": "",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Front To Back | Will load cargoes from the front to back. ... Load from bottom up | Will load the cargoes from floor and upwards.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Row-by-row | Fill cargo across the full width one row at a time, advancing from front to back. ... Stack-by-stack: sweep across width ... Stack-by-stack: sweep along length",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Minimize Height | Will try to “compress” the used height. Useful if you want to spread the load over the whole container area.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Row-by-row | Fill cargo across the full width one row at a time, advancing from front to back. Keeps height low and uniform.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "Stated as \"will try\".",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Reach length: How far can the loader physically reach for a cargo, over another group. When loading with a forklift this might be a greater distance than when loading by hand.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Access width: How wide does a corridor need to be in order for the loader to walk/drive into it without any reaching necessary?",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Reach applies between groups of the Group by rule.",
     "searched": "",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Margin A distance around the cargo that will act as “free space”. Enter a number here if your cargo needs extra room for lashings or other purposes",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Free space (in dimension specified by loadlist) which will be added to this cargo. If specified as a String with 'X;Y' - X will be added to length direction and Y to width direction",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ExtendedBaseItem.free_space)"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "All cargo need to have part of the front supported. Useful when loading trailers to ensure stability when braking",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationSettings.require_front_support)"
      },
      {
       "text": "Must touch side Selected items must be placed flush against specified container sides. Useful for cargo that needs to be loaded against a wall for stability",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "require_front_support appears only in the API schema, not in the web docs.",
     "searched": "",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Payload in kg - max net weight",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldData.payload)"
      },
      {
       "text": "The cargoes are too heavy for the selected containers. Maybe the payload of your container is 20 000 kg and the weight of each cargo is 22 000kg - then these cargoes cannot be fit due to weight restrictions",
       "url": "https://cargo-planner.com/docs/help/faq/"
      }
     ],
     "recipe": "",
     "note": "Per container, pallet and set (set payload independent of member payloads); per-plan override in Setup. No scale switch-off documented.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max load | Maximum weight the part can support on its top surface.",
       "url": "https://cargo-planner.com/docs/equipment/hold-parts/"
      },
      {
       "text": "Per-hold adjustments — a slightly deeper hold three, a heavier payload on hold one — are stored as overrides on the position, not on the container type.",
       "url": "https://cargo-planner.com/docs/equipment/breakbulk-vessels/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The length of the container is divided into fixed sections of `value.length` meters, measured from the loading end. The cargo weight within each section cannot exceed `value.weight` kilograms.",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "",
     "note": "The documented per-section limit uses one weight value for equal-length sections (scored under linear density); different maxima for front/middle/rear sections are not documented. Zones cannot carry a weight cap (max_total is per container).",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"section\", \"floor strength\", \"meter weight\", \"zone\" with weight; custom rules page, API ConditionEnum, axles page.",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The length of the container is divided into fixed sections of `value.length` meters, measured from the loading end. The cargo weight within each section cannot exceed `value.weight` kilograms. Cargo that overlaps a section boundary contributes weight to each section it overlaps, in proportion to how much of its footprint lies within that section. ... Useful for floor strength and axle load limits, sometimes called meter weight.",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "",
     "note": "API only; not listed on the web custom-rules page (which says \"This list is frequently being updated\").",
     "searched": "",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use the Road tab in the container editor to set axle weight limits, axle spacing and road-legal limits on trailers and on sea containers with axles. The load plan respects these limits when placing cargo and reports the resulting axle weights in the interactive view.",
       "url": "https://cargo-planner.com/docs/equipment/axles-and-legal-limits/"
      },
      {
       "text": "Set the limits for the front and rear axle sets on the trailer and the plan respects them while placing cargo, then reports the resulting weights",
       "url": "https://cargo-planner.com/guides/planning-out-of-gauge-road-transport/"
      }
     ],
     "recipe": "",
     "note": "Two axle sets (front, rear), each 0-9 axles treated as one bearing point.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Road tab has two identical cards, Front axle set and Rear axle set. An axle set is a group of axles the load plan treats as one bearing point.",
       "url": "https://cargo-planner.com/docs/equipment/axles-and-legal-limits/"
      }
     ],
     "recipe": "",
     "note": "Exactly two axle groups per container (each up to 9 axles). Road-landing marketing mentions \"a custom supertrailer with 8 axles\", which fits within two groups.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"axle\", \"tridem\", \"third\", \"tractor\", \"drive axle\"; axles page, set builder, decks, road landing page, API (HoldData.axles is \"For internal use\").",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If Tare on the General tab is set, the limit is the gross weight allowed on the set (tare included).",
       "url": "https://cargo-planner.com/docs/equipment/axles-and-legal-limits/"
      }
     ],
     "recipe": "",
     "note": "A single container tare is used for gross axle limits and reports, but how the tare is split between the front and rear sets is not documented; per the definition note this fails.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"tare\", \"empty weight\", \"unladen\"; axles page, API HoldData.tare.",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Road trains are modelled as sets; no axle-load transfer between units is described.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"kingpin\", \"fifth wheel\", \"drawbar\", \"coupling\", \"tractor\", \"towing\"; axles page, set builder (road trains), OOG road guide.",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Legal weight | Weight above which the load counts as a special transport. If one cargo exceeds this weight, no other items are co-loaded on the same trailer.",
       "url": "https://cargo-planner.com/docs/equipment/axles-and-legal-limits/"
      }
     ],
     "recipe": "",
     "note": "Legal weight/height and axle limits are values typed per vehicle; no region or jurisdiction presets.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"jurisdiction\", \"country\", \"region\", \"bridge formula\", \"permit\", \"legal\"; axles page, OOG road guide, 53ft trailer guide.",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Limit the allowed center of gravity This setting will make sure the center of gravity is put in the specified X (length) and Y (width) interval. Will most likely affect the utilization of the container in a negative way.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Limit the distance the center of gravity can have from the center of a container",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationSettings.cog_limit)"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This setting will make sure the center of gravity is put in the specified X (length) and Y (width) interval.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Distance from center in percentage",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CenterOfGravity.y)"
      }
     ],
     "recipe": "",
     "note": "Also per-item \"Must be loaded along centerline\" rule for lateral balance of heavy items.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "CenterOfGravity has x and y only.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"vertical\", \"height of centre\", \"z\", \"centre of gravity\"/\"center of gravity\"; primary settings, API CenterOfGravity (x and y only).",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Improve stability | Will try to pick solutions that are more stable",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "If set to true then all containers must have its Center of Gravity within 10%",
       "url": "https://api.cargo-planner.com/api/2/schema/ (deprecated field)"
      }
     ],
     "recipe": "",
     "note": "CoG and axle rules are hard limits; \"Improve stability\" is not defined as weight balancing. Marketing mentions \"Optimize weight distribution\" and \"keeps overhang balanced\" without a mechanism.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"balance\", \"centre\", \"center\", \"even\", \"distribute\", \"stability\"; primary settings, guides (loading instructions, OOG road, touring), landing pages.",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The crate guide lists the machine's centre of gravity as a fixed fact of the design, but no item CoG input exists in the item schema.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"centre of gravity\"/\"center of gravity\" per item, \"offset\", \"eccentric\"; cargo properties, API item fields.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A cargo with a higher priority will be loaded before a cargo with a lower priority",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Must be loaded before Selected items must be loaded before specified item types. Since items loaded first end up deeper in the container, this also controls unloading order — items that should be unloaded last should be loaded first.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Direction: loaded first = deeper (further from the door).",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Priority still influences which items ship if the plan does not fit everything.",
       "url": "https://cargo-planner.com/docs/calculation/routing/"
      },
      {
       "text": "Strict priorities A lower priority cargo is never allowed to be loaded before a higher priority, even if the higher priority can’t be loaded at all.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If some rows have a quantity set and some have not - then the tool will load the cargoes that have a quantity set in as many containers as needed - and then use the items that have no quantity set as “fillers”",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Set as fillers Selected items will only be loaded where there is space left after all other cargo has been placed.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "API: set_as_fillers loads \"into existing containers where there are space left\", i.e. fillers do not open another unit.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enable routing when you want the load plan to sequence cargo by delivery stop so the trailer is unloaded in the reverse of the loading order — last-loaded first-out. Cargo-Planner reads the per-item Destination value and orders the plan accordingly.",
       "url": "https://cargo-planner.com/docs/calculation/routing/"
      },
      {
       "text": "Routing is only available for road-type load plans.",
       "url": "https://cargo-planner.com/docs/calculation/routing/"
      }
     ],
     "recipe": "",
     "note": "Road load plans only; requires Port of loading. Stops are matched as text. Priority within a stop is not described (routing overrides priority for load order).",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Group by ... Includes options for reachability to ensure the loading and unloading of each group can be handled without moving another cargo group.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Set `ignore_reachability` to true to only keep the groups together, without enforcing that each group stays reachable while loading and unloading",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum group_by)"
      }
     ],
     "recipe": "1. Set Destination per item [cargo-properties page]. 2. Custom rule \"Group by\" with property Destination, reachability on (reach length, reach to back of cargo, access width) [custom-rules page; multi-drop guide shows exactly this]. 3. Optionally Enable Routing for the stop order [routing page].",
     "note": "Routing alone is described as last-in-first-out sequencing without a stated blocking guarantee in the docs; the 2022 routing news post says it \"can now ensure that each package is possible to unload at each stop\". The multi-drop guide lists Group by among the \"loose end\" options and says routing and custom rules \"do not combine\".",
     "searched": "",
     "corrected": {
      "reason": "Before publication, Cargo-Planner corrected its multi-drop guide, which had described Group by as a loose option while the rules reference and API state reachability is enforced. The verdict is unchanged."
     }
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Reach length (how far a loader can reach over another group) is related but is not a stop-overlap distance.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"overlap\", \"mix\", \"look-ahead\", \"reach length\"; routing, custom rules (Group by, Minimize mixing), multi-drop guide.",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Items have a Destination only; the plan has one Port of loading.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"pickup\", \"pick-up\", \"collection\", \"origin\", \"load at\"; routing, cargo properties (Destination only), API item fields.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Although the planning of multiple trucks at once will work, there are certain scenarios where the division of packages between trucks is not optimal. At times the algorithm will end up using multiple trucks for a single destination when it could have been avoided.",
       "url": "https://cargo-planner.com/news/loading-cargoes-with-routing/"
      }
     ],
     "recipe": "",
     "note": "Evidence is a product-update news post (30 Nov 2022); the docs routing page is silent on multi-unit plans.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Entire shipments must be loaded or none This setting ensures that entire shipments are packed. If one cargo item from the shipment is excluded from the load plan, then the entire shipment will be unloaded.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Group / Consignment Different cargoes can belong to the same group / shipment / consignment.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      }
     ],
     "recipe": "1. Give all items of one stop the same Group/Consignment ID [cargo-properties page]. 2. Enable \"Entire shipments must be loaded or none\" [primary settings]. 3. Allow shipments to share a container (the default puts different IDs in different containers; change in Load settings) [cargo-properties page].",
     "note": "No stop-level (Destination) all-or-nothing switch.",
     "searched": "",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We can also move cargoes from one day to another by highlighting a few rows, right-clicking and selecting Move to loadlist… This opens the calendar for the project and lets you change the date of the cargo.",
       "url": "https://cargo-planner.com/docs/workflow/projects/"
      }
     ],
     "recipe": "",
     "note": "ETD and recurring project dates exist for organising load lists; moving cargo between dates is manual.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"date\", \"due\", \"ETD\", \"calendar\", \"recurring\"; projects, creating a load plan, API loadlist fields.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When creating a custom pallet (i.e. Secondary Equipment), please note that the “Max Height” setting is 0 by default which means only one layer of cargo will be loaded on that pallet.",
       "url": "https://cargo-planner.com/docs/equipment/working-with-pallets/"
      },
      {
       "text": "The General tab’s separate Floor height field is the thickness of the floor or deck below the cargo",
       "url": "https://cargo-planner.com/docs/equipment/axles-and-legal-limits/"
      }
     ],
     "recipe": "",
     "note": "Pallet = secondary equipment with floor height (deck thickness) and max height. Whether max height is measured from the ground (including the deck) is not stated; the pallet guide says the Max Height \"should not exceed the size of the trailer door\".",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The layer pattern, mixed orientations included, is worked out from the carton dimensions and the limits you give it",
       "url": "https://cargo-planner.com/guides/ti-hi-pallet-stacking-patterns/"
      },
      {
       "text": "For a single carton on a standard pallet, the free pallet calculator gives you the answer straight away: enter the carton and it shows how many fit, in 3D.",
       "url": "https://cargo-planner.com/guides/ti-hi-pallet-stacking-patterns/"
      }
     ],
     "recipe": "",
     "note": "One pattern returned (no alternatives).",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Must load with pattern Selected items must be loaded using the specified pattern. Patterns control the layout and orientation of large groups of cargo within the container.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "One block — all cargo is rotated in the same direction - Two block — two groups of cargo where the rotation differs between each block - Four block — four adjacent groups of cargo, each with a different rotation",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Patterns are documented for \"large groups of cargo within the container\"; that they apply to pallet builds is by way of secondary settings rules. No alternate-layer rotation (interlock) switch is documented, though the Ti-Hi guide says customers' interlock builds \"usually work straight away\".",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When examining the results in the workspace tab, we can quickly see that all the items were loaded in full size Euro Pallets and some pallets contained both milk and cereal.",
       "url": "https://cargo-planner.com/docs/equipment/working-with-pallets/"
      },
      {
       "text": "Instead, we set up their standard builds in Cargo-Planner and let it put the leftover cartons on mixed pallets and plan the container around the lot",
       "url": "https://cargo-planner.com/guides/ti-hi-pallet-stacking-patterns/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "One detail catches out more of our customers than anything else in this section: the edge of the pallet is a hard limit. ... To a load planning algorithm, a few millimetres over is simply not allowed, so that pattern never comes up. Fixing it is a judgement call - trim the packaging, or set up a custom pallet a few millimetres larger",
       "url": "https://cargo-planner.com/guides/ti-hi-pallet-stacking-patterns/"
      },
      {
       "text": "Import your cartons from Excel and Cargo-Planner returns the palletization: layer patterns per pallet, balanced overhang where you allow it",
       "url": "https://cargo-planner.com/pallet-calculator-software/"
      }
     ],
     "recipe": "",
     "note": "The vendor guide states pallet-edge overhang is not allowed and recommends a larger custom pallet (workaround). The pallet landing page claims overhang \"where you allow it\" without documenting a setting; equipment Max length/width overhang limits are documented for open containers and trailers only.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If none of them are large enough to fit your cargo, we will load the item with balanced overhang on each side.",
       "url": "https://cargo-planner.com/pallet-calculator-software/"
      }
     ],
     "recipe": "",
     "note": "Only a marketing mention of balanced overhang for oversized items; no centre-load or inset setting.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"centre\", \"center\", \"centred\", \"underhang\", \"inset\", \"edge\"; working with pallets, secondary settings, Ti-Hi guide, pallet landing page.",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "A \"slip-sheet\" is mentioned only as a reason to use a container bottom spacer.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"interlayer\", \"slip sheet\", \"slip-sheet\", \"tier sheet\", \"layer pad\"; all pages.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Secondary load settings take the same parameters as the primary settings, but they apply only to preloaded hold types — the pallets, boxes and cases that cargo is loaded into",
       "url": "https://cargo-planner.com/docs/calculation/secondary-settings/"
      },
      {
       "text": "Shipments cannot be mixed This setting will make sure that cargo from different shipments are not packed into the same container.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "Via the shipment settings in the secondary (pallet-stage) settings; the docs do not name this setting on the secondary page.",
     "searched": "",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A common scenario is to load cargoes on pallets and then load them into containers. This type of “nested calculation” is easy to set up in Cargo-Planner.",
       "url": "https://cargo-planner.com/docs/equipment/working-with-pallets/"
      },
      {
       "text": "Below example will first load the cargoes with the palletize field set to true into the provided pallet type and then load the pallets and the other cargoes into our custom container type",
       "url": "https://cargo-planner.com/docs/developer/examples/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This is set if this item itself is a container (for example a pallet with items inside)",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ExtendedBaseItem.from_container)"
      }
     ],
     "recipe": "",
     "note": "A pallet-with-contents item representation exists in the schema but saving a built pallet or carton as an item for a later plan is not described; \"Display secondary equipments as cargo\" is a display preference.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"save pallet\", \"built pallet\", \"from_container\", \"carry\", \"reuse\", \"as cargo\", \"Display secondary equipments as cargo\"; working with pallets, modifying a load plan, preferences, API.",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In this example we have specified that the 12-pack should be loaded on pallets, but the full pallet size should not.",
       "url": "https://cargo-planner.com/docs/cargo/bundling/"
      },
      {
       "text": "It will then preload the 12 packs and single pieces on a pallet, before loading them into a 20ft DV container.",
       "url": "https://cargo-planner.com/docs/cargo/bundling/"
      }
     ],
     "recipe": "1. Define a bundle (e.g. a 12-pack carton) on the item and set that bundle to be palletised [bundling page]. 2. Add pallet types as secondary equipment [working-with-pallets page]. 3. Calculate: pieces are packed into 12-packs, 12-packs onto pallets, pallets into the container [bundling page example].",
     "note": "The inner level is a user-defined bundle (fixed carton contents), not an optimised cartonisation; pallets on pallets is claimed on the features page only.",
     "searched": "",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Preload If this cargo should be pre loaded on a pallet or box (secondary equipment) before being loaded into the container - check this to true",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Must be loaded into secondary equipment (palletize) Selected items will be loaded into secondary equipment — such as pallets, cartons, or inner containers — before being placed in the main container.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Always stackable Selected items (or pallets) are always stackable, regardless of weights and stackability properties. Useful for controlling the stackability when preloading pallets.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "`in_secondary` - This selector applies to secondary containers (like pallets) containing items matching the selector",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ItemSelectorField.scope)"
      }
     ],
     "recipe": "",
     "note": "Pallet (sub-container) types also carry item-style properties (orientations, not_stackable, bottom_only, max_layers, max_load) in the API (InlineSubContainer.properties), listed without further description.",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In Preloader 2.0 we have turned the traditional method upside down. We start by placing an empty pallet into the trailer, and build it up from there. Even though this is very impractical as a real-world solution it comes with a lot of benefits. Not only does this ensure that every built pallet will fit in the trailer",
       "url": "https://cargo-planner.com/news/improved-palletization/"
      },
      {
       "text": "if the trailer was almost full, except for some space with half the height of the trailer, we wouldn’t be able to fit a fully loaded pallet.",
       "url": "https://cargo-planner.com/news/improved-palletization/"
      }
     ],
     "recipe": "",
     "note": "Evidence is a product-update news post (4 Mar 2024) describing the palletisation algorithm; not repeated in the docs.",
     "searched": "",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If no rows have a quantity set - then the tool will try to fit as much as possible into one of the selected containers.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Max number of trailers to be used Set an upper limit to how many containers are to be used for loading your imported cargo. Excess cargo will become unloaded items.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The volumetric weight is compared against the package’s actual weight. Whichever number is higher is used as the chargeable weight which may affect the loading of cargoes.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "Secondary goals are minimise length, minimise height, stability. Chargeable weight \"may affect the loading\" without a stated objective. A cost function could in principle reward weight, but its grammar is undocumented.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"maximize weight\", \"weight utilization\", \"objective\", \"goal\", \"chargeable\"; primary settings (secondary goal options), cost function, API SecondaryGoalEnum.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Keep equal ratio Selected items with the same value for the specified property must be loaded in an equal ratio in each container. For example, if shipment A and shipment B each have 10 items and there are 2 containers, each container will receive 5 items from each shipment.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "1. Custom rule \"Keep equal ratio\" on all items [custom-rules page]. 2. Property = one shared by all items (or per SKU) [custom-rules page]. 3. Each container then receives an equal share of the items (count), instead of filling containers in turn [custom-rules page example: 10 items over 2 containers = 5 each].",
     "note": "On independent verification: unclear. Docs allow two readings of 'Keep equal ratio'; under one the recipe does nothing. Left as scored, as for competitor cells the verifiers marked unclear.",
     "searched": "",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Sometimes you do not have a fixed number of cargoes to load and distribute on a certain number of containers but you would rather like the tool to tell you how many pieces of a cargo can fit into one or several types of containers. With Cargo-Planner you can easily do this, or use \"fillers\" - cargoes to fill up remaining space in a container when all other cargoes have been loaded",
       "url": "https://cargo-planner.com/features/cargo-import/"
      },
      {
       "text": "If no rows have a quantity set - then the tool will try to fit as much as possible into one of the selected containers.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max calculation time A number (defaults to 2), between 0 and 15 that sets the timeout for the load engine (in seconds). In general if you have multiple container types and many different cargo types a better result can be generated by increasing this number.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Long running job (Minutes) ... In these cases, allowing the calculation engine to work for minutes can produce better results.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      }
     ],
     "recipe": "",
     "note": "API timeout 0-15 s, async 30-1800 s. Reproducibility not stated.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "An array of solutions (Only one solution per calculation is available at the moment)",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationResult.solutions)"
      },
      {
       "text": "// At the moment each calculation gives one solution (in the future we might provide more)",
       "url": "https://cargo-planner.com/docs/developer/developer/"
      }
     ],
     "recipe": "",
     "note": "Alternatives require separate calculations (e.g. several load plans per load list).",
     "searched": "",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Selector: What items the rule should apply to. You can create filters with specific properties of items like Items with a length greater than 100cm or Items with a Group/Shipment of “Group A”. You can combine multiple filters, selecting a smaller and smaller section of the total items with each filter.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "Items with a weight greater than 25 kg cannot be loaded in 747-400F Bulk Compartment",
       "url": "https://cargo-planner.com/news/loading-with-custom-rules/"
      }
     ],
     "recipe": "",
     "note": "Any item property; comparisons eq, gt, lt, ne, contains, not_contains; ANDed selectors.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Custom columns are also very useful in combination with Custom Rules, as you can create effects similar to the default fields.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "If not a base property is provided, a lookup will be done in item metadata if any",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ItemSelectorField.property)"
      }
     ],
     "recipe": "",
     "note": "Text, Number, Checkbox, Dropdown columns; example \"self-stackable only\" checkbox used in a rule (screenshot). Company-level custom fields on load lists are metadata only.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Class Used for adding custom classes to your cargo. Classes can be used together with a segregation table to separate loading of certain cargoes.",
       "url": "https://cargo-planner.com/docs/cargo/cargo-properties/"
      },
      {
       "text": "Cannot support Selected items cannot support specified item types. Useful when you need fine-grained control over stacking combinations",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "1. Assign each item a Class [cargo-properties page]. 2. For each forbidden (lower class, upper class) pair add a \"Cannot support\" rule with selector Class eq lower and second selector Class eq upper, or one \"Can only support\" rule per class listing allowed upper classes [custom-rules page; DG guide maps class stacking to these rules].",
     "note": "No matrix editor for stacking (the segregation table is for sharing a unit); the matrix is a set of pairwise rules.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When you have created your classes you need to define which classes that can not be loaded together. If class B cannot be loaded together with class C, press the checkmark in column B on row C and click “Segregate”.",
       "url": "https://cargo-planner.com/docs/calculation/segregation-table/"
      },
      {
       "text": "A symmetrical table with codes",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationSettings.segregation_table)"
      }
     ],
     "recipe": "",
     "note": "Items may carry several classes (class_id accepts a list).",
     "searched": "",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A max total of summed value based on specified item property that can be loaded into specified containers. `value` consist of `{max_total: positive number, property: ItemProperty}`",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      },
      {
       "text": "The property of the item, (lengt, width, height, weight...). If not a base property is provided, a lookup will be done in item metadata if any",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ItemProperty)"
      }
     ],
     "recipe": "",
     "note": "Per container (type-scoped); the ItemProperty also carries its own selector. Documented in the API only; the web rule list shows \"Cannot exceed quantity\".",
     "searched": "",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Containers: In what hold-type this rule applies. If left empty, the rule applies to all container types.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      },
      {
       "text": "The center of gravity of the specified containers must be within the provided distance from their center. Overrides the `cog_limit` in settings for those containers.",
       "url": "https://api.cargo-planner.com/api/2/schema/ (ConditionEnum)"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The property that decides the most here is which pieces can be a base and which cannot. Four fields carry it: Not stackable ... Bottom only ... Max load ... Max Layers",
       "url": "https://cargo-planner.com/guides/building-a-uld-for-mixed-cargo/"
      },
      {
       "text": "Where stability matters more than the last few centimetres, building in layers rather than towers is a setting rather than a discipline, and the allowed overhang and single cargo support settings decide how much a piece may stand proud of whatever is under it.",
       "url": "https://cargo-planner.com/guides/building-a-uld-for-mixed-cargo/"
      }
     ],
     "recipe": "",
     "note": "Per-item stacking properties, plan-level stacking settings (heavy on light, overhang, height tolerance, single support) and stacking rules are independent inputs; the explicit \"all of them at once\" statement is on a feature page. \"If multiple overlapping overhang rules apply, the smallest will be used.\"",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The secondary objective to optimize for (after minimizing the cost of the solution)",
       "url": "https://api.cargo-planner.com/api/2/schema/ (CalculationSettings.secondary_goal)"
      },
      {
       "text": "A secondary goal — minimise used length or height, or improve stability — applies once the vehicle count is settled.",
       "url": "https://cargo-planner.com/guides/what-is-a-load-plan/"
      }
     ],
     "recipe": "",
     "note": "Only one secondary goal at a time; no user tolerance between levels.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "A cost function can be used to optimize for specific goals in addition to loading utilization. The calculated function is added as an additional cost per loaded container.",
       "url": "https://cargo-planner.com/docs/calculation/cost-function/"
      },
      {
       "text": "Cost functions are an advanced feature for experienced users. Get in contact with us if you need assistance in setting one up",
       "url": "https://cargo-planner.com/docs/calculation/cost-function/"
      }
     ],
     "recipe": "",
     "note": "The Operator grammar (scalar, item, unique, count, multiply, sum, average, min, max, per_solution, per_container, per_unique_value) is listed in the schema without descriptions or examples; the docs page gives no syntax.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Shipments cannot be mixed This setting will make sure that cargo from different shipments are not packed into the same container.",
       "url": "https://cargo-planner.com/docs/calculation/primary-settings/"
      },
      {
       "text": "Minimize mixing Items with different values for the specified property should not be mixed in the same container. A threshold condition controls when mixing is acceptable as a trade-off.",
       "url": "https://cargo-planner.com/docs/calculation/custom-rules/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you want to you can get a detailed response consisting of each container used and the position of each cargo loaded.",
       "url": "https://cargo-planner.com/docs/developer/faq/"
      },
      {
       "text": "Position of cargo",
       "url": "https://api.cargo-planner.com/api/2/schema/ (Item.pos)"
      }
     ],
     "recipe": "",
     "note": "Per item position (x, y, z) plus placed L/W/H in m; rotation format and origin/axes are not described (components use a front-left-floor origin).",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Loading Instructions Step-by-step instructions for loading the container. Configure: - Mode: By layers, by stacks, or by custom property - Show secondary equipment: Include pallets, frames, etc.",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      },
      {
       "text": "Our software will make sure that for each step, there is enough support from below in the previous steps, when filling a container or a truck and that there is a good balance between number of cargoes in each step",
       "url": "https://cargo-planner.com/guides/the-importance-of-proper-loading-instructions/"
      }
     ],
     "recipe": "",
     "note": "Per-step views are shown in screenshots (\"Loading instructions of a trailer\", \"A load plan printed as a numbered, step-by-step loading sequence\"); the text does not say each step carries its own diagram.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Container Utilization Shows weight and volume utilization with percentage bars.",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      },
      {
       "text": "Items Table A detailed table of all cargo items in the container.",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      }
     ],
     "recipe": "",
     "note": "Also for secondary equipment (\"Simply toggle between viewing your primary and secondary equipment\"); Excel export with per-container sheets.",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Linear foot [ft] (trucking formula)",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldSummary.linear_feet)"
      },
      {
       "text": "Cargo-Planner fills the trailer with as many cargoes as possible, and also automatically sums the Loading meters of the cargo in the trailer.",
       "url": "https://cargo-planner.com/guides/calculate-loading-meters/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It’s a panel which contains cargoes from the load list not currently loaded into any container.",
       "url": "https://cargo-planner.com/docs/creating-a-loadplan/"
      },
      {
       "text": "items that could not be loaded",
       "url": "https://api.cargo-planner.com/api/2/schema/ (LoadSolution.unloaded_items)"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The reason the cargo was unloaded",
       "url": "https://api.cargo-planner.com/api/2/schema/ (UnloadedItem.reason)"
      },
      {
       "text": "As we see in this example, some of the cargoes found here are either too tall or too wide to be fit in the selected containers.",
       "url": "https://cargo-planner.com/docs/creating-a-loadplan/"
      }
     ],
     "recipe": "",
     "note": "API field per unloaded item; its possible values are not listed. The web docs describe the unloaded-items panel with examples of causes but do not state that a reason is shown per item.",
     "searched": "",
     "corrected": {
      "reason": "On independent verification: the field's purpose is described, so the undescribed-field tag was misapplied. Raises Cargo-Planner by one row."
     }
    },
    "output-cog": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Center of Gravity Shows center of gravity position and axle weight distribution (critical for transport safety).",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      },
      {
       "text": "The axle-weight and centre-of-gravity figures can be placed directly into a custom export layout, so the numbers on the permit paperwork are the same numbers the plan was built on",
       "url": "https://cargo-planner.com/guides/planning-out-of-gauge-road-transport/"
      }
     ],
     "recipe": "",
     "note": "The interactive view shows only a CoG marker (\"a circular symbol\"); numbers are in the layout block. The API result schema has no CoG field. Axes shown are not stated.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Once cargo is placed, the interactive view reports the actual axle weights per set. The values shown are: - Front axle weight / Rear axle weight — gross weight on each set, including tare (shown when a tare is set). - Front net axle weight / Rear net axle weight — cargo weight on each set only.",
       "url": "https://cargo-planner.com/docs/equipment/axles-and-legal-limits/"
      }
     ],
     "recipe": "",
     "note": "Two sets; whether limits/margins are shown alongside is not stated.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "max_weight_per_section is a constraint, not an output.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"distribution\", \"per metre\", \"per meter\", \"along the length\", \"section\"; layout blocks, export options, API HoldData/HoldSummary.",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Container Totals Displays total weight, gross weight, volume, and Out of Gauge (OoG) information.",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      },
      {
       "text": "Tare in kg - the weight of the container",
       "url": "https://api.cargo-planner.com/api/2/schema/ (HoldData.tare)"
      }
     ],
     "recipe": "",
     "note": "Gross weight per container in the Container Totals layout block; the axle page confirms gross values include tare.",
     "searched": "",
     "corrected": null
    },
    "output-per-stop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Build a load plan layout with the loading instructions block, which gives step-by-step instructions by layers, by stacks or by a custom property — on a routed load that sequence is the reverse of the discharge order",
       "url": "https://cargo-planner.com/guides/planning-a-multi-drop-trailer-load/"
      },
      {
       "text": "showInstructions - Loading instructions mode (‘layers’, ‘stacks’, ‘by-prop’, or null)",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      }
     ],
     "recipe": "1. Set Destination per item [cargo-properties page]. 2. Add the Loading Instructions block with mode \"by custom property\" [layouts page] and choose Destination as the property. 3. Each instruction group then corresponds to one stop.",
     "note": "No per-stop summary or unit view at each stop; the multi-drop guide says \"Nothing recalculates it for you between stops\".",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Manual edits are described without any rule validation. The interactive view flags OOG and extended trailers only; the data view warns about suspicious dimensions at input.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"violation\", \"warning\", \"validate\", \"check\", \"rule\" with manual edit; modifying a load plan, interactive view, planner view, API move/insert endpoints.",
     "corrected": null
    },
    "output-voids": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The automatic bottom spacer inserts dunnage under ULD builds; that is not a void report.",
     "searched": "All 53 English /docs/ pages (sidebar incl. developer pages), the OpenAPI 3.0.3 schema v2.1.0 at https://api.cargo-planner.com/api/2/schema/ (all components), all 18 /guides/ pages, 16 /news/ posts, 5 /features/ pages, 6 /solutions/ pages, the four *-loading-software landing pages, calculators, integration, pricing; full-text grep of the downloaded text for: \"void\", \"empty space\", \"gap\", \"dunnage\", \"airbag\"; outputs, layouts, API.",
     "corrected": null
    },
    "output-cost": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Container Info Displays container dimensions, payload capacity, and cost information.",
       "url": "https://cargo-planner.com/docs/output/loadplan-layouts/"
      }
     ],
     "recipe": "",
     "note": "Container cost only; no per-item cost allocation documented.",
     "searched": "",
     "corrected": null
    }
   }
  },
  {
   "id": "cube-iq",
   "name": "Cube-IQ",
   "vendor": "MagicLogic Optimization",
   "url": "https://magiclogic.com/products/cube-iq/",
   "auditedOn": "2026-09-30",
   "caveat": "Eight help articles linked from the public help centre (among them allowed orientations, the stacking matrix and the combination matrix) require a login and were not used. Many settings are evidenced only by labels in help-article screenshots; those count, and are marked.",
   "scope": "Cube-IQ 5.x (5.1 features;",
   "sources": [
    {
     "title": "MagicLogic Support Center (Zendesk)",
     "url": "https://support.magiclogic.com/hc/en-us"
    },
    {
     "title": "Cube-IQ / BlackBox REST API (Help & Manual webhelp)",
     "url": "https://downloads.magiclogic.com/Help/REST/"
    },
    {
     "title": "Cube-IQ product page",
     "url": "https://magiclogic.com/products/cube-iq/"
    },
    {
     "title": "Cube-IQ Web product page",
     "url": "https://magiclogic.com/products/cube-iq-web/"
    },
    {
     "title": "BlackBox product page",
     "url": "https://magiclogic.com/products/blackbox/"
    },
    {
     "title": "Stack-IQ product page",
     "url": "https://magiclogic.com/products/stack-iq/"
    },
    {
     "title": "Developers page",
     "url": "https://magiclogic.com/developers/"
    },
    {
     "title": "Cloud announcement (9 Nov 2022)",
     "url": "https://magiclogic.com/load-planning-cartonization-and-palletization-now-accessible-in-the-cloud/"
    },
    {
     "title": "FAQs",
     "url": "https://magiclogic.com/faqs/"
    }
   ],
   "passed": 90,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Dimensions: Depth, Width, Height",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      },
      {
       "text": "Weight Capacity: Maximum weight the container can hold.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Container types: Rectangular, Irregular shape / ULD, Truck / Trailer, Pallet, Carton, Railcar, Tube. Depth, Width and Height are required on import.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Unusable spaces can be added to containers to prevent products from being loaded in that region. Unusable spaces are used for benders or obstacles, with refrigerating units being a common application of unusable spaces.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25043970640909-How-To-Create-Unusable-Spaces-In-Cube-IQ"
      },
      {
       "text": "Specify 3D rectangular spaces within the container that cannot be used for loading.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Each space has Depth/Width/Height Crd and Length/Width/Height. A per-space 'No Stack' checkbox decides whether products may be stacked on top of the unusable space (documented in text).",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If not, click on the \" + \" icon on the top left to add a new unusable space",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25043970640909-How-To-Create-Unusable-Spaces-In-Cube-IQ"
      },
      {
       "text": "Specify the coordinates for where the unusable space will be situated by filling out these fields: Depth Crd Width Crd Height Crd",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25043970640909-How-To-Create-Unusable-Spaces-In-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Any number of rectangular regions per container, each with its own position and size; set on the container record.",
     "searched": "",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you have a specific height that must be left empty at the top of the container, you can make use of this setting instead of creating a custom unusable space.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25043970640909-How-To-Create-Unusable-Spaces-In-Cube-IQ"
      },
      {
       "text": "Not usable height at top: Enter in the height of the region to be left at the top in this field.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25043970640909-How-To-Create-Unusable-Spaces-In-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Per container (Unusable Spaces tab), separate from the internal height; not a per-plan setting.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This article describes how to configure an irregular ULD by defining its maximum dimensions and specifying the coordinates that describe the irregular floor and/or ceiling profile.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/48722219134605-How-to-create-an-ULD-container"
      },
      {
       "text": "When entering the coordinates, make sure to use the correct view reference.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/48722219134605-How-to-create-an-ULD-container"
      }
     ],
     "recipe": "",
     "note": "Only the ULD container type has floor/ceiling profiles. For trucks, split-level support is a marketing claim with no documentation of how it is modelled. The worked example uses the Front (width) view only.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cube-IQ supports containers with irregular internal geometries, such as Unit Load Devices (ULDs) with non-rectangular floors or ceilings.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/48722219134605-How-to-create-an-ULD-container"
      },
      {
       "text": "The coordinates entered for the irregular floor therefore describe how the floor height changes along the width of the ULD.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/48722219134605-How-to-create-an-ULD-container"
      }
     ],
     "recipe": "",
     "note": "Container type 'Irregular Shape / ULD': a bounding box plus lists of (Coord, Height) points for floor and ceiling. A screenshot also shows a 'ULD walls NOT supporting' checkbox with no explanation.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The same view reference should be used when defining both the floor and ceiling coordinates.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/48722219134605-How-to-create-an-ULD-container"
      }
     ],
     "recipe": "",
     "note": "The ULD article tells the user to use one view reference for both floor and ceiling ('The same view reference should be used when defining both the floor and ceiling coordinates.'), which suggests a profile in one view per container. No documentation shows a cross-section and a lengthwise change combined in one unit.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: combined front and side profiles, 'Left side' plus 'Front' view in one ULD, floor and ceiling view reference. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "specifying the coordinates that describe the irregular floor and/or ceiling profile",
       "url": "https://support.magiclogic.com/hc/en-us/articles/48722219134605-How-to-create-an-ULD-container"
      }
     ],
     "recipe": "",
     "note": "The Floor Shape screenshot draws straight diagonal lines between the entered points (for example from height 32 at coord 0 to height 0 at coord 30.5), which looks like an interpolated chamfer, but no text says whether the planner treats the segment as a slope or as steps, and no loaded example against a sloped wall is shown.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: slope, angle, chamfer, interpolation between floor/ceiling coordinates. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Divide containers into multiple loadable zones with unique dimensions, weight limits, and load sequences.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      },
      {
       "text": "Zones are defined areas in a container to control which products are loaded based on dimensions and rules.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      }
     ],
     "recipe": "",
     "note": "Any number of rectangular zones per container, each with its own coordinates, size, sequence, load direction, max weight, matching code, product/unit counts and a 'Flex.' option. Zones must be enabled in Options. Zones are sub-volumes of one rectangular container; truck-and-trailer combinations are not documented.",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "Maximum loadable dims (door)",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Per container, Outside Dims tab: Length, Width, Height under 'Maximum loadable dims (door)'.",
     "searched": "",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Dir.: Direction products are carried into the Zone: \"B\" stands for Back, \"F\" stands for Front, \"R\" stands for Right, and \"L\" stands for Left",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "Configure Load Direction (e.g., Back to Front or Bottom to Top).",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "The side-loading form exists only per zone, not as a container-level door face; its effect on any unloading order is not described.",
     "searched": "",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "instead of just making the container bigger, we can give the container Maximum Overhang values.  An overhang value can be set separately for length and width.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28848071893901-How-to-allow-overhang-on-a-container"
      },
      {
       "text": "Sometimes, open containers such us a pallet or a flat-bed are not big enough to contain a product in full.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28848071893901-How-to-allow-overhang-on-a-container"
      }
     ],
     "recipe": "",
     "note": "Container dimensions must be increased by the total overhang (documented). Applies to Cube-IQ and BlackBox (XML MaxLengthOverhang / MaxWidthOverhang).",
     "searched": "",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Make sure to set the quantity of the containers high enough to fill all the products you need.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/30961394303245-How-To-Set-Up-a-2-Stage-Load"
      },
      {
       "text": "\"containernum\" : 999999",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "The user offers container types with an available quantity (a very large number means effectively unlimited); the optimiser adds units as needed (for example 'The rest of the Products are loaded into a second container' in the stack-quantity article).",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Selection rule controls the order in which Cube-IQ attempts to load available containers. This is critical when multiple container types are allowed in a single load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      },
      {
       "text": "Best fill: All containers are simulated per step. The container with the highest utilization is selected.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      }
     ],
     "recipe": "",
     "note": "Set per load (Loading Rules) with a default in Options > Defaults; XML stage attribute containerselectionrule.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "\"containernum\" : 1",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      },
      {
       "text": "Not enough containers available to hold all the products in the load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33477496510093-Troubleshooting-Unloaded-Products"
      }
     ],
     "recipe": "",
     "note": "Quantity per container type in the load's container list (containernum). Unloaded remainder appears in the Not Loaded column. Which selection rules honour the quantity is not stated separately; it is documented generally.",
     "searched": "",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "During optimization, Cube-IQ first attempts to fit the entire product load into the preferred container(s).",
       "url": "https://support.magiclogic.com/hc/en-us/articles/36949130209933-How-to-use-Preferred-Containers"
      },
      {
       "text": "These containers will be avoided during packing unless a product is too large to fit in the primary containers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/35877684746125--Avoid-use-unless-required-Container-Feature"
      }
     ],
     "recipe": "",
     "note": "Preferred containers fall back to the standard selection logic if they cannot hold the whole load. Documented for Cube-IQ (Web or standalone) and BlackBox.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Largest first: The largest available container is used at each step. Except in the final step where the best fit is selected.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      },
      {
       "text": "One container only: Only a single container is loaded. If more than one is needed, the load fails. Used primarily in cartonization applications.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      }
     ],
     "recipe": "",
     "note": "Container sizes are chosen by the planner, not by the user reading a list.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Minimum overall cost: Cube-IQ selects the combination of containers with the lowest total cost.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      },
      {
       "text": "Define advanced settings such as default quantity in new loads, shipping cost, maximum loaded value, and product matching codes.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Flat 'Shipping cost' per container type; no rate tables. 'Minimum overall cost + Largest first' runs both rules and keeps the better result.",
     "searched": "",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Maximum: Maximum Percent Weight or Volume allowed for this container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/31270821474317-How-to-set-Fill-limits-on-containers"
      },
      {
       "text": "Last Container Maximum: Maximum Percent Weight or Volume allowed for last container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/31270821474317-How-to-set-Fill-limits-on-containers"
      }
     ],
     "recipe": "",
     "note": "Per container type (Loading tab), with a separate maximum for the last container. The text does not say whether one percentage applies to weight, volume or both.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Minimum: Minimum Percent Weight or Volume allowed for this container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/31270821474317-How-to-set-Fill-limits-on-containers"
      },
      {
       "text": "Hard Minimum: Denotes value that must be respected and can't be any higher.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/31270821474317-How-to-set-Fill-limits-on-containers"
      }
     ],
     "recipe": "",
     "note": "What happens to cargo of a unit that stays below its minimum (moved, left unloaded) is not described.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Matching Code: Restricts products to specific containers or zones.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Remember that, if there's a matching code in this field, the product will only load into a container with the same matching code.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33477496510093-Troubleshooting-Unloaded-Products"
      }
     ],
     "recipe": "",
     "note": "Codes on products, product configurations, containers (several codes allowed) and zones. Hard rule. The linked article 'How to Match Products with Containers' is login-gated (manual-checks #7) and was not used.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Product seq. is Container seq. – Matches product sequence numbers directly to container sequence numbers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      },
      {
       "text": "One Container per sequence number – Keeps all products with the same sequence number in a single container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      }
     ],
     "recipe": "",
     "note": "Per load Loading Rules; the container sequence is the 'Seq.' column in the load's container list. Manual placement via Load Edit also exists but is a workaround.",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It is possible to model a plastic or fabric bag as a container in Cube-IQ.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/29629781410957-How-to-set-up-bags-as-containers"
      },
      {
       "text": "Set the container sizing minimum and maximum according to the possible values.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/29629781410957-How-to-set-up-bags-as-containers"
      }
     ],
     "recipe": "",
     "note": "Must be enabled in Options > General > Container Sizing; container dimensions must equal the maximums. Minimum/maximum per axis ('Dimensions to be optimized' in screenshot).",
     "searched": "",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Products can be rectangular (e.g., boxes or cartons), cylindrical (e.g., rolls or drums), or L-shaped (e.g., sofas).",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "ProductId, Length, Width, Height, and Weight columns are required fields.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25455347460109-How-To-Import-Products-From-Excel-Into-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "No overall item or type count limit is documented. Scale-related limit elsewhere: Max supported weight is switched off above 200 units in a load.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "Products can be rectangular (e.g., boxes or cartons), cylindrical (e.g., rolls or drums), or L-shaped (e.g., sofas).",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Cylindrical objects are for example drums, rolls or tubes.",
       "url": "https://downloads.magiclogic.com/Help/REST/glossary.html"
      }
     ],
     "recipe": "",
     "note": "Shape tab option 'Cylinder/Roll/Tube' (screenshot); API product shape 'cylinder'. How the diameter is entered (no diameter field is shown; the product record has Length, Width, Height) and whether cylinders are packed as cylinders rather than boxes is not described.",
     "searched": "Zendesk help centre (all 100 public articles, full text search for diameter/cylinder/roll), downloads.magiclogic.com REST glossary, New Features in Cube-IQ 5.1.",
     "corrected": {
      "reason": "Re-checked 30 Sep 2026: all 100 public help articles, the REST glossary and the 5.1 release notes. A cylindrical product type is documented, but no diameter input and no description of packing as cylinders; the pass condition asks for a diameter input."
     }
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only statement on roll behaviour is the 5.1 release note line 'Improved Roll loading', which says nothing about the arrangement.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: nesting, staggered, honeycomb, hexagonal or pyramid arrangement of rolls/drums/cylinders; 'Improved Roll loading' release note. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cube-IQ’s optimizer recognizes the shape geometry and can nest L-shaped products together.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38575070713869-L-Shaped-products-in-Cube-IQ"
      },
      {
       "text": "If rotation options 1 (On feet) and 2 (Upside Down) are both allowed, Cube-IQ can stack one sofa upside down on top of another.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38575070713869-L-Shaped-products-in-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Only the L-shape is documented; 'tapered' cases are a marketing phrase on the Developers page with no documentation.",
     "searched": "",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We build the stroller as a container with zones to model the dimensions.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/35123386988557-How-to-use-the-Items-feature-within-Products"
      },
      {
       "text": "Our container in stage 1 is the created stroller. Items will be loaded into the zone we created.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/35123386988557-How-to-use-the-Items-feature-within-Products"
      }
     ],
     "recipe": "1. Model the item that has free space (e.g. a stroller) as a container and add a zone describing its free internal space (How to use the Items feature within Products, https://support.magiclogic.com/hc/en-us/articles/35123386988557-How-to-use-the-Items-feature-within-Products; How To Divide Containers Into Zones, https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones). 2. Switch on multi-stage loading (Options > General > Multi-stage loading) (How To Set Up a 2 Stage Load, https://support.magiclogic.com/hc/en-us/articles/30961394303245-How-To-Set-Up-a-2-Stage-Load). 3. In stage 1, load the smaller items into that container/zone (Items article). 4. In stage 2 the loaded 'container' becomes a product and is loaded into the shipping container or box (Loading in Cube-IQ, https://support.magiclogic.com/hc/en-us/articles/33947916783245-Loading-in-Cube-IQ).",
     "note": "The Items article is terse (no settings shown). No documentation that other cargo can use the free space under an L-shape's seat within a normal load.",
     "searched": "",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "outdated-source",
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The object must be rectangular, cylindrical or 'sofa'-shaped (a 3-dimensional L-shape).",
       "url": "https://downloads.magiclogic.com/Help/REST/glossary.html"
      },
      {
       "text": "Create graphical representations of products using draw-boxes for more realistic load diagrams.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "The current Shape tab (screenshot) lists 'Complex' greyed out. Draw-boxes are for diagrams only.",
     "searched": "",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Bulk",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Shapeless / Amorphous",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "Both appear as options on the product Shape tab (screenshot) with no description of how they occupy space; per the definition note this counts as claimed.",
     "searched": "",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "define the compressionlength , compressionwidth , or compressionheight attributes for your product(s) in the < products > section of your XML request.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38262217295757-Product-Compression-for-Oversized-Items-in-BlackBox"
      },
      {
       "text": "compressionlength=\"50\" means the product can be reduced to 50% of its original length during packing.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38262217295757-Product-Compression-for-Oversized-Items-in-BlackBox"
      }
     ],
     "recipe": "",
     "note": "BlackBox 5.1.9+ only, per product and dimension, as a percentage. Described for items larger than any container; whether it is also used to squeeze items into partly filled space is not stated. No Cube-IQ desktop/web equivalent documented.",
     "searched": "",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cube-IQ will automatically select the best Configs to load out of the Quantity of an order and/or by Priority.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25143655295373-How-to-Set-Up-Product-Configurations"
      },
      {
       "text": "It is only necessary to enter the order Quantity of the Product Id, and Cube-IQ will automatically break the Load Quantity down into different Config packages, and optimize them into selected Containers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25143655295373-How-to-Set-Up-Product-Configurations"
      }
     ],
     "recipe": "",
     "note": "A product uses either Orientations or Configurations, not both.",
     "searched": "",
     "corrected": null
    },
    "orientation-upright": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "SIDEUPOK Default Value should be False to prevent products from getting loaded on their side.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25455347460109-How-To-Import-Products-From-Excel-Into-Cube-IQ"
      },
      {
       "text": "\"turnable\" : true, \"flatok\" : true, \"sideupok\" : true, \"endupok\" : true",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "Per product: Orientations tab options (screenshot) and XML flags turnable, flatok, sideupok, endupok. Global switches 'Load all Products upright' (Settings, Client Specific) and 'Load Pallets always upright' (Options) also appear in screenshots. The linked article 'How to Set Up Allowed Orientations for Loading Products' (and 'How To Import Custom Orientations For Your Products From Excel') is login-gated (manual-checks #7) and was not used.",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "\"turnable\" : true",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      },
      {
       "text": "Allowed orientations: As defined, .. or turned, All six, Custom",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "For products: the 'As defined' option (vs '.. or turned') and the XML turnable flag. For built pallets in stage 2: 'Not turnable in stage 2', described in text. The linked article 'How to Set Up Allowed Orientations for Loading Products' (and 'How To Import Custom Orientations For Your Products From Excel') is login-gated (manual-checks #7) and was not used.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "SIDEUPOK Default Value is True, this rule means Products can get loaded on their side.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25455347460109-How-To-Import-Products-From-Excel-Into-Cube-IQ"
      },
      {
       "text": "Allowed orientations: As defined, .. or turned, All six, Custom",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "Loading on the side is explained in text; standing on the end rests on the 'All six' label and the endupok field.",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "SIDEUPOK Default Value is True, this rule means Products can get loaded on their side.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25455347460109-How-To-Import-Products-From-Excel-Into-Cube-IQ"
      },
      {
       "text": "\"turnable\" : true, \"flatok\" : true, \"sideupok\" : true, \"endupok\" : true",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "Setting sideupok true and endupok false would allow the side but not the end; the flags are independent fields, but only sideupok is described.",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allowed orientations: As defined, .. or turned, All six, Custom",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "A 'Custom' option exists on the Orientations tab (screenshot) and the Data Schema Reference lists an 'Orientation Rules' object, but the custom editor, the orientation-rules schema page and the custom-orientations import article are login-gated or unpublished. The public flags (turnable, flatok, sideupok, endupok) are axis-style toggles and are not shown to reach every subset of six. The linked article 'How to Set Up Allowed Orientations for Loading Products' (and 'How To Import Custom Orientations For Your Products From Excel') is login-gated (manual-checks #7) and was not used.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: 'Custom' orientation option, six-orientation mask/checkboxes, custom orientations import, orientation rules object. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Configuration priority (1-9) is a soft preference among packaging configurations, not among orientations of one item.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: preferred orientation, soft orientation preference, orientation priority. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Placement flags (On floor only, Not on floor) exist per product and per configuration, and the Products article says rules can be set per orientation, but no documentation ties an orientation to floor or non-floor placement. A route via one configuration per orientation (How to use multiple Orientation Dimensions) with its own placement flags is conceivable but undocumented for this purpose.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: orientation allowed only on floor / not on floor, bottom layer, per-orientation placement. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Configure allowed product orientations and rules for each.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Define orientation-specific data such as: Maximum Stack: Number of units in a stack. Supported Weight: Maximum weight that can be loaded on the product. Stack Index: Assigns products to higher or lower levels based on weight or fragility.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "The per-orientation editing grid is never shown; only product-level fields are visible. The linked article 'How to Set Up Allowed Orientations for Loading Products' (and 'How To Import Custom Orientations For Your Products From Excel') is login-gated (manual-checks #7) and was not used.",
     "searched": "",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The Load Edit shortcuts 'roll' and 'pitch' only push items onto their side or front (90-degree turns, manual editing). No automatic non-orthogonal placement is documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: angled, tilted, leaning, non-orthogonal placement; Load Edit roll/pitch. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Cylinder/Roll/Tube is one shape type; no article says whether the user can choose upright or lying, or how orientation flags apply to cylinders.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: cylinder/roll/drum upright vs lying, standing, on side, tube orientation. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "On top only",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "\"toponly\" : false",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "Per product (Orientations tab 'On top only', XML toponly) and per configuration. A Max. supported weight is also available (see stacking-bearing), but a value of zero is not documented as meaning 'nothing on top'.",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "On floor only",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "\"bottomonly\" : false",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "Per product (Orientations tab, XML bottomonly) and per configuration; also a global weight threshold that makes heavier products floor-only (Options > Loading Rules, screenshot).",
     "searched": "",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Not on floor",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25143655295373-How-to-Set-Up-Product-Configurations"
      }
     ],
     "recipe": "",
     "note": "Only on product configurations (Placement section of the Configurations tab); not on the plain Orientations tab.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A Product's stacking can be controlled by its Product attribute Maximum Stack; however, Maximum Stack only limits how many it can stack on itself.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25145299298573-How-to-Control-the-Stack-Quantity-Level-in-a-Container"
      },
      {
       "text": "Products imported will now only stack 7 high and will not be loaded on their side.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25455347460109-How-To-Import-Products-From-Excel-Into-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Per product (Maximum Stack; XML maxinlayer, default 999999 = no limit), per configuration ('Max. Stack'), and per orientation (see orientation row).",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Limit the stacking quantity level in a Container with the General Maximum Stack Quantity Setting.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25145299298573-How-to-Control-the-Stack-Quantity-Level-in-a-Container"
      },
      {
       "text": "Once Cube-IQ is showing the Client Specific tab, the General Max Stack Quantity can be changed from the 999999 default to 2.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25145299298573-How-to-Control-the-Stack-Quantity-Level-in-a-Container"
      }
     ],
     "recipe": "",
     "note": "Documented limitation alongside: the per-product Maximum Stack does not cap mixed stacks. The Client Specific tab is hidden by default and says its fields should be left blank unless advised by MagicLogic (screenshot).",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "\"max_stack_height\": 5",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34464697053197-Products"
      }
     ],
     "recipe": "",
     "note": "The API Products article's illustrative object has \"max_stack_height\": 5 without a unit or description; the article says field names are illustrative and it differs from the XML examples. No per-item height limit in length units is documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: maximum placement height, maximum stacking height per item, height limit in length units. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To set a Product's Max supported weight limit: Click Products menu Click Stacking tab Type 100 in Max. Supported weight field",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25048950806029-How-To-Set-Product-Max-Supported-Weight"
      },
      {
       "text": "The left Container is loaded wrong on account of the combined weight of red and yellow Products on top of blue Products is greater than than 100 lbs.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25048950806029-How-To-Set-Product-Max-Supported-Weight"
      }
     ],
     "recipe": "",
     "note": "Scale limit: switched off automatically when a load has more than 200 units. Not evaluated as pressure.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Our software ensures your pallets are loaded accurately, calculating cartons’ strength and crush resistance and ensuring only lighter items are placed on top.",
       "url": "https://magiclogic.com/load-planning-cartonization-and-palletization-now-accessible-in-the-cloud/"
      }
     ],
     "recipe": "",
     "note": "The cloud announcement blog claims BlackBox calculates 'cartons’ strength and crush resistance', but no pressure- or area-based bearing limit is documented; Max supported weight is a plain weight.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: pressure, weight per area, contact area, crush resistance per face. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The Max supported weight example uses different products on top of the blue product; no article states whether the limit is also checked within a stack of the same product (Maximum Stack is the documented like-item control).",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: supported weight on identical products, like-item stacks. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Our software ensures your pallets are loaded accurately, calculating cartons’ strength and crush resistance and ensuring only lighter items are placed on top.",
       "url": "https://magiclogic.com/load-planning-cartonization-and-palletization-now-accessible-in-the-cloud/"
      }
     ],
     "recipe": "",
     "note": "Blog claim about BlackBox palletisation only. The documented Stack Index 'assigns products to higher or lower levels based on weight or fragility' but its rule is not described (see stacking-strength-index).",
     "searched": "",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "Stack Index: Assigns products to higher or lower levels based on weight or fragility.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "\"stackindex\" : 2",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "Per product, per orientation and in XML. The direction of the rule (whether higher numbers go higher) and whether it is a hard 'never on a weaker index' rule are not documented. Reports can recolour products 'By stack index'.",
     "searched": "",
     "corrected": {
      "reason": "Stack Index text gives no ordering rule; the auditor's own ambiguity note conceded the gap."
     }
    },
    "stacking-item-pair": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Stack Code: Restricts stacking combinations using a matrix.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Use the Stacking Matrix to determine which products can be stacked on others.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "'Stack only on the same item' is reachable by giving an item a unique code and allowing only the diagonal, or via the 'Stack only if stack code the same' switch (screenshot). The article 'How To Control Product Stacking Using The Stacking Matrix' is login-gated (manual-checks #7).",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Supports Same Footprint Only: Ensures only identical products are stacked together.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Stacks upon same footprint only",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Minimum support factor",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "BlackBox ensures no cartons or items overhang the pallets or the layers underneath, based on the item’s precise weight and dimensions.",
       "url": "https://magiclogic.com/load-planning-cartonization-and-palletization-now-accessible-in-the-cloud/"
      }
     ],
     "recipe": "",
     "note": "For pallets built in layers, 'Minimum Layer Footprint' sets how much a layer must cover over the layer beneath (text), which is a layer rule rather than a per-item support share.",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "The following Palletizing Rules settings are automatically updated: Use seq/groups only for depalletizing Maximum gap after spreading Minimum bridging support Max. height difference in layer Max. height difference in layer at top Max. height differential",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26113101431949-How-To-Load-Layers-On-A-Pallet"
      }
     ],
     "recipe": "",
     "note": "Filled by a 'Set Values' button; units and meanings are not given.",
     "searched": "",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enter the nesting height increment (e.g., 0.1 cm ). This value tells Cube-IQ how much height is added when an additional unit is stacked.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41226254056205-Nesting-Behavior-in-Load-Optimization"
      },
      {
       "text": "If a product has a total height of 10 and a stackheight of 2.5: 1 unit = 10 height 2 units = 10 + 2.5 = 12.5 height",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41226254056205-Nesting-Behavior-in-Load-Optimization"
      }
     ],
     "recipe": "",
     "note": "The open-top variants and the smaller-top fields are visible only in a Stacking-tab screenshot; release notes name the feature ('Handling of open top boxes'). The nesting part is fully described in text.",
     "searched": "",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load full stacks only – Loads only complete stacks or layers, no partial stacks.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      },
      {
       "text": "Complete Layers Only This option disallows incomplete layers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      }
     ],
     "recipe": "",
     "note": "Remainder is left unloaded (documented for Complete layers only); remainder handling for 'Load full stacks only' is not stated.",
     "searched": "",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cube-IQ allows you to assign group numbers to products that you wish to keep together",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      },
      {
       "text": "Open a load in the Load Setup area, and enter a number in the Grp column for each product. Products of the same group number will be grouped together within the load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      }
     ],
     "recipe": "1. In Load Setup, give each product line its own number in the Grp column (How To Group Products Together Within a Load, https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load). 2. Optimise: products with the same group number are kept together rather than spread among other products (same article).",
     "note": "No dedicated 'keep identical items together' switch is documented; block-building settings ('Create single Unit blocks', 'Target minimum number of Units per block') exist only as screenshot labels on the Client Specific tab.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Products of the same group number will be grouped together within the load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      },
      {
       "text": "If you need to sequence products belonging to a group within a group's container, you can use Cube-IQ's Use 'sequence' with groups feature.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      }
     ],
     "recipe": "",
     "note": "Per product-to-load 'Grp' column (XML defaultgroup). Sequence within groups gives a second level. A product 'Master Package Code' that 'Groups similar products' exists with no described effect.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Never allowed: Groups must stay together at all times. If a group is too large or heavy for one container, it will not be loaded at all.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37883088205069-Splitting-Groups-Over-Containers"
      },
      {
       "text": "Allowed if it avoids an extra Container: Groups are kept intact unless splitting them avoids using an additional container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37883088205069-Splitting-Groups-Over-Containers"
      }
     ],
     "recipe": "",
     "note": "Failure mode documented: with 'Never allowed' an oversized group is left unloaded.",
     "searched": "",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If “Never Allowed” Setting is selected, products to load may not get loaded into a container if no container is large enough to load the entire product group.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      },
      {
       "text": "In this scenario, the Not Loaded columns confirms how all yellow products have 28 not loaded items each after re-optimizing .",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      }
     ],
     "recipe": "",
     "note": "Documented for the case where the group is larger than any available container type. Whether a group is also dropped whole when the available container quantity runs out is not stated.",
     "searched": "",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Product sequence is drop sequence",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28426447989901-Why-priority-on-product-configurations-is-not-working"
      },
      {
       "text": "Thickness of wall/space to separate drops",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33952603524493-Adjusting-the-Maximum-Block-Length"
      }
     ],
     "recipe": "",
     "note": "A text-documented alternative: define one zone per section and give each group's products the zone's matching code (zones article), so each group is confined to its own zone.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "shared-mechanism",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Stack only if sequence the same",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25145299298573-How-to-Control-the-Stack-Quantity-Level-in-a-Container"
      },
      {
       "text": "Stack Code: Restricts stacking combinations using a matrix.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Assign combination codes to products to control which products can be loaded together.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Configure the Combination Matrix to establish compatibility between product combinations.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "The article 'How To Control Which Products Can Be Combined In A Loaded Container' is login-gated (manual-checks #7).",
     "searched": "",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Grouping or zoning requirements, such as separating hazardous materials or temperature-controlled goods.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33696533383181-Load-Setup"
      },
      {
       "text": "Match: rule to only allow Products with equal Match Code to load into Zone.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      }
     ],
     "recipe": "1. Enable zones and define two zones in the container, positioned apart (for example one at the rear and one at the front, with a gap between them) (How To Divide Containers Into Zones, https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones). 2. Give each zone a Match code (same article). 3. Give the products of each class the matching code of their zone (Products, https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products: 'Matching Code: Restricts products to specific containers or zones.'). 4. Optimise; each class stays within its own zone (zones article).",
     "note": "Load Setup names 'zoning' for separating hazardous or temperature-controlled goods but shows no example. No separation-distance or not-above rule exists as such.",
     "searched": "",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "HAZMAT and Liion shipping rules are complicated, but Cube-IQ handles them with ease.",
       "url": "https://magiclogic.com/answers-to-15-common-load-optimization-problems/"
      },
      {
       "text": "Our customizable loading rules ensure all hazardous or combustible products are loaded safely",
       "url": "https://magiclogic.com/answers-to-15-common-load-optimization-problems/"
      }
     ],
     "recipe": "",
     "note": "No hazard-class attribute or built-in segregation table is documented. Documented hazmat tools are the Q-value cap (sum ≤ 1.0 per container) and user-built combination codes or zones.",
     "searched": "",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "the value of the products loaded will not exceed the maximum allowable value of goods in the container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25046712114573-How-to-Limit-the-Total-Value-Cost-of-Loaded-Items"
      },
      {
       "text": "The combined Q-value sum of all products in a single container cannot exceed 1.0 .",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28749189944333-How-to-Limit-Quantities-of-Hazardous-Products-using-Q-value"
      }
     ],
     "recipe": "",
     "note": "Value requires the Client Specific data to be shown. Ceiling for the value cap: 9999999/2.",
     "searched": "",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max # Products (Prds): rule for Maximum number of Product IDs to loaded into Zone",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "Maximum number of POs per Container",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25145299298573-How-to-Control-the-Stack-Quantity-Level-in-a-Container"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-ratio": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you have a requirement to load a group of articles or items which must be kept in exact proportional quantities, you can use Cube-IQ's 'treat groups as sets' feature.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28624305444877-How-To-Load-Items-In-Proportional-Quantities-Using-Cube-IQ-s-Treat-Groups-As-Sets-Feature"
      },
      {
       "text": "As you can see, each item is loaded in the correct ratio with its other set members, and the overall loading is extremely efficient",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28624305444877-How-To-Load-Items-In-Proportional-Quantities-Using-Cube-IQ-s-Treat-Groups-As-Sets-Feature"
      }
     ],
     "recipe": "",
     "note": "Behaviour when the ratio cannot be met is not described.",
     "searched": "",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "\"batch\" : 1",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "The API load example has an undescribed 'batch' field on products-to-load; configurations turn N units into one rigid package (a stronger constraint than a count multiple); Config4QTY rounds order quantities up to whole packs. None is documented as a multiple-of-N-per-unit rule.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: multiple of N per container, batch, fixed quantity per unit, 'Fixed stack qty', Config4QTY. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Click on the status bar at the bottom of the screen to lock specific parts of the load.  After locking parts of the load, make changes to the Load List or Settings, and re-optimize using the Load Setup screen.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33723815682701-Load-Plan"
      },
      {
       "text": "Use the Modify button to fix specific products. Make changes and click Re-Optimize to adjust the remaining portion of the load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33947916783245-Loading-in-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Loaded containers also carry a 'Locked' checkbox in Load Setup (screenshot). Manual Load Edit placement followed by locking and re-optimising is the documented path to hand-placed items.",
     "searched": "",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "Coordinate (Crd):  for where the Zone begins from the rear wall, left wall, and floor as the",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "Match: rule to only allow Products with equal Match Code to load into Zone.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      }
     ],
     "recipe": "1. Enable zones and add a zone whose Depth/Width/Height Crd and dimensions equal the required position and size of the item (How To Divide Containers Into Zones, https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones). 2. Give that zone a unique Match code (same article). 3. Give the item the same matching code (Products, https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products). 4. Optimise; the item can load only into its zone and other products are kept out of it (zones article).",
     "note": "No coordinate input on the item itself is documented; the vendor's own route to an exact position is manual Load Edit plus locking (a workaround).",
     "searched": "",
     "corrected": {
      "reason": "Zone recipe is auditor-built and relies on undocumented zone behaviour; the vendor's route is manual Load Edit plus Modify to fix products."
     }
    },
    "positioning-confine-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Match: rule to only allow Products with equal Match Code to load into Zone.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "Assign product matching codes for specific zones to create complex loading scenarios.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Zones must be enabled in Options; a 'Flex.' option lets a zone 'adjust dimension automatically if necessary to provide better fit' (extent undocumented).",
     "searched": "",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Match: rule to only allow Products with equal Match Code to load into Zone.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "Specify 3D rectangular spaces within the container that cannot be used for loading.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Both zones and unusable spaces are defined on the container record, not per plan; the zone route is item-selective.",
     "searched": "",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "TRUE means Products load from bottom to top and FALSE means back to front.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25047001354125-How-to-import-Containers-in-Excel-to-Cube-IQ"
      },
      {
       "text": "TRUE means Container is compacted in height and FALSE compacts along container's length.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25047001354125-How-to-import-Containers-in-Excel-to-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "TRUE means Products load from bottom to top and FALSE means back to front.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25047001354125-How-to-import-Containers-in-Excel-to-Cube-IQ"
      },
      {
       "text": "In this exercise we will begin with a Pallet Container having default settings and configured for \"Bottom to Top\" Load direction and \"In Height\" Load compacting.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26113101431949-How-To-Load-Layers-On-A-Pallet"
      }
     ],
     "recipe": "",
     "note": "Scope is per container, not per item.",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The maxreach setting limits how far back subsequently loaded items can be placed from the front most item in the container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33107389209869-Adjusting-the-Maximum-Reach-Setting"
      },
      {
       "text": "Maximum Block Length in Load Plans Defines the maximum depth of a block in the direction of loading .",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33952603524493-Adjusting-the-Maximum-Block-Length"
      }
     ],
     "recipe": "",
     "note": "Per settings profile (Operational Settings), in length units.",
     "searched": "",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Space to be left open ... .. overall in width direction .. between Units - length direction .. between Units - width direction .. between Units - height direction",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33952603524493-Adjusting-the-Maximum-Block-Length"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Maximum bracing distance",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "A container field 'Maximum bracing distance' appears in Containers-tab screenshots with no description; it may relate to this row but its effect is not documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: bracing, backed by wall, lateral support, shift, load securing check. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Weight Capacity: Maximum weight the container can hold.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      },
      {
       "text": "Products exceed maximum weight capacity of available containers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33477496510093-Troubleshooting-Unloaded-Products"
      }
     ],
     "recipe": "",
     "note": "Per container type; pallets are containers, so this is also the pallet's maximum load. No gross-vehicle-weight (tare-inclusive) form documented.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max Weight:  rule for maximum Weight Capacity for a Zone",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "the Max Weight rule will also prevent Products from getting loaded into a Zone if combined weight is greater than the Zone's Max Weight.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      }
     ],
     "recipe": "",
     "note": "Per zone.",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Here is an example where this Semi-Trailer must adhere to rules where front area can only support a weight of 5000kg, rear can only support a weight of 5,500kg and the difference of 12,000kg can only be supported in the middle. A rear, middle, and front Zone can be defined for these Max Weight rules.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      },
      {
       "text": "There is also a Max. Weight restriction for each Zone where Zone weight cannot be greater 4,500kg in the rear, 12,000kg in the middle, and 5,000kg in the front Zone.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones"
      }
     ],
     "recipe": "1. Enable zones and add consecutive zones along the length (rear Depth Crd 0, middle 351 cm, front 936 cm) spanning the full width and height (How To Divide Containers Into Zones, https://support.magiclogic.com/hc/en-us/articles/26247534060813-How-To-Divide-Containers-Into-Zones). 2. Set Max Weight on each zone (same article). 3. Optimise; products are kept within zone boundaries and zone weight limits (same article).",
     "note": "The article's own numbers differ (5,500 kg vs 4,500 kg for the rear).",
     "searched": "",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only fixed zones with Max Weight are documented (see weight-length-sections); no continuous weight-per-length rule.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: weight per metre, per unit length, linear load, floor load per length. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Configuring axles ensures that optimized loads comply with real-world transport rules, balancing cargo across axle groups and avoiding overweight violations.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39272917952909-How-to-Setup-Axles-for-Truck-Containers"
      },
      {
       "text": "Dist from Back – The distance (in inches or mm) from the back of the container. Weight Limit – Maximum allowable weight for the axle.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39272917952909-How-to-Setup-Axles-for-Truck-Containers"
      }
     ],
     "recipe": "",
     "note": "Container type Truck, Axle Weights tab, Cube-IQ v5+. The axle-load model (rigid truck vs trailer, kingpin, tare) is not described.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Click Add Axle to create a new axle group.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39272917952909-How-to-Setup-Axles-for-Truck-Containers"
      },
      {
       "text": "Define the following for each axle:",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39272917952909-How-to-Setup-Axles-for-Truck-Containers"
      }
     ],
     "recipe": "",
     "note": "The Axles article (Sep 2025) has an add-row grid; its screenshot shows two rows. The Containers overview says two axles.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only tare field is the container's 'Tare Weight' on the Outside Dims tab, documented for use when the loaded container becomes a product in the next stage, not for axle loads.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: tare per axle, empty axle load, vehicle tare, tare centre of gravity. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Axles are defined only by distance from the back of the container and a weight limit; no towing unit is modelled.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: kingpin, fifth wheel, tractor, drawbar, coupling, semi-trailer axle transfer. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Our software can calculate loads taking into account weight distribution front/back and left/right, and can also balance weight across axles, meeting all state regulations and avoiding those pesky fines that mount up so quickly.",
       "url": "https://magiclogic.com/answers-to-15-common-load-optimization-problems/"
      }
     ],
     "recipe": "",
     "note": "A blog post claims the software can 'balance weight across axles, meeting all state regulations', but no jurisdiction setting or built-in legal limits are documented; limits are typed per axle.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: jurisdiction, state, region, legal limits, bridge formula, permits. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Set minimum and maximum positions for the COG. Use percentages of the container’s length and width.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39200622809997-How-To-Use-The-Center-Of-Gravity-Setting-In-Cube-IQ"
      },
      {
       "text": "Set Minimum % of length from back to 40%. Set Maximum % of length from back to 60%. When you reoptimize the load, the heavy pink products are now loaded in the center of the container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39200622809997-How-To-Use-The-Center-Of-Gravity-Setting-In-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Per settings profile (Operational Settings, 'Range for Center of Gravity Location'), as % of container length from the back. Whether it is a hard limit or a target is not stated; the examples show the load moving into the range.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Set minimum and maximum positions for the COG. Use percentages of the container’s length and width.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39200622809997-How-To-Use-The-Center-Of-Gravity-Setting-In-Cube-IQ"
      },
      {
       "text": "Minimum % of length from back Maximum % of length from back Minimum % of width from left Maximum % of width from left",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39200622809997-How-To-Use-The-Center-Of-Gravity-Setting-In-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Width range as % from the left wall. Only lengthwise examples are shown; field names for width are from the article's screenshot, the text names both length and width.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The CoG range covers length and width only.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: vertical centre of gravity, height of COG, COG height limit. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Our software can calculate loads taking into account weight distribution front/back and left/right, and can also balance weight across axles",
       "url": "https://magiclogic.com/answers-to-15-common-load-optimization-problems/"
      },
      {
       "text": "Configuring axles ensures that optimized loads comply with real-world transport rules, balancing cargo across axle groups and avoiding overweight violations.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39272917952909-How-to-Setup-Axles-for-Truck-Containers"
      }
     ],
     "recipe": "",
     "note": "No option to centre the load or even out axle loads without a bound is documented; the documented CoG control is a min/max range.",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Products have dimensions and weight only (plus Net weight in a screenshot).",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: item centre of gravity, off-centre COG, eccentric weight. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Interpret Product sequence as ‘priority’ – Loads lower sequence numbers first, treating them as higher priority.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      },
      {
       "text": "Enable the \"Use Group number as primary sequence\" feature to load groups in the order of their group number.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      }
     ],
     "recipe": "",
     "note": "Direction: lower sequence numbers are loaded first, so with back-to-front loading they sit deeper; the Maximum reach article implies later sequences should be nearer the door. The direction is inferred from 'loaded first', not stated as a position rule.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Interpret Product sequence as ‘priority’ – Loads lower sequence numbers first, treating them as higher priority.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      },
      {
       "text": "Prioritization and Sequencing. Load priority items first and fill to capacity with option items to max out the cube.",
       "url": "https://magiclogic.com/developers/"
      }
     ],
     "recipe": "",
     "note": "Per load Loading Rules option. That lower-priority lines are the ones left out when space runs out is implied by 'loaded first' rather than stated.",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Prioritization and Sequencing. Load priority items first and fill to capacity with option items to max out the cube.",
       "url": "https://magiclogic.com/developers/"
      },
      {
       "text": "You can even have additional fill items packed to cube out a load when necessary, avoiding paying for empty space in an expensive container.",
       "url": "https://magiclogic.com/answers-to-15-common-load-optimization-problems/"
      }
     ],
     "recipe": "",
     "note": "No optional or fill-item flag is documented in the help centre or API.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Product sequence is drop sequence",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28426447989901-Why-priority-on-product-configurations-is-not-working"
      },
      {
       "text": "Thickness of wall/space to separate drops",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33952603524493-Adjusting-the-Maximum-Block-Length"
      }
     ],
     "recipe": "",
     "note": "Also marketing: 'facilitates loading in specific sequences' (Cube-IQ page).",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Maximum reach limits how far back later items may be placed from the front-most item and 'Stack only if sequence the same' (screenshot) limits cross-sequence stacking, but neither is documented as a guarantee that each stop unloads without moving other goods.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: later stops never in front of or on top of earlier stops, unload without moving goods, LIFO. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Maximum # of Sequence to look ahead – Sets how many future sequences are considered during optimization.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      },
      {
       "text": "\"sequencemixok\" : true",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The cloud announcement's 'pick or drop sequence' does not describe per-item pickup stops.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: pickup stop, origin and destination per item, pick-up and delivery. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Sequence rules operate in multi-container loads ('One Container per sequence number', 'Product seq. is Container seq.', 'Sequenced reaching minimum fill first'), but no article states that drop-order placement holds within or across several units.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: drop sequence across several containers, multi-stop in multi-container loads. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Finish each Product sequence – Decides if a sequence must be completed in one container or can be split.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      }
     ],
     "recipe": "",
     "note": "'Finish each Product sequence' 'Decides if a sequence must be completed in one container or can be split'; it concerns splitting across containers, and its other values and behaviour when a sequence does not fit are not documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: sequence loaded completely or not at all, partial sequence, finish each sequence. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Loads carry a date field (API example \"date\" : \"17-11-2015\") with no planning effect described.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: due date, ship date, storage date, date range, date-based allocation. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In Cube-IQ, a pallet is treated as one type of container .",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      },
      {
       "text": "Columns G's \"Outside Height\" in this example is the height of the container's floor; therefore, the mapping for this column G in Cube-IQ is OUTSIDEEXTRAHEIGHT.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25047001354125-How-to-import-Containers-in-Excel-to-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "The pallet container's Height is the load-height limit above the deck; the deck height ('Height to be Added') is added when the built pallet moves to the next stage. A total-height limit including the deck is therefore entered as container height minus deck height; no single 'total height' field is documented.",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The green Product's formation has changed to be more suited to load a Pallet of green Products.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26113101431949-How-To-Load-Layers-On-A-Pallet"
      },
      {
       "text": "Pallet Rules tell Cube-IQ how to stack products on a pallet.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      }
     ],
     "recipe": "",
     "note": "The optimiser builds the layer pattern and number of layers itself; one result per run, no list of alternative patterns documented.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rotate Layers Check this box to rotate every second layer by 180° to make the stack stronger.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      },
      {
       "text": "Spread Units Check this box to leave more space between products, so that each layer covers the largest possible amount of available surface area.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Mixed Layers Check this box if you wish to allow the optimizer to mix multiple different products in the same layer.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      },
      {
       "text": "Once a Pallet load has been created, in the settings tab under client specific you can select Use the Mixed Palletization Optimizer to introduce the feature.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/32799625579661-Mixed-Pallet-Optimizer"
      }
     ],
     "recipe": "",
     "note": "What the Mixed Palletization Optimizer does differently, and which rules it honours, is shown only by before/after animations.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Maximum Overhang (per side) This setting specifies how much of the pallet's length or width refers to an area hanging over the side of the pallet.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      },
      {
       "text": "If the actual pallet width is 90 cm, but you wish to allow 5 cm of overhang on each side, you should define it as 100 cm wide (5cm on left + 90 cm width + 5 cm on the right) and set Maximum Overhang in Width Direction to 5 cm.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      }
     ],
     "recipe": "",
     "note": "Per pallet, length and width per side; the pallet must be defined including the overhang.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Check Center Load to center the load on the Pallet, in both length and width direction.  If overhang is allowed, the Load will always be centered, as this minimizes the use of overhang.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Not mentioned in any source.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: slip sheet, tier sheet, interlayer, layer pad, separator sheet. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "“Never Allowed” setting will never split grouped products, will always load grouped products together in one container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      },
      {
       "text": "Select \"Okay only when too large for container\" setting if groups cannot share the same container and each group can split between more than one container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/26109959849869-How-To-Group-Products-Together-Within-a-Load"
      }
     ],
     "recipe": "",
     "note": "The group rules are documented with ocean containers; their use for pallets follows from pallets being a container type but is not shown.",
     "searched": "",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cube-IQ can even handle a more complete scenario when you need to optimize the products into cartons, the cartons into pallets and the pallets into Trucks or maritime containers.  An you can optimize all the stages with a single click of a button.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/30961394303245-How-To-Set-Up-a-2-Stage-Load"
      },
      {
       "text": "Cube-IQ will optimize both stages of the load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41508244709645-Loading-Products-in-Multiple-Stages"
      }
     ],
     "recipe": "",
     "note": "Options > General > Multi-stage loading must be switched on; containers need Outside Dimensions.",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Once Stage 1 is completed, Cube-IQ automatically converts loaded containers into Stage 2 products for the next stage.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33947916783245-Loading-in-Cube-IQ"
      },
      {
       "text": "For the Multi-Stage Loading feature to work properly, containers should be defined with Outside Dimensions .",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41508244709645-Loading-Products-in-Multiple-Stages"
      }
     ],
     "recipe": "",
     "note": "Outside length/width/height, height to be added, tare weight and stack code carry into the next stage.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Once products have been loaded into containers in the first stage, those containers may be loaded into larger containers in a second or third stage.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41508244709645-Loading-Products-in-Multiple-Stages"
      },
      {
       "text": "optimize the products into cartons, the cartons into pallets and the pallets into Trucks or maritime containers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/30961394303245-How-To-Set-Up-a-2-Stage-Load"
      }
     ],
     "recipe": "",
     "note": "Three stages documented; configurations can be assigned to stages by priority number.",
     "searched": "",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If set to true , the product will only be placed into a container (e.g., carton, master box) if that container is already being used and has leftover space. It will never trigger the creation of a new container on its own.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/39256010460429-Shipping-Pre-Packaged-Items-Without-Extra-Cartons-in-BlackBox"
      },
      {
       "text": "Place it into a carton only if it fits without requiring additional or larger cartons.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38919586622221-Shipping-Pre-Packaged-Items-Without-Extra-Cartons-in-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Complete-layers-only remainders are left unloaded for another pallet.",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Check Not turnable in stage 2 if the loaded pallet is meant to go into another container in the second stage, and you wish to restrict the optimizer from changing the pallet's orientation.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/41898310053133-Pallet-Rules-and-How-to-Configure"
      },
      {
       "text": "Usually, pallets do not stack on each other.  Then, by default, pallets are not allowed to stack on stage 2.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/30980066402957-How-To-Allow-Pallets-To-Stack-On-Stage-2"
      }
     ],
     "recipe": "",
     "note": "Stacking pallets in stage 2 needs the Stage2Stacks feature code and a restart. No rule on how full a pallet's top must be is documented.",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Container sizing lets the optimiser choose a container's dimensions within a range (documented for bags); its use to size pallet heights to the vehicle in a multi-stage load is not documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: pallet height adapted to vehicle, shorter top-tier pallets, dynamic pallet height, container sizing for pallets. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "By default Cube-IQ will attempt to fill containers with the maximum loaded volume or loaded weight feasible.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/31270821474317-How-to-set-Fill-limits-on-containers"
      },
      {
       "text": "The BlackBox load engine has maximum fill rate as its main objective.",
       "url": "https://magiclogic.com/products/blackbox/"
      }
     ],
     "recipe": "",
     "note": "Measure: volume or weight ('maximum loaded volume or loaded weight feasible'); which one governs is not stated. Unloaded excess is reported in the Not Loaded column.",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Best fill: All containers are simulated per step. The container with the highest utilization is selected.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      }
     ],
     "recipe": "",
     "note": "The default objective is stated as 'maximum loaded volume or loaded weight feasible' and 'Best fill' picks 'the highest utilization', but no setting lets the user choose weight over volume.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: weight utilisation objective, maximise weight, weight-based selection rule. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load proportionally – Distributes products evenly across containers rather than filling one at a time.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/38593689465357-What-are-Loading-Rules"
      }
     ],
     "recipe": "",
     "note": "Per load Loading Rules option. The measure (volume, weight or count) is not defined.",
     "searched": "",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Assign large loading quantities to each item, and make sure the quantity reflects the ratio between each item.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28624305444877-How-To-Load-Items-In-Proportional-Quantities-Using-Cube-IQ-s-Treat-Groups-As-Sets-Feature"
      },
      {
       "text": "we want to load exactly one dining table, two arm chairs and four standard chairs multiple times. Similarly for the bed set, we want to load a headboard, a footboard and two rails, multiple times, and overall load as many items as possible",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28624305444877-How-To-Load-Items-In-Proportional-Quantities-Using-Cube-IQ-s-Treat-Groups-As-Sets-Feature"
      }
     ],
     "recipe": "",
     "note": "Cube-out relies on entering a quantity larger than will fit; there is no mode that works without a quantity.",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The \"Maximum run time\" setting defines the strict time limit the optimizer uses when working on each container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37229392649485-BlackBox-CubeIQ-Optimizer-Settings"
      },
      {
       "text": "The \"Maximum number of non-improving iterations\" determines how many additional optimization attempts can be made without finding a better result",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37229392649485-BlackBox-CubeIQ-Optimizer-Settings"
      }
     ],
     "recipe": "",
     "note": "Per settings profile (XML maxruntime, maxnonimproveiters); Interrupt keeps the best load so far. Results are not reproducible run to run (documented limitation). A 'Stop as soon as everything loaded' switch appears in a screenshot.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Minimum overall cost + Largest first: Runs the optimizer twice, once using each rule. Then selects the better result.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/37580174850829-Container-Selection-Rules"
      }
     ],
     "recipe": "",
     "note": "'Minimum overall cost + Largest first' runs the optimiser twice and keeps the better result; it does not return both for comparison.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: multiple solutions, alternative plans, compare plans, scenarios. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Make Product floor-only if weight more than ...",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28426447989901-Why-priority-on-product-configurations-is-not-working"
      }
     ],
     "recipe": "",
     "note": "No general rule builder over attributes is documented.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use attributes like supplier or plant location to refine product visibility during load setup.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "SQL commands are useful to get customized information from Cube-IQ's database.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/30922405969549-How-To-Use-The-SQL-Interpreter-in-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "Products have Filtering Attributes 1-4 ('refine product visibility during load setup'), loads can show user fields and the Load Setup grid shows PUserString columns (screenshot), and an SQL interpreter queries the database; none is documented as usable in a planning rule. Free-text codes (matching, stack, combination, group) drive built-in rules and are scored under the between-items rows.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: user fields, user data, attributes, filters, SQL interpreter, PUserString. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Create and assign stack codes to products to define stacking rules.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Use the Stacking Matrix to determine which products can be stacked on others.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "Stack codes on products, configurations and next-stage containers; 5.1 adds 'Sorting on stack codes'. Per-orientation exceptions are possible only through configurations (each has its own code). No class-count guidance.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Assign combination codes to products to control which products can be loaded together.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Configure the Combination Matrix to establish compatibility between product combinations.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only fixed attributes are capped: declared value ('Maximum total loaded value') and hazmat Q-value (cap 1.0). Both pass between-sum-cap only.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: user-chosen attribute sum cap, custom capacity, per-group cap. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Settings: Optimization parameters selected from the drop-down list or defined through the Settings tab.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      },
      {
       "text": "\"settingsid\" : \"Box Default\"",
       "url": "https://support.magiclogic.com/hc/en-us/articles/34463597171341-Containers"
      }
     ],
     "recipe": "",
     "note": "Named settings profiles (Optimizer Settings, Operational Settings, Loading Rules, Client Specific) are assigned per container type; pallet rules and fill limits are also per container type.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Configure stacking rules for products, such as: Stack Code: Restricts stacking combinations using a matrix. Supports Same Footprint Only: Ensures only identical products are stacked together. Nested Stacking: Defines height adjustments for stacked products.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33735548703117-Products"
      },
      {
       "text": "Setting Maximum Stack to 2 for four different Products does not prevent these four Products from stacking 8 levels high",
       "url": "https://support.magiclogic.com/hc/en-us/articles/25145299298573-How-to-Control-the-Stack-Quantity-Level-in-a-Container"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": {
      "reason": "Passed on stacking fields sitting in one product record, the same reading scoring rejected for SeaRates (expressiveness-combine-stacking). Applied to both for consistency."
     }
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only single selection rules exist; 'Minimum overall cost + Largest first' runs two rules and keeps the better result, which is not an ordered or weighted combination.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: ordered objectives, weighted objectives, tolerance, multi-criteria. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Over half of all implementations involve customization to meet specific customer needs.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33953562754445-Introduction-to-BlackBox"
      },
      {
       "text": "FeatureCode=022;Locus;013; Configures feature-specific options.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33171671730829-Understanding-the-BlackBox-Configuration-File"
      }
     ],
     "recipe": "",
     "note": "Extension is vendor-side: feature codes supplied by MagicLogic (e.g. Config4QTY, Stage2Stacks, 'FeatureCode=022;Locus;013;'), a Client Specific tab whose fields 'should be blank or unchecked, unless you have been advised otherwise by MagicLogic' (screenshot), and BlackBox rule-set customisation ('Over half of all implementations involve customization'). These fail as user capabilities per the definition note.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: script, plug-in, callback, custom rule, feature code, customization. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The default behavior is to select the configuration with the better fit.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28426447989901-Why-priority-on-product-configurations-is-not-working"
      },
      {
       "text": "With this box checked, Cube-IQ will not allow a product to be loaded in a configuration with a lower priority if a configuration with a higher priority is possible.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/28426447989901-Why-priority-on-product-configurations-is-not-working"
      }
     ],
     "recipe": "",
     "note": "Group splitting also offers graded strictness (always / if it avoids a container / only when too large / never).",
     "searched": "",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For every loaded block representing a specific product in a particular orientation, the Load Plan outlines exactly how it should be assembled and where it should be placed. This information is presented not only in precise coordinates but also visually",
       "url": "https://support.magiclogic.com/hc/en-us/articles/36561083209741-Generate-Load-Plan-Report"
      }
     ],
     "recipe": "",
     "note": "The Maximum Block Length screenshot shows each block with 'Qty: 24 (48 of 72) (2 x 3 x 4)', block and product dimensions, and its position 'from back', 'from left', 'from floor'; orientation is implied by the placed product dimensions. BlackBox result schema is not public ('contact MagicLogic for examples').",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Load Plan provides a comprehensive report detailing how to load each container within the current loading scenario. In essence, it serves as the complete set of loading instructions.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/36561083209741-Generate-Load-Plan-Report"
      },
      {
       "text": "Use the Slider on the right side of the screen to view the load's step-by-step build.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33723815682701-Load-Plan"
      }
     ],
     "recipe": "",
     "note": "Block size per step can be limited with 'Maximum block length in Load Plans'.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Overview Tab: Displays a summary of loaded containers.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33947916783245-Loading-in-Cube-IQ"
      },
      {
       "text": "In the Load Setup View, take note of the Loaded Weight of the container.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33477496510093-Troubleshooting-Unloaded-Products"
      }
     ],
     "recipe": "",
     "note": "Per loaded container (screenshot): # Units/Items/Prds, loaded volume and %, loaded weight and %, gross weight, length used and %. Pallets are containers, so built pallets get the same figures; a pallet 'Stability Index' is shown in one example (calculation undocumented).",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Details Window: Displays weight distribution, load dimensions, and other key metrics.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33947916783245-Loading-in-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "The 'Length used' figure is visible in the Load Setup screenshot (e.g. 230.34 inch, 99.28%).",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Note the quantities in the Not Loaded  column. They indicate that there are products which have been left out of the optimized load.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33477496510093-Troubleshooting-Unloaded-Products"
      }
     ],
     "recipe": "",
     "note": "Per product-to-load line in Load Setup; an Options switch 'Add not-loaded units to Export' appears in a screenshot.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Here is a list of some of the most common reasons for unloaded products:",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33477496510093-Troubleshooting-Unloaded-Products"
      }
     ],
     "recipe": "",
     "note": "The troubleshooting article gives a general list of common causes (containers, weight, value, matching code, fill limit, Q-value) for the user to check by hand, which the definition note says fails. BlackBox error messages concern input data only.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: reason per unplaced item, not loaded reason, diagnostics, error messages. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "output-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Show Center of Gravity in Load Plans",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33732217889549-Containers"
      }
     ],
     "recipe": "",
     "note": "Containers have 'Show Center of Gravity in Load Plans' (screenshot), which draws the CoG in diagrams; no numeric CoG output is documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: numeric centre of gravity, COG coordinates, COG offset output. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Automatically calculates axle weights for legal and safe loads",
       "url": "https://magiclogic.com/products/cube-iq/"
      },
      {
       "text": "Cube-IQ ensures all axle weights are accurately calculated, so loads are safe and legal.",
       "url": "https://magiclogic.com/load-planning-cartonization-and-palletization-now-accessible-in-the-cloud/"
      }
     ],
     "recipe": "",
     "note": "No documented output field or report shows per-axle load figures; Load Details shows 'weight distribution percentages'.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Show weight distribution: Displays weight spread across the container (in supported reports).",
       "url": "https://support.magiclogic.com/hc/en-us/articles/36927375139981-Customizing-Load-Plan-Reports-and-Diagrams-in-Cube-IQ"
      },
      {
       "text": "Check the Load Details window to view weight distribution percentages.",
       "url": "https://support.magiclogic.com/hc/en-us/articles/33947916783245-Loading-in-Cube-IQ"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Load Setup shows a 'Gross Weight' per loaded container (screenshot) with no definition; in the example it equals the loaded weight (102 lbs), so whether it includes tare is not shown. Tare weight is documented only for next-stage use.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: gross weight including tare, VGM, total weight with container. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "output-per-stop": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Reports can recolour products by sequence number, sequence and group, or PO, which is display colouring, not a per-stop summary or view.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: per-stop summary, per-drop view, contents per stop. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Load Edit allows drag-and-drop editing; a 'Validate' button appears on the Products ribbon (screenshot) and 'Load Edit cannot increase Load List quantities' in Options (screenshot), but no validation of an edited plan against item rules is documented. 'Diagnostics' checks input data.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: validate plan, rule violations, warnings after Load Edit, check manual edits. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "output-voids": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Marketing mentions minimising void space; no void output is documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: void, empty space, dunnage, airbag, gap report. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Shipping cost' per container is an input to the 'Minimum overall cost' rule; no cost figure in the output is documented.",
     "searched": "Full text of all 100 public en-us help-centre articles (Zendesk API articles.json?per_page=100, bodies converted to text), all 35 REST manual topics at downloads.magiclogic.com/Help/REST/, the magiclogic.com Cube-IQ, Cube-IQ Web, BlackBox, Developers, FAQ and home pages, and all 27 magiclogic.com blog posts (wp-json/wp/v2/posts); searched for: plan cost, shipping cost output, cost per item, cost allocation. Also reviewed the first-pass audit records and screenshots of the Products, Containers, Settings and Options tabs.",
     "corrected": null
    }
   }
  },
  {
   "id": "cubemaster",
   "name": "CubeMaster",
   "vendor": "Logen Solutions",
   "url": "https://cubemaster.net/",
   "auditedOn": "2026-09-30",
   "caveat": "Several editions exist (Online, API, Windows, SDK). A requirement counts if any edition sold today documents it; the edition is named in the note.",
   "scope": "CubeMaster Online web help (linked as v10.10.6.2 but describing 2026 features such as Multiple Time Windows/Pulling and the Fulfillment Portal;",
   "sources": [
    {
     "title": "CubeMaster API V2 Developer Guide",
     "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
    },
    {
     "title": "CubeMaster API V2 OpenAPI (swagger.json behind api.cubemaster.net Swagger UI)",
     "url": "https://api.cubemaster.net/swagger/v2/swagger.json"
    },
    {
     "title": "CubeMaster Online Help",
     "url": "https://cubemaster.net/Help/webhelp/index.html"
    },
    {
     "title": "CubeMaster for Windows User's Guide (web help)",
     "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/index.html"
    },
    {
     "title": "CubeMaster SDK (OptimizerE3) Reference Guide",
     "url": "http://www.logensolutions.com/VMS/TechSupport/SDK_Help/index.html"
    },
    {
     "title": "CubeMaster Calculation Web Service (legacy) help",
     "url": "http://cubemaster.net/subscription/webservices/Help/index.html"
    },
    {
     "title": "CubeMaster Online & Web Services Overview (2018)",
     "url": "https://cubemaster.net/Download/CubeMaster_Online_Overview.pdf"
    },
    {
     "title": "CubeMaster Online FAQ",
     "url": "https://cubemaster.net/Subscription/faq.html"
    },
    {
     "title": "Features & Specifications",
     "url": "https://cubemaster.net/Subscription/features.html"
    },
    {
     "title": "Applications",
     "url": "https://cubemaster.net/Subscription/applications.html"
    },
    {
     "title": "API page",
     "url": "https://cubemaster.net/Subscription/api.html"
    },
    {
     "title": "Pricing",
     "url": "https://cubemaster.net/Subscription/pricing.asp"
    },
    {
     "title": "Logen: Load Plan & Optimization Software",
     "url": "https://www.logensol.com/load-plan-optimization-software"
    },
    {
     "title": "Logen help & resource index",
     "url": "https://www.logensol.com/help"
    },
    {
     "title": "CubeDesigner Professional User Guide (sibling product)",
     "url": "http://logensolutions.com/VMS/Download/Documents/CubeDesigner_Professional_User_Guide.pdf"
    }
   ],
   "passed": 90,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "These values represent the inside (loadable) dimensions of the vehicle.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic1.html"
      },
      {
       "text": "length | integer | Length in UOM units.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "All editions (Online, API V2, Windows, SDK). Container types Carton, Pallet, SeaVan, Truck, AirPallet; preset databases plus user-entered sizes.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Unusable Spaces - Corner castings and unusable spaces at the sea containers and trucks.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/extensive-vehicle-and-cargo-types.html"
      },
      {
       "text": "Corner Castings : This is the structure attached onto ceil of the sea container for the crane lifting. Its 3 dimension should be defined with container together when a load data is defined before running the load.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/terminology.html"
      }
     ],
     "recipe": "",
     "note": "Windows edition only. Fixed kind: corner castings with a user-given 3D size, position implied (ceiling corners). The SDK lists a SetContainerCornerCastSize function with no page. Nothing equivalent in Online help or API V2. Whether cargo may be stacked on top is not stated.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Windows mentions 'unusable spaces' in the plural next to corner castings, with no input described for free regions. API V2 zones have position and size, but they are not documented as blocked regions.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'unusable', 'obstruct', 'corner cast', 'wheel', 'blocked', 'zone' (zones are sub-volumes, not blocked regions), SDK function list.",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use the Max Height to limit the maximum height of the cargo regardless of the inside dimensions of the vehicle. This comes in handy when you're evaluating refrigerated or frozen loads that need room for air circulation.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic1.html"
      },
      {
       "text": "maxHeight | integer | Maximum cargo height (e.g., 111).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per equipment (truck, sea container; pallets have their own Max Height including deck). Online and API V2. Max Volume % is a separate volume cap.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rear Distance The distance from the rear wall of the trailer to the drop off point at floor level. Rear Depth The drop off depth in the rear of the vehicle at floor level.",
       "url": "https://cubemaster.net/Help/webhelp/pages/drop-deck1.html"
      },
      {
       "text": "vehicleDropDeckRearSize | null/object | Rear drop deck size for trucks: {length, width, height}.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Online and API V2 (vehicleDropDeckFrontSize, vehicleDropDeckRearSize). Trucks and sea containers. Windows lists drop-off (goose neck) under Enterprise container types.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "outdated-source",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A custom shape can be defined at the ULD Shape window by defining six points",
       "url": "https://cubemaster.net/Download/CubeMaster_Online_Overview.pdf (p. 17)"
      },
      {
       "text": "The size and shape of new air container and pallet is defined by user with air container shape editor.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/enterprise-edition.html"
      }
     ],
     "recipe": "",
     "note": "ULDs only: a six-point contour. Windows Enterprise edition and the 2018 Online overview. The API V2 EmptyContainer schema has no shape field, and the current Online ULD help pages do not mention shapes.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allows defining custom non-standard container shapes, irregular vehicle beds, and specialized racks.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "The drop deck (trucks, sea containers) and the ULD contour (air) are separate equipment types; no documented single unit combines both. The features page claims custom non-standard shapes without describing them.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'contour', 'shape', 'six points', 'drop deck' in combination with ULD, 'irregular', 'custom equipment'.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A custom shape can be defined at the ULD Shape window by defining six points",
       "url": "https://cubemaster.net/Download/CubeMaster_Online_Overview.pdf (p. 17)"
      }
     ],
     "recipe": "",
     "note": "The six-point ULD contour could describe sloped faces, but no source says whether cargo is placed against a slope or a stepped approximation.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'slope', 'angle', 'chamfer', 'contour', 'six points', 'shape editor'.",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "enforcement-unclear",
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "zones | null/array | Zoning information (null if not used). Array of zone objects with position, size, maxWeight.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "\"maxVolUtilization\": { \"type\": \"number\", \"format\": \"double\" }, \"sequence\": { \"type\": \"integer\", \"format\": \"int32\" }, \"fillDirection\": { \"$ref\": \"#/components/schemas/FillDirectionEnum\" }",
       "url": "https://api.cubemaster.net/swagger/v2/swagger.json"
      }
     ],
     "recipe": "",
     "note": "API V2 only (container zones as sub-volumes with their own position and size; swagger adds per-zone sequence and fill direction). The SDK lists an AddSubContainer function with no page. An aircraft as a set of ULDs (2018 PDF) is several units, not sub-spaces.",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Core container properties: Description, internal Length, Width, Height, Max Weight, Door Opening dimensions, and Tare Weight.",
       "url": "https://cubemaster.net/Help/webhelp/pages/container-edit-popup.html"
      },
      {
       "text": "Too Large: The item's dimensions exceed the container's interior dimensions or door size.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-exceptions.html"
      }
     ],
     "recipe": "",
     "note": "CubeMaster Online UI only; API V2 has no door field. The engine effect is shown by the Exceptions report citing door size as a reason an item was not loaded.",
     "searched": "",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Loading direction is fixed as front (inside) to rear (door); the truck overview mentions side doors only descriptively. No per-space loading face.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'side door', 'door', 'loading face', 'top loading', 'access', 'fillDirection', 'near door'.",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "These refer to the maximum dimensions allowed for the load of truck against the Empty Width and Empty Height, respectively. The Max Width and Height are available if the truck style is a Flatbed. Max Height is available if the truck style is an Open Top.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic1.html"
      },
      {
       "text": "Max Load Height & Width | Over-dimensional limits. | Used for Flatbed trailers and Open Top containers where cargo exceeds standard walls.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "Online and API V2 (vehicleType Dry | OpenTop | FlatRack; maxWidth/maxHeight). Limits are set per equipment.",
     "searched": "",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MixLoad | Finds optimal number of containers to fill all cargoes when each cargo has different sizes and quantities to be shipped.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "If cargo remains after all available containers have been filled, CubeMaster selects the next available empty containers based on priority and continues the process until all cargo is placed or there are no more empty containers available.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic4.html"
      }
     ],
     "recipe": "",
     "note": "All editions. Online plan quotas cap containers per shipment (5/10/20 by plan, per the first audit pass pricing note).",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If isMultiContainerTypesEnabled is set to false, the algorithm will use only the first container type specified in the request.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "You can add multiple container types to a single load — CubeMaster will select the most optimal combination.",
       "url": "https://cubemaster.net/Subscription/faq.html"
      }
     ],
     "recipe": "",
     "note": "Online, API V2, Windows ('Multiple Containers Selection by Algorithm Choice'). How types are combined depends on the Goal of Mix Load.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This value is only used when Rules.bestFitContainersSelectionType is BestfitDisabled.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "BestfitDisabled | Quantities and Sequences are limited | Fills empty containers sequentially according to their Priority/Sequence. This is the only mode that strictly complies with the specified 'Qty' limits and 'Seq' ordering of the containers.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Honoured only under the goal 'Quantities and Sequences are limited' (BestfitDisabled); all four best-fit goals ignore Qty and Seq.",
     "searched": "",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Lower numbers = Higher priority.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "The order in which containers are filled is determined by their priority value, with lower values being filled first.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic4.html"
      }
     ],
     "recipe": "",
     "note": "Per container priority/Seq; used only under 'Quantities and Sequences are limited'.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This option evaluates whether a less-filled container can be replaced with a smaller container without compromising the load.",
       "url": "https://cubemaster.net/Help/webhelp/pages/balancing.html"
      },
      {
       "text": "isBalanceReplacedWithSmallerSizes | boolean | If true, replaces with smaller sizes for balance.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Balancing can apply to all containers or only the last one.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "CubeMaster's optimizer will determine the best combination of containers to minimize cost or maximize utilization based on your cargo and rules.",
       "url": "https://cubemaster.net/Help/webhelp/pages/faq.html"
      },
      {
       "text": "Provides instant financial visibility to select the most economical vehicle combination.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "A per-container price input exists (Empty Price / price) and costs are reported, but none of the five documented Goal of Mix Load strategies minimises cost.",
     "searched": "",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If set to 80, the algorithm will not allow the total volume of the placed cargo to exceed 80% of the container's total volume.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "This refers to the maximum volume allowed for the load of truck which is presented by the percent of the Empty Volume of truck.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic1.html"
      }
     ],
     "recipe": "",
     "note": "All container types; Online, API V2, Windows, SDK (MaxCE). The best-fit selection thresholds (bestFitContainersSelectionMax*UtilThreshold) are separate and undescribed.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Containers with volume usage below a predetermined threshold can be canceled if the cargo has not yet been loaded, to avoid transporting partially filled containers.",
       "url": "https://cubemaster.net/Help/webhelp/pages/balancing.html"
      },
      {
       "text": "A container less than a certain condition is cancelled and all the cargoes in the container are kept unloaded.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/balancing.html"
      }
     ],
     "recipe": "",
     "note": "Balancing rule (isBalancePoorUtlizationUnloaded); cargo of a cancelled container is left unloaded. Online, API V2, Windows, SDK.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allows you to select from various types of pallets and slipsheets already defined in the Pallet database.",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing.html"
      },
      {
       "text": "A different pallet is assigned to a group for the palletizing rules.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/101070-june-2022.html"
      }
     ],
     "recipe": "",
     "note": "Passes on the per-cargo pallet choice. The preferred-container lists (emptyContainersFavorite, isGroupsToPrefContainers, swagger CargoGroup *NameFavorite) are not documented as binding.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Preferred containers refer to container types, not individual units. Moving cargo between loaded containers is manual (Windows Edit Containers / Magic), a workaround.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'favorite', 'preferred container', 'assign', 'container sequence', 'isGroupsToPrefContainers', 'AddPreloadContainer'.",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "New Size Load - Finds a new size of Trucks/Sea Containers/Pallets/Cartons/ULDs from an order of mixed items. Once the min and max sizes ranges are given to CubeMaster, a list of new sizes are found from the calculation which load all the items in the different ways.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/buttons-group.html"
      }
     ],
     "recipe": "",
     "note": "Windows edition only; not among the Online or API V2 load types.",
     "searched": "",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Each cargo item is treated as a rectangular shape with specific physical properties and loading constraints.",
       "url": "https://cubemaster.net/Help/webhelp/pages/cargo.html"
      },
      {
       "text": "qty | integer | Quantity of the cargo to ship. For pre-pack unitloads, represents number of unitloads. Required.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "All editions. Online plan quotas: 300/600/900 cargoes per shipment by plan (the first audit pass pricing note). API validation rejects a cargo whose width exceeds its length (error -2).",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "diameter | integer | Diameter for cylindrical cargo (rolls). Set to 0 for non-cylindrical.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Roll | Cylindrical cargo.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Online, API V2, Windows (cargo style Roll; Reel added in 10.10.6.3). Not in the SDK. How rolls are packed is not described.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "FormPyramidStack is a layer contour for boxes, not cylinder nesting. StyleEnum NestedCube and Reel appear only in the swagger/release notes with no description.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'nest', 'honeycomb', 'stagger', 'pyramid', 'roll', 'reel', 'cylinder', 'NestedCube'.",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The swagger AlgorithmTypeEnum value 'Interlocked' has no description; pallet 'interlock' patterns concern box layers.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'interlock' (only pallet patterns), 'L-shape', 'shape', 'nest', 'faceOpen', 'NestedCube'.",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Cargo faceOpen (NeitherSide | LengthSide | WidthSide) has no documented purpose. Box-in-box carton loads pack items into cartons used as containers, not into another cargo's free space.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'cavity', 'inside', 'open face', 'faceOpen', 'hollow', 'frame', 'under'.",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "All documented cargo is rectangular or roll. 'Custom non-standard container shapes' on the features page concerns equipment.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'CAD', 'mesh', 'irregular', 'shape', 'complex'.",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The 'Loose Item' feature (2018 PDF) breaks pallets into loose cartons; it is not bulk cargo.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'bulk', 'loose', 'amorphous', 'liquid', 'volume only'.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Negative bulge: If a container is compressed when it is packed, the result is a negative bulge.",
       "url": "https://cubemaster.net/Help/webhelp/pages/advanced.html"
      },
      {
       "text": "Currently CubeMaster takes the positive bulge.",
       "url": "https://cubemaster.net/Help/webhelp/pages/advanced.html"
      }
     ],
     "recipe": "",
     "note": "Bulge allowance exists per cargo (bulgeSize), but only expansion is applied; compression is not. Online and Windows help both state this.",
     "searched": "",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Number of pieces inside each cargo unit (e.g., smaller boxes in a shipping box). Used to calculate total pieces as qty * pieceInside.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "pieceInside is report arithmetic. orderPieces ('Number of pieces ordered') has no described breakdown. Case-to-pallet conversion by the palletizing rule uses one pallet configuration per cargo and is scored under pallet rows.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'pieceInside', 'orderPieces', 'SubPackQty', 'pack level', 'case', 'bundle', 'inner'.",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The #1 and #2 orientations are termed 'Basic orientations' as they position the cargo's height vertically to the container's bottom, aligning with the manufacturing position.",
       "url": "https://cubemaster.net/Help/webhelp/pages/orientations.html"
      },
      {
       "text": "For example, \"Orientations12\" allows the cargo to sit upright lengthwise (#1) and turned horizontally (#2).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo orientationsAllowed (OrientationsBasic). All editions.",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Values can combine numbers 1 through 6, representing all possible orthogonal rotations (e.g., \"Orientations123456\" opens all 6 permutations).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Orientation #1 only: The pallet is placed with its length along the vehicle's length.",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing1.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo. All editions.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Since the cargo has a rectangular shape, it can be stacked in six different orientations within a load.",
       "url": "https://cubemaster.net/Help/webhelp/pages/orientations.html"
      },
      {
       "text": "Values can combine numbers 1 through 6, representing all possible orthogonal rotations (e.g., \"Orientations123456\" opens all 6 permutations).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "OrientationsAll. All editions. Built pallet loads cannot be turned onto #3-#6 in the Magic editor.",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Any combination of integers 1 through 6 appended to Orientations (e.g. Orientations145 or Orientations123456) is valid.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "L × H × W Orientation #3 Turning",
       "url": "https://cubemaster.net/Help/webhelp/pages/orientations.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo.",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Any combination of integers 1 through 6 appended to Orientations (e.g. Orientations145 or Orientations123456) is valid.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "A number representing the loading orientations permitted.",
       "url": "https://cubemaster.net/Help/webhelp/pages/uploading-cargoes-from-excel-file.html"
      }
     ],
     "recipe": "",
     "note": "Each of the six orientations (#1-#6, both directions per axis listed separately) can be allowed on its own.",
     "searched": "",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Sets or returns the primary orientation among the permitted ones.",
       "url": "http://www.logensolutions.com/VMS/TechSupport/SDK_Help/pages/primaryorientationindex-property.html"
      },
      {
       "text": "Sets or returns the orientation to allow placing the SKU into the last space at near top of the door.",
       "url": "http://www.logensolutions.com/VMS/TechSupport/SDK_Help/pages/secondaryorientationindexatlastspace-property.html"
      }
     ],
     "recipe": "",
     "note": "SDK and Windows documented; API V2 has orientationPriority {used, orientationNumberPrimary, orientationNumberNearDoor} in the swagger only (guide types it as a string with no values).",
     "searched": "",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Boolean flag determining if the cargo can be placed in orientations 3 (side), 4 (side turned), 5 (end), or 6 (end turned) directly on the container floor or pallet deck.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "This forces the engine to always place the very bottom layer of refrigerators upright (1 or 2) on the floor, while permitting subsequent stacked units to be laid on their side (3 or 4).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo. Online, API V2, Windows; SDK bKeepBasicOrientationOnSimpleLoad for single loads.",
     "searched": "",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The maxLayersOnOrientation is a hard constraint. If the calculated number of layers exceeds this value, it will be excluded from the results.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "For instance, to load cargo in fewer than 3 layers on orientation #1 and 4 layers on orientation #2, set the Max Layer value for orientation #1 to 3 and orientation #2 to 4.",
       "url": "https://cubemaster.net/Help/webhelp/pages/orientations.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo. All editions (SDK LoadDir1MaxLayer-LoadDir6MaxLayer).",
     "searched": "",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The Magic editor offers only the six orthogonal directions.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'angle', 'tilt', 'lean', 'degree', 'rotate' (only 90-degree layer rotation and the six orthogonal orientations).",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Rolls have a diameter, but no source says whether orientationsAllowed applies to them or how a roll can stand or lie.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'roll', 'reel', 'diameter', 'upright', 'lying', 'orientation' together with roll.",
     "corrected": {
      "reason": "Industry use cases page sets drums to 'upright only'; cargo edit popup documents per-cargo orientation."
     }
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "floorStackSupportsOthers | boolean | If true, this cargo supports others on top in floor stacking.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Can other Cargo be Stacked on Top? Indicate whether other cargo can be stacked on top of this item. Select \"Yes\" if stacking is allowed, and \"No\" if it is not (e.g., for a delicate item like a paper mache lampshade).",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo, active only when the plan's stacking rule is FloorStack (or FloorStackAndHeavierBottomFirst). Stacking rules cover different cargoes only, so identical units also need Max Layers = 1. Also per built pallet (palletizing 'Supports Others').",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "'Bottom Only', which only allows cargo to be placed on the floor",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      },
      {
       "text": "Bottom Only: Any solutions are disregarded in which the cargo is not placed on the floor.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/basic.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo floorStackType, with stacking rule FloorStack. All editions; also per built pallet.",
     "searched": "",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "'No Bottom', which prohibits cargo from being placed on the floor",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      },
      {
       "text": "No Bottom: Any solutions are disregarded in which the cargo is placed on the floor.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/basic.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo floorStackType, with stacking rule FloorStack.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To restrict the stacking layers of the same cargo, use the Max Layer option within the cargo information.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      },
      {
       "text": "The maximum number of layers permitted when stacking cargo in each orientation is determined by the Max Layers value.",
       "url": "https://cubemaster.net/Help/webhelp/pages/orientations.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo and per orientation. Built pallets have maxLayersOnVehicle.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MaxLayersExtended A number to present whether the max layers of the cargo are extended on the other cargoes.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/importing-cargoes-form-excel-template-file.html"
      },
      {
       "text": "maxLayersAllowedOverDifferentCargoes | boolean | If true, allows stacking over different cargoes.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo flag. No container-wide tier cap is documented. The SDK lists SetItemCumulativeLayerLimitAt without a page.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "maxStackingHeight | object | Controls maximum stacking height dynamically using specific proportional rules.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "proportionalRateToSetMaxStackingHeight (number): The multiplier applied to the chosen algorithm's dimension to calculate the maximum allowable stacking height.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "API V2 only.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "maxSupportingWeight | integer | Maximum weight that can be safely placed on top of this cargo. This determines how many layers high the engine can safely stack other cargoes on top of this one.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "In order to activate this property, you should set True to the bUseSafeStacking of the Calculator class.",
       "url": "http://www.logensolutions.com/VMS/TechSupport/SDK_Help/pages/maxweightallowedonme-property.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo, all editions. Applies to different cargoes stacked on it. Whether the whole column or only the directly resting item counts is not stated. Also 'Max supporting weight of the pallets' in Online palletizing rules.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "maxSupportingWeight is a plain weight per cargo.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'pressure', 'per area', 'kg/m', 'psi', 'contact area', 'maxSupportingWeight'.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This rule determines the positioning of two different cargo items in relation to one another. Note that it doesn't apply to identical cargo items. To restrict the stacking layers of the same cargo, use the Max Layer option within the cargo information.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      },
      {
       "text": "This will determine the number of layers high CubeMaster can safely stack the different cargoes on this cargo.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      }
     ],
     "recipe": "",
     "note": "Like-item stacks are limited only by Max Layers.",
     "searched": "",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "HeavierBottomFirst | Cargo is only placed on heavier cargoes. Cargo will never be placed on a lighter cargo.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "If minWeightDifferencePercentageForStackingTwoCargoes is set to n, the engine will only allow stacking two different cargoes if their weights differ by at least n percent.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Different cargoes only; all editions.",
     "searched": "",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "HigherStackValueBottomFirst | Cargo is only allowed to be placed on top of others with a strictly greater Stack Value.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Cargo with higher stack values are placed below cargo with lower stack values.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      }
     ],
     "recipe": "",
     "note": "All editions. One stacking rule per plan.",
     "searched": "",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Yes/No indicate whether a cargo for the corresponding column can be placed on top of a cargo for the corresponding row.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      },
      {
       "text": "\"cargoBottom\": { \"type\": \"string\", \"nullable\": true }, \"cargoTop\": { \"type\": \"string\", \"nullable\": true }, \"isAllowed\": { \"type\": \"boolean\" }",
       "url": "https://api.cubemaster.net/swagger/v2/swagger.json"
      }
     ],
     "recipe": "",
     "note": "Windows (since 10.10.7.0, Excel/CSV import) and API V2 (Rules.stackingMatrix). The Online UI labels 'Follow the Stack Matrix' Desktop Only.",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "AllowedTopBottomFootPrintSame | Cargo is only allowed to be placed on top of others with the exact same footprint (Length x Width).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "When activated, this rule within CubeMaster prevents the placement of cargo on top of other cargo that has a smaller footprint.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      }
     ],
     "recipe": "",
     "note": "Plan-level; different cargoes only. isBottomOrientationRespected is marked Read-only in the API guide.",
     "searched": "",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "minSupportRate | number | Minimum support rate for safe stacking. Specifies what percentage of a cargo's base must be physically supported by the items beneath it.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "For instance, if the Min Support Rate is set at 51%, it signifies that at least 51% of the top cargo's base area must rest directly on the surface of the bottom cargo.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      }
     ],
     "recipe": "",
     "note": "Per plan only (isSafeStackingUsed + minSupportRate), not per item. All editions.",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If maxDepthToSupportForSafeStacking is set to n, the engine will consider the bottom n mm of a cargo for support calculations.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Max supporting depth: Sets the depth from the surface of bottom area which supports the top cargo.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/stacking.html"
      }
     ],
     "recipe": "",
     "note": "Per plan, with safe stacking. Online, API V2, Windows.",
     "searched": "",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [],
     "recipe": "",
     "note": "The cargo popup summary lists 'Nesting' and the swagger has StyleEnum NestedCube and FaceOpenEnum, with no description of any engine behaviour.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'nest', 'NestedCube', 'faceOpen', 'open face', 'top shape', 'increment', 'Nesting' (cargo popup summary).",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If this is ON, the top of the partial unitload is kept even and flat which was cut by the max weight, volume %, price and cargoes on a pallet.",
       "url": "https://cubemaster.net/Help/webhelp/pages/unitload.html"
      },
      {
       "text": "The remaining 15 pieces of cargo can then be placed onto a mixed pallet load or the vehicle floor, depending on the settings of the other two parameters",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo (palletizing.flatPalletTop, unitloadTopFlat). Also 'Allow unit loads less than full layers' off gives complete unit loads only.",
     "searched": "",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "isSpreadIdenticalCargoAllowed | boolean | Same cargoes allowed to be separated. When this rule is activated, CubeMaster will divide the identical cargoes in different spaces for higher space utilization.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "This rule ensures that identical cargoes remain together in the same containers or pallets when they are assigned to the same area. It only applies when the \"Same cargoes allowed to be separated\" rule is deactivated.",
       "url": "https://cubemaster.net/Help/webhelp/pages/advanced1.html"
      }
     ],
     "recipe": "",
     "note": "Plan level; off keeps like items together, plus an option to keep them in one container. Also 'Same Cargoes Placed in the Same Side' (Read-only in API). Online, API V2, Windows, SDK (bSplitIdenticalItem).",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "isGroupUsed | boolean | If true, respects `groupName` for keeping items together.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Cargoes within the same group will be kept together in a container, while different groups will be separated.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      }
     ],
     "recipe": "",
     "note": "All editions.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Otherwise, the same group is not placed over two different containers and are kept in either container.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/grouping.html"
      },
      {
       "text": "isSameGroupAllowedInDifferentContainers | boolean | If true, allows splitting groups across containers.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Windows and API V2. What happens to a group too large for one container is not stated.",
     "searched": "",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Groups can be kept in one container, but no source says an unfitting group is left out whole. Sequences are documented as splittable.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'all or nothing', 'complete group', 'whole order', 'partial', 'group' with 'unloaded', 'isSameGroupAllowedInDifferentContainers'.",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cargoes within the same group will be kept together in a container, while different groups will be separated. The loading order of the groups will be automatically determined to maximize space utilization within the containers.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      },
      {
       "text": "Cargoes in identical group will be placed together and different groups will separate in a container.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/basic.html"
      }
     ],
     "recipe": "",
     "note": "All editions (isGroupUsed).",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "groupsStackingRule | string | Vertical placement constraints resolving separate cargo groups. Unlike individual cargo rules, this has limited specific values: AlwaysNotAllowed (101) or BestFit (100).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "API V2 (plan level, values AlwaysNotAllowed | BestFit). Not described in the Online or Windows help.",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the Load Type is 'Multiple Set Load', activating this rule will allow the CubeMaster to place cargoes from different groups into the same container or pallet.",
       "url": "https://cubemaster.net/Help/webhelp/pages/grouping.html"
      },
      {
       "text": "isDifferentGroupAllowedOnMultiSetLoad | boolean | If true, allows different groups in multi-set loads.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Online, API V2, Windows. Hazmat segregation is a marketing claim only.",
     "searched": "",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Spacing' appears only in the cargo popup summary, with no field or definition.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'distance', 'separation', 'apart', 'not above', 'segregat', 'spacing'.",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Handling Tags (Fragile, HazMat) | Categorical Flags | Places fragile items on top layers and segregates hazardous material SKUs.",
       "url": "https://cubemaster.net/Subscription/features.html"
      },
      {
       "text": "Additional properties: Stackability (max stack weight, items on top), Nesting, Fragile flag, Hazardous classification, and custom fields.",
       "url": "https://cubemaster.net/Help/webhelp/pages/cargo-edit-popup.html"
      }
     ],
     "recipe": "",
     "note": "No hazard field in API V2, the detailed cargo pages, Windows or SDK. The documented hazmat use case uses groups, not built-in class rules.",
     "searched": "",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When this rule is active, CubeMaster fills the available space in a container or pallet, ensuring the total price doesn't exceed the maximum price for the empty container/pallet.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic4.html"
      },
      {
       "text": "If this is more than 0, CubeMaster will make the total number of cargoes would not exceed this value in the load of each truck.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic1.html"
      }
     ],
     "recipe": "",
     "note": "Per container (Max Price, Max Cargoes) in Online/Windows; API V2 has per-container maxPrice and a plan-level maxFillQtyPerContainer.",
     "searched": "",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This field restricts the number of different SKUs (Stock Keeping Units) or cargo types that can be loaded into a single container.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "If set to 1, only one type of cargo is allowed in the container.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per container (maxCargoTypes) and per plan (Online Advanced 'Max Different Cargoes per Container'; API maxCargoTypesPerContainer marked Read-only).",
     "searched": "",
     "corrected": null
    },
    "between-ratio": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "setRatio | integer | Ratio for set loads (e.g., 1:2:1 for components). Used in \"Set Load\" or \"Multiple Set Load\" types to maintain proportions.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "CubeMaster will then calculate the quantity of each cargo type while maintaining the set ratio and assign it to the Qty field of the respective cargo.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      }
     ],
     "recipe": "",
     "note": "Set Load (one container) and Multiple Set Load (several). Behaviour when a ratio cannot be met is not documented.",
     "searched": "",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "fixedCargoCountOnPallet fixes cases per pallet (pallet pattern row), not multiples per vehicle.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'multiple of', 'batch', 'lot', 'fixedCargoCountOnPallet', 'round'.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "outdated-source",
      "restricted-scope",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Automatic calculation of the additional cargo quantities fit into the unused spaces of a loaded container",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/using-edit-spaces-view.html"
      },
      {
       "text": "Full button: fills the unused space with the [additional quantity].",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/using-edit-spaces-view.html"
      }
     ],
     "recipe": "",
     "note": "Windows edition (Edit Spaces). Re-running the whole load discards pattern-editor changes. No lock field in API V2 or the current Online help.",
     "searched": "",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Positions appear only in outputs (placements, spaces).",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'position', 'pos', 'coordinate', 'fixed', 'preload', 'AddPreloadContainer' (SDK function name only, no page), request schema of Cargo.",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Advanced loading rules: Grouping (keep items together), Sequencing (load/unload order), Spacing, and Preferred Position within the container.",
       "url": "https://cubemaster.net/Help/webhelp/pages/cargo-edit-popup.html"
      },
      {
       "text": "zones | null/array | Zoning information (null if not used). Array of zone objects with position, size, maxWeight.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "The detailed Cargo Advanced page documents only Bulge, and no schema field ties cargo to a zone or position.",
     "searched": "",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Max Volume % reserves volume but not a located region.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'exclude', 'keep out', 'aisle', 'door' region, 'zone', 'reserved'.",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "FrontToRear | Builds a wall stacking from the inside to the outside (door side of truck/trailer).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "BottomToTop | Places the load on the ground to spread on the floor. Recommended for pallets to stack upwards in a stable spiral shape.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Plan level. Width spread is in Online/Windows, not in the API enum.",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Bottom to top: Loads are placed on the ground and spread out as much as possible.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic4.html"
      },
      {
       "text": "Bottom Spread - Spread the load on the bottom of the less filled container.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/efficient-and-flexible-algorithm.html"
      }
     ],
     "recipe": "",
     "note": "Plan scope; not per item.",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It is max reachable size of loading devices or humans to place items into a filled container.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "For example, a value of 1000 mm will ensure that each item placed is kept under 1 meter, and the same items will be repeated until the container or pallet is filled.",
       "url": "https://cubemaster.net/Help/webhelp/pages/advanced1.html"
      }
     ],
     "recipe": "",
     "note": "Plan level. Online, API V2, Windows, 2018 overview ('Limits the placement in vehicle for easy loading and unloading').",
     "searched": "",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The bulge factor allows you to shift the amount of space a box takes up without changing its reported size.",
       "url": "https://cubemaster.net/Help/webhelp/pages/advanced.html"
      },
      {
       "text": "bulgeSize | object | Bulge dimensions (length, width, height) for expansion/compression.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "No plan-wide gap setting; 'Spacing' is listed only in the cargo popup summary.",
     "searched": "",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Min support rate covers vertical support only.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'shift', 'backed', 'against the wall', 'lateral', 'stability', 'secure'.",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "isWeightLimited | boolean | Enforce container weight limits. When true, the engine fills available space as much as possible without the total weight exceeding the `maxWeight` of the empty container (including the empty container tare weight).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "The Max Weight includes the Empty Weight of the truck.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic1.html"
      }
     ],
     "recipe": "",
     "note": "Per container including pallets, cartons and ULDs; applied when the 'Load weight limited' rule is on. Windows 10.10.8.5 fixed the weight limit not working for pallet loads.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "enforcement-unclear",
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "zones | null/array | Zoning information (null if not used). Array of zone objects with position, size, maxWeight.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "API V2 only; zones are the only sub-unit with a weight field (swagger also gives maxPrice and maxVolUtilization per zone).",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "zones | null/array | Zoning information (null if not used). Array of zone objects with position, size, maxWeight.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "1. Define zones in the container's zones array, each spanning one lengthwise section, with position and size (API guide, EmptyContainer: zones; https://cubemaster.net/Subscription/Guides/API/api_guide.html). 2. Give each zone its own maxWeight (same field; https://cubemaster.net/Subscription/Guides/API/api_guide.html).",
     "note": "API V2 only.",
     "searched": "",
     "corrected": {
      "reason": "Auditor-built recipe on a one-line zone field whose enforcement is never described."
     }
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'per metre', 'per foot', 'linear', 'density', 'kg/m', 'weight distribution'.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "Advanced space-filling algorithms automatically calculate optimal 3D cargo arrangements, maximizing volume and balancing axle weight limits.",
       "url": "https://cubemaster.net/Subscription/features.html"
      },
      {
       "text": "Internal dimensions, max weight, door opening, Axle Weight limits (front/rear/tandem), and trailer type selection.",
       "url": "https://cubemaster.net/Help/webhelp/pages/container-edit-popup.html"
      }
     ],
     "recipe": "",
     "note": "The axle report is documented (see output-axle-loads), but no field, unit or rule for axle limits exists in API V2, the swagger, SDK or the detailed truck page.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Details the weight resting on the steer, drive, and trailer axles.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-axle-weight.html"
      },
      {
       "text": "Internal dimensions, max weight, door opening, Axle Weight limits (front/rear/tandem), and trailer type selection.",
       "url": "https://cubemaster.net/Help/webhelp/pages/container-edit-popup.html"
      }
     ],
     "recipe": "",
     "note": "Online reports only.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Computes net cargo weight, tare weight of containers/pallets, and total gross weight.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "A single tare per container exists; no split across axles is documented.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'tare' with 'axle', 'empty axle', 'axle weight', 'kingpin'.",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Internal bed dimensions, kingpin-to-axle distances, maximum gross weight, drop deck dimensions, carrier info.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "The axle report shows steer and drive axles, which implies the trailer load reaches the tractor, but no source says so or documents the tractor model.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'kingpin', 'fifth wheel', 'tractor', 'steer', 'drive', 'coupling', 'drawbar'.",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Ensures trailer balance, driving safety, and compliance with DOT axle load regulations.",
       "url": "https://cubemaster.net/Subscription/features.html"
      },
      {
       "text": "Compares the calculated weight against the specified legal limits for the selected vehicle profile.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-axle-weight.html"
      }
     ],
     "recipe": "",
     "note": "Legal limits come from the vehicle profile; no region setting. The truck Basic page only explains that laws vary between states.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'DOT', 'jurisdiction', 'state', 'country', 'bridge formula', 'permit', 'legal'.",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "COG is reported, not constrained. Front/rear balancing is claimed (see weight-balance-soft).",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'center of gravity', 'cog', 'balance', 'front/rear', 'isBalanceAlignLoadCenter', 'maxWeightDifference'.",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Distributes weight evenly along left/right sides and front/rear axles to prevent uneven trailer tilt.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "No lateral COG parameter in any source. The API tutorial's balanceConfiguration {maxWeightDifference} exists in neither the Rules table nor the swagger.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "COG height is reported (cog.height) but not limited.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'vertical', 'height of center', 'cog height', 'top-heavy'.",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Distributes weight evenly along left/right sides and front/rear axles to prevent uneven trailer tilt.",
       "url": "https://cubemaster.net/Subscription/features.html"
      },
      {
       "text": "Balancing — Weight distribution rules to balance loads for safe transport and axle weight compliance.",
       "url": "https://cubemaster.net/Help/webhelp/pages/faq.html"
      }
     ],
     "recipe": "",
     "note": "The swagger flag isBalanceAlignLoadCenter has no description; the documented Balancing rule only replaces, cancels or tops up containers.",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'center of gravity' per cargo, 'offset', 'cog' in Cargo schema.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This means that all cargoes with a sequence of \"1\" will generally be placed before (and therefore in the front of the vehicle) cargoes with a higher sequence value.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      },
      {
       "text": "isGroupSequenceUsed | boolean | If true, respects the sequence of the groups. The smaller sequence number will be loaded first.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "All editions. Group sequence is footnoted as not available in the Online UI but is in API V2.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Required items must be loaded (unfitted items appear in Exceptions). Optional items fill remaining empty space after Required items are loaded.",
       "url": "https://cubemaster.net/Subscription/faq.html"
      },
      {
       "text": "If there's not enough room to load all cargoes with a particular sequence value, CubeMaster will load as much of the sequence as possible, leaving the remaining cargoes.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      }
     ],
     "recipe": "",
     "note": "All editions.",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "isOptional | boolean | If true, cargo is optional for filling space in balancing.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "GroupSequenceRespectedAndDisplacementMinimized | Respects group sequence while minimizing displacement.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Optional items can respect cargo or group sequence (optionalCargoesFillingAction). Whether surplus optional items open another container is not stated. Requires the Balancing rule.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "By defining stops as groups in CubeMaster, you can control how cargo is loaded and segregated within containers.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      },
      {
       "text": "Basic → Sequencing — Enable \"Small sequences placed earlier than large ones\". Assign Sequence numbers so Store-5 (Seq 1) loads first (back) and Store-1 (Seq 5) loads last (near doors) for LIFO unloading.",
       "url": "https://cubemaster.net/Help/webhelp/pages/industry-use-cases.html"
      }
     ],
     "recipe": "1. Give each stop's cargo one groupName and turn on 'Same groups placed together' (https://cubemaster.net/Help/webhelp/pages/basic3.html, 'Multi-Stop Routing with Groups'). 2. Give the last stop the lowest Sequence and turn on 'Small sequences placed earlier than large ones'; Seq 1 loads at the back, the highest sequence nearest the doors (https://cubemaster.net/Help/webhelp/pages/industry-use-cases.html; https://cubemaster.net/Help/webhelp/pages/basic3.html). 3. Optionally order the groups with isGroupSequenceUsed (https://cubemaster.net/Subscription/Guides/API/api_guide.html) and check with the Routing Sequence report (https://cubemaster.net/Help/webhelp/pages/report-routing-sequence.html).",
     "note": "No dedicated stop attribute; the vendor documents groups-as-stops plus sequence as the method.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enforces Last-In-First-Out unloading constraints across multi-destination truck deliveries, reducing dock handling time.",
       "url": "https://cubemaster.net/Subscription/features.html"
      },
      {
       "text": "Prevents mixing items from different drop-offs and enforces LIFO (Last-In-First-Out) unloading sequence.",
       "url": "https://cubemaster.net/Subscription/features.html"
      }
     ],
     "recipe": "",
     "note": "The documented mechanism is sequence ordering, which the help says can be split; no source states that later stops never block earlier ones in front or above.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'overlap', 'mix', 'look ahead', 'sequence' with distance.",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Shipping.where from/to in the swagger is shipment-level contact data.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'pickup', 'pick-up', 'origin', 'collect', 'load at stop'.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MultipleSetLoad | Calculates containers to fill a shipment utilizing multiple destinations and stops.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Multiple Set Load - Finds optimal number of vehicles to load all orders of different size cartons with regarding multiple destinations and stops.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/various-load-types.html"
      }
     ],
     "recipe": "",
     "note": "Multiple Set Load load type (Online, API V2, Windows, SDK).",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If there's not enough room to load all cargoes with a particular sequence value, CubeMaster will load as much of the sequence as possible, leaving the remaining cargoes. In other words, sequences can be split up.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      }
     ],
     "recipe": "",
     "note": "Stated for sequences; no whole-stop option is documented for groups either.",
     "searched": "",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When Multiple Time Windows is selected as the Load Type, cargoes are grouped by their storage date. The engine loads each group as a separate time window.",
       "url": "https://cubemaster.net/Help/webhelp/pages/pulling.html"
      },
      {
       "text": "With Pulling: Due-date cargo fills the truck first. The remaining space is then filled with newer inventory, controlled by the Pulling rules (strategy, day limits, and max fill % per day).",
       "url": "https://cubemaster.net/Help/webhelp/pages/pulling.html"
      }
     ],
     "recipe": "",
     "note": "CubeMaster Online UI only; not in the API V2 schema.",
     "searched": "",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The loading space is calculated as Length × Width × (Max Height – Height). The Max Height value includes the pallet's own height.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic2.html"
      },
      {
       "text": "palletThickness | integer | Pallet thickness in cm (e.g., 0).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "All editions.",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "UnitLoad | Calculates the full capacities of containers/pallets when filled with one cargo; used to calculate the Hi/Ti of a pallet configuration.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Alternative Patterns for Unit Pallet Load – Allows you to choose the correct pattern for a different load requirement.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/efficient-and-flexible-algorithm.html"
      }
     ],
     "recipe": "",
     "note": "All editions. The number of alternative patterns offered is not stated.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Pattern4Blocks | Arranges cargoes in a 4-block spiral (pinwheel) pattern towards the center.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "It defines the number of layers to be rotated on a pallet load.",
       "url": "https://cubemaster.net/Help/webhelp/pages/unitload.html"
      }
     ],
     "recipe": "",
     "note": "Per cargo. Saved pallet solutions can be reused as cargo.",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "All remaining quantities are mixed into a new pallet (specified by the Pallet for mix load setting).",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing1.html"
      },
      {
       "text": "Advanced Mixed Pallet Con­figuration – For detail configuration of the mixed pallet load. Choose between the block or individual placement, volume or area utilization ­first and layer or column stacking.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/load-rules.html"
      }
     ],
     "recipe": "",
     "note": "Also a Mix Load onto pallets as containers (pallet load). All editions.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It represents the distance cargoes can be placed over the edge of the pallet along the length and width dimensions.",
       "url": "https://cubemaster.net/Help/webhelp/pages/extended.html"
      },
      {
       "text": "palletOverhangLength | integer | Overhang length in cm (e.g., 0).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per pallet (length and width) and per cargo unit load. Online, API V2, Windows, SDK single loads.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It represents the distance cargoes can be placed under the edge of the pallet along the length and width dimensions.",
       "url": "https://cubemaster.net/Help/webhelp/pages/extended.html"
      },
      {
       "text": "palletUnderhang | boolean | Whether pallet underhang is allowed (e.g., false).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Slipsheet is a pallet base type; SDK top panels, banding and wrapping are added to a finished pallet load, with no thickness-every-N-layers rule.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'slip sheet', 'interlayer', 'tier sheet', 'layer pad', 'ApplyTopPanel', 'banding'.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When unchecked, only cargo belonging to the same group name will be placed on a single mixed pallet.",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing1.html"
      },
      {
       "text": "palletizing.isDifferentGroupsAllowedInSamePallet | boolean | If true, allows different groups on a pallet.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Online, API V2, Windows (since 10.10.7.0).",
     "searched": "",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The engine will first build optimal pallets, then load those structured pallets into the target truck instead of loose boxes.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Unit loads are created based on the palletizing rule of each cargo. All remaining quantities are mixed into a new pallet (specified by the Pallet for mix load setting). All the unit load and mix load pallets are placed into vehicles.",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing1.html"
      }
     ],
     "recipe": "",
     "note": "Online, API V2, Windows Enterprise. Windows states palletizing is active for sea container and truck loads only.",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A complete unitload created by the Pallet Load. It can only be created by saving a solution of the pallet load build via the button Save as Cargo at the Analysis View.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic3.html"
      },
      {
       "text": "This function enables to bring Cargoes from the saved Unit Load file and to build the 2-stage load for example the pallet loaded with cartons can be packed into the container or truck.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/add-unitloads-as-cargoes.html"
      }
     ],
     "recipe": "",
     "note": "Online (Save as Cargo, pre-pack unitload style) and Windows (Save as Unit Load file). Size and weight are filled automatically.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To build 2-stage load, you should save the loaded container as the Unit Load file first.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/save-a-solution-as-unit-load-file.html"
      }
     ],
     "recipe": "",
     "note": "Two stages are documented. Windows 'Save as Unit Load' applies to 'the loaded container', which might allow a carton result to feed a pallet load, but no source shows three levels.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: '3-stage', 'three', 'carton' with 'pallet' and 'truck', 'Save as Unit Load', 'Save as Cargo', 'pre-pack'.",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "palletizing.remainQtyToMixPallet | boolean | If true, remaining qty placed on mixed pallets.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "palletizing.remainQtyToVehicle | boolean | If true, remaining qty placed directly on vehicle floor.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Orientation #1 + #2: The pallet can be placed in both orientations (lengthwise and widthwise) relative to the vehicle.",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing1.html"
      },
      {
       "text": "When checked, the completed pallets are allowed to support other pallets or cargo on top of them. When unchecked, nothing may be placed on top of these pallets.",
       "url": "https://cubemaster.net/Help/webhelp/pages/palletizing1.html"
      }
     ],
     "recipe": "",
     "note": "No top-fill threshold for stacking pallets. Online, API V2 (swagger SingleCargoPalletizingRules), Windows.",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "palletizing.palletizingAlgorithm | string | Algorithm to use for building pallets - \"UnitloadsDevelopedInAdvance\", \"UnitloadsDevelopedDinamically\".",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Only 'developed in advance' is described.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'dynamic', 'Dinamically', 'height' with 'vehicle', 'top tier', 'palletizingAlgorithm'.",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This option directs CubeMaster to prioritize maximum capacity utilization. The program identifies the container with the highest load volume as the solution and disregards the remaining containers.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic4.html"
      },
      {
       "text": "isWeightLimited | boolean | Enforce container weight limits. When true, the engine fills available space as much as possible without the total weight exceeding the `maxWeight` of the empty container (including the empty container tare weight).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "With limited container quantities, remaining cargo is left unloaded and reported in Exceptions.",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "BestfitMaxWeightUtilFirst | Weight utilization maximized | Picks the filled container with the highest weight utilization (Total Cargo Weight / Max Weight limit) as the solution. Container Qty and Seq are ignored.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Goal of Mix Load, Mix Load only. Ignores container quantity and sequence.",
     "searched": "",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "outdated-source"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Purpose: To distribute the weight and volume of items evenly across all containers, preventing any single container from becoming overloaded or significantly underutilized.",
       "url": "https://cubemaster.net/Help/webhelp/pages/balancing.html"
      },
      {
       "text": "It allows the user for example to equally divide the boxes among the available containers.",
       "url": "https://cubemaster.net/Download/CubeMaster_Online_Overview.pdf (p. 58)"
      }
     ],
     "recipe": "",
     "note": "Online, API V2, Windows (Balancing rule).",
     "searched": "",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "UnitLoad | Calculates the full capacities of containers/pallets when filled with one cargo; used to calculate the Hi/Ti of a pallet configuration.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "SetLoad | Calculates the number of complete products to maximize space utilization when the product consists of multiple cargoes kept in a proportional ratio.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Optimization algorithm has 5 levels (1–5) balancing load time and quality. Level 1 is the fastest but least efficient, while Level 4 is the slowest but most efficient.",
       "url": "https://cubemaster.net/Help/webhelp/pages/basic4.html"
      },
      {
       "text": "maxRunTimeSeconds | integer | Max runtime in seconds for calculation.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Level 5 is documented as unsuitable for small cargo. The SDK says its time limit is 'Not available at this time'. Reproducibility is not stated.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Alternative Solutions for Mixed Pallet Load – Makes different pallet loads for the same shipments.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/efficient-and-flexible-algorithm.html"
      },
      {
       "text": "a list of new sizes are found from the calculation which load all the items in the different ways.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/buttons-group.html"
      }
     ],
     "recipe": "",
     "note": "Windows edition only. No alternatives in API V2 or the Online help.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "maxStackingHeight | object | Controls maximum stacking height dynamically using specific proportional rules.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "If minWeightDifferencePercentageForStackingTwoCargoes is set to n, the engine will only allow stacking two different cargoes if their weights differ by at least n percent.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "API V2.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A string to describe the cargo (max. 50 characters for each property). Just for displaying in a report.",
       "url": "https://cubemaster.net/Help/webhelp/pages/extended1.html"
      },
      {
       "text": "property1 to property10 | string | Custom properties for additional metadata (max 50 characters each). For display in reports.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Properties 1-10 are display only. The SDK's ItemCompareCondition can use them to decide which SKU lines count as identical, which is not a planning rule. Free-text groupName, alias and stackCode drive built-in rules (scored elsewhere).",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "AllowedTopBottmStackValueSame | Cargo is only allowed to be placed on top of others with the exact same Stack Value.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "A Stack Code defines the stacking relations among different cargoes. The code establishes parameters that a class of cargoes would use.",
       "url": "https://cubemaster.net/Help/webhelp/pages/stacking.html"
      }
     ],
     "recipe": "",
     "note": "Stack codes and the matrix are 'Desktop Only' in the Online UI; API V2 exposes FollowStackMatrixByStackCodes. No per-orientation exceptions.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Group-level mixing on/off (Multiple Set Load; swagger CargoGroup.isMixedWithOthers) exists, but no class-to-class matrix. Cargo.sharingCode appears in the swagger with no description.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'compatib', 'matrix', 'mix', 'segregat', 'isMixedWithOthers', 'sharingCode'.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "\"maxVolumePerContainer\": { \"type\": \"number\", \"format\": \"double\" }, \"maxWeightPerContainer\": { \"type\": \"number\", \"format\": \"double\" }",
       "url": "https://api.cubemaster.net/swagger/v2/swagger.json"
      }
     ],
     "recipe": "",
     "note": "Partial form only: swagger CargoGroup has per-group max weight and volume per container, with no description. Price and piece caps are fixed attributes.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'sum', 'total', 'max' per container fields, CargoGroup, property1-10.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The Rules object is one per shipment. Containers carry their own limits (max weight, volume %, price, cargo count, distinct cargo types), which are equipment data, not rule profiles.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'rules' per container, 'profile', 'per container', 'Rules' object location in Shipment.",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "FloorStackAndHeavierBottomFirst | Composite logic combining FloorStack preferences with weight distribution requirements.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "AllowedTopBottomFootPrintSameHeavierBottomFirst | Composite logic requiring matching footprints while enforcing heavier items at the bottom.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Arbitrary combinations (e.g. stack matrix plus footprint) are not possible.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "One Goal of Mix Load per plan. The features page lists 'Default optimization goals (Maximize Volume, Balance Weight, Minimize Cost)' as a single default choice.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'goal', 'objective', 'weight' + 'priority', 'tolerance', 'bestFitContainersSelectionType'.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The SDK is a calculation library with properties and methods; every SDK object's Events page reads 'None'.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'script', 'plug-in', 'callback', 'custom rule', 'event', SDK Events pages.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Constraints are fixed as hard (max layers is stated as hard) or as preferences (orientation priority); no rule offers the choice.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'hard', 'soft', 'preference', 'try', 'strict'.",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Placements originate from the back-left-floor corner (0,0,0).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "spaces[].placements[].fillDirection | integer | Orientation used (e.g., 2 which means the cargo was placed in direction #2).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Origin back-left-floor; length = X (depth), width = Y, height = Z. Online Placements report, Windows, SDK.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Displays individual cargo items or blocks of items as they are added to the container from front to back, or bottom to top.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-loading-map.html"
      },
      {
       "text": "Accompanies each visual step with clear textual instructions (e.g., \"Load 5 boxes of Item A against the back wall\").",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-loading-map.html"
      }
     ],
     "recipe": "",
     "note": "Online Loading Map report; API reportLinks.loadingInstruction; Windows loading guide.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "manifest | array | Summary per cargo type loaded, similar to the Cargoes section in the Report View, showing loaded quantities and utilizations.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "loadSummary.floorUtilization | number | Percentage of floor space utilized (e.g., 84.11).",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Per container: counts, volume %, weight %, floor %, price %, dim weight; pallet loads report cargoesPerLayer and layersPerUnitload (swagger ContainerLoadSummary).",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "loadSize | object | Dimensions of the loaded cargo footprint {length, width, height}.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "API V2; the sample response shows loadSize.length 554.68 in a 630-unit trailer.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Exceptions report lists all cargo items that were not loaded into any container during the optimization process.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-exceptions.html"
      },
      {
       "text": "loadSummary.cargoesLeft | integer | Cargo units not loaded.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      }
     ],
     "recipe": "",
     "note": "Online Exceptions report and List View; API gives counts (cargoesLeft, piecesLeft) per shipment.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Crucially, it provides the reason for each exception, such as:",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-exceptions.html"
      },
      {
       "text": "Too Large: The item's dimensions exceed the container's interior dimensions or door size. Weight Exceeded: Adding the item would surpass the container's maximum weight limit. No Space Left: The container reached its volume capacity before the item could be loaded. Constraint Violation: The item conflicts with stacking rules, orientation limits, or priority settings.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-exceptions.html"
      }
     ],
     "recipe": "",
     "note": "Online Exceptions report only; the API V2 response has counts but no reasons.",
     "searched": "",
     "corrected": null
    },
    "output-cog": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "cog | object | Center of gravity {length, width, height}, used for balance checks.",
       "url": "https://cubemaster.net/Subscription/Guides/API/api_guide.html"
      },
      {
       "text": "Shows the precise 3D center of gravity for the loaded cargo.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-axle-weight.html"
      }
     ],
     "recipe": "",
     "note": "Per filled container, numeric in length, width and height. Online, API V2, Windows.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Details the weight resting on the steer, drive, and trailer axles.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-axle-weight.html"
      },
      {
       "text": "Compares the calculated weight against the specified legal limits for the selected vehicle profile.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-axle-weight.html"
      }
     ],
     "recipe": "",
     "note": "Online Axle Weight Compliance report; Windows properties preview. API V2 exposes only a weight diagram image, no axle numbers.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Analyzes lateral and longitudinal weight distribution along trailer/container axles.",
       "url": "https://cubemaster.net/Subscription/features.html"
      },
      {
       "text": "3D Weight Distribution Chart - With axle weight and center of gravity.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/multiple-reports-and-printouts.html"
      }
     ],
     "recipe": "",
     "note": "A weight distribution chart (Windows) and a weight diagram image (API path3DDiagramWeight) exist, but no source describes a distribution along the length.",
     "searched": "",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Returns the gross weight (load weight + container weight) of the container.",
       "url": "http://www.logensolutions.com/VMS/TechSupport/SDK_Help/pages/loadedweight-property.html"
      },
      {
       "text": "Returns the total weight (load weight + empty weight of the container) of the filled container.",
       "url": "http://cubemaster.net/subscription/webservices/Help/pages/grossweight-property.html"
      }
     ],
     "recipe": "",
     "note": "SDK (LoadedWeight) and legacy web service (GrossWeight). API V2 has weightTotal without a description; the Packing List report gives gross and net weights.",
     "searched": "",
     "corrected": null
    },
    "output-per-stop": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "A list of stops in order. The specific cargo assigned to each stop.",
       "url": "https://cubemaster.net/Help/webhelp/pages/report-routing-sequence.html"
      },
      {
       "text": "\"cargoQty\": {\"type\": \"integer\", \"format\": \"int64\"}, \"bytesImage3D\": {\"type\": \"string\", \"nullable\": true}",
       "url": "https://api.cubemaster.net/swagger/v2/swagger.json"
      }
     ],
     "recipe": "",
     "note": "Online reports; API cargoGroups ('Grouped cargoes if grouping rules were applied').",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The Magic editor marks cargo moved outside the container with an X, and Edit Containers refuses moves above the available quantity; no rule validation of an edited plan. The API validation errors concern inputs.",
     "searched": "Searched 2026-09-30, all saved locally and grepped: API V2 guide (full text) and swagger.json (all 76 schemas/enums); CubeMaster Online help (all 102 pages from webhelpcontents.html); CubeMaster for Windows help (197 pages); SDK reference (274 pages); legacy Calculation Web Service help (187 pages); Overview PDF 2018 (all 62 pages, text); features.html; faq.html. Terms: 'validat', 'violation', 'check', 'warning', 'Magic' editor, 'Edit Containers', 'error message'.",
     "corrected": null
    },
    "output-voids": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Empty Space tab provides a comprehensive list of all remaining, unoccupied spaces inside the selected container.",
       "url": "https://cubemaster.net/Help/webhelp/pages/analysis-empty-space.html"
      },
      {
       "text": "When the bFillAirbagOnContainer property is set to TRUE, the optimization fills containers with air-bags after filling inside the containers with single SKU type completely.",
       "url": "http://www.logensolutions.com/VMS/TechSupport/SDK_Help/pages/bfillairbagoncontainer-property.html"
      }
     ],
     "recipe": "",
     "note": "No minimum void size setting.",
     "searched": "",
     "corrected": null
    },
    "output-cost": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Costing Calculations - Once the price of an empty container was provided, the cost of individual cargoes in the filled container is analyzed and shows the total and percentage in the well formatted table.",
       "url": "https://www.logensolutions.com/VMS/TechSupport/CubeMaster_Help/pages/load-rules.html"
      },
      {
       "text": "By utilizing the price per container or pallet, as well as activating the price per cargo, the rule can calculate the individual cargo price for each piece within those containers or pallets.",
       "url": "https://cubemaster.net/Help/webhelp/pages/advanced1.html"
      }
     ],
     "recipe": "",
     "note": "Online, Windows; API isCargoCostComputedFromShipCost (Read-only).",
     "searched": "",
     "corrected": null
    }
   }
  },
  {
   "id": "packvol",
   "name": "packVol",
   "vendor": "packVol",
   "url": "https://www.packvol.com/",
   "auditedOn": "2026-09-30",
   "caveat": "",
   "scope": "packVol 4.1.4 (released 28 Jan 2026, current).",
   "sources": [
    {
     "title": "packVol - User Guide, Version 4.1.4",
     "url": "https://www.packvol.com/packvol-en.pdf"
    },
    {
     "title": "Release Notes and Updates",
     "url": "https://www.packvol.com/changelog.html"
    },
    {
     "title": "Compare the editions of the program",
     "url": "https://www.packvol.com/versions.html"
    },
    {
     "title": "Functions and loading rules",
     "url": "https://www.packvol.com/rules.html"
    },
    {
     "title": "Main features of the program",
     "url": "https://www.packvol.com/features.html"
    },
    {
     "title": "Tutorials index",
     "url": "https://www.packvol.com/tutorials.html"
    },
    {
     "title": "packVol Integrable Application",
     "url": "https://www.packvol.com/pvDLL/index.html"
    },
    {
     "title": "Home",
     "url": "https://www.packvol.com/index.html"
    }
   ],
   "passed": 88,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The input fields (L) Length, (W) Width, and (H) Height refer to the “internal” or to the “nominal” dimensions of the container. Data are integer valued and must always be set.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=33"
      },
      {
       "text": "Closed cnt This is the standard container, defined as any rectangular envelop with fixed assigned sizes.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      }
     ],
     "recipe": "",
     "note": "All editions. Integer dimensions only (decimals via a unit scale factor, p.68).",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The program allows you to define irregular containers with unusable volumes so that no package will be placed inside these regions. Such spaces must have “rectangular” shape",
       "url": "https://www.packvol.com/packvol-en.pdf#page=50"
      },
      {
       "text": "rect Unusable space row. Columns B, C, D are the “low” coordinates, E, F, G are the edges.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=101"
      }
     ],
     "recipe": "",
     "note": "Stored with the container type (Excel import, ODBC pv_obs, or a manual session). Whether cargo may stand on top of an unusable space is not stated. All editions.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "enter in the Dim. grid the dimensions of the “blocks” that form the unusable volumes. It is not necessary to specify their number",
       "url": "https://www.packvol.com/packvol-en.pdf#page=51"
      },
      {
       "text": "so that blocks can be placed in arbitrary positions",
       "url": "https://www.packvol.com/packvol-en.pdf#page=51"
      }
     ],
     "recipe": "",
     "note": "Any number of rectangular blocks, each with its own low coordinates and size (Excel rect/bbox rows, ODBC pv_obs rows). Saved as a property of the container type. The per-solution 'unusable section' (one length range per container) is separate.",
     "searched": "",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can also define an effective height of the container, to prevent the placing of the packages near the “ceiling” of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=51"
      },
      {
       "text": "“Unusable sections”, be changeable as desired in the solution and not saved into the internal database.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=50"
      }
     ],
     "recipe": "",
     "note": "Set per individual container in the current solution via Settings > Unusable Section, without editing the container record. Desktop dialog; no ODBC field for it is listed.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In the example, the layout of a drop-deck type trailer is shown",
       "url": "https://www.packvol.com/packvol-en.pdf#page=102"
      },
      {
       "text": "the cnt rect reports the size of the unusable space.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=102"
      }
     ],
     "recipe": "1. Define the container with its full nominal length, width and height as a cnt row (Container data layout, p.100-101). 2. Add a rect unusable-space row covering the raised section at its position and height (p.101); the vendor's drop-deck example blocks 384 x 249 x 35 at the rear (p.102). 3. The planner keeps packages out of unusable volumes (p.50).",
     "note": "The vendor documents this route for a drop-deck trailer. Steps are rectangular; any number of blocks is possible.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This way you can model a wide variety of containers: railway wagons, aerospace ULDs, refrigerated units, etc..",
       "url": "https://www.packvol.com/rules.html"
      },
      {
       "text": "Such spaces must have “rectangular” shape",
       "url": "https://www.packvol.com/packvol-en.pdf#page=50"
      }
     ],
     "recipe": "1. Define the bounding box of the space as the container (p.33). 2. Add rectangular unusable spaces running along the length at the upper (or lower) corners, each with its own low coordinates and size, to cut the cross-section into steps (Container data layout rect/bbox rows, p.100-101; pv_obs, p.110). 3. The planner never places a package inside an unusable volume (p.50).",
     "note": "Stepped approximation only (unusable spaces must be rectangular).",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Rectangular unusable spaces could in principle combine a lengthwise step with a cross-section cut, but the documentation shows only the drop-deck (lengthwise) example; no single unit combining both is shown.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: ULD, wagon, contour, profile, slope, irregular, unusable space, drop-deck; checked every unusable-space example (p.50-51, 100-102, 110). Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Such spaces must have “rectangular” shape",
       "url": "https://www.packvol.com/packvol-en.pdf#page=50"
      }
     ],
     "recipe": "",
     "note": "Contours are built only from rectangular unusable blocks, so sloped walls can only be approximated by steps.",
     "searched": "",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing models several sub-spaces of one unit. 'Unusable section' blocks a length range and max mixing 0 splits a container into longitudinal destination sections, but neither gives sub-spaces with their own geometry.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: compartment, section, deck, double deck, shelf, hold, trailer, road train, sub-space, zone, divider. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only the rear/front convention (origin at the rear) and a pre-run check that packages fit the container dimensions (p.50) are documented.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: door, opening, aperture, entrance, access. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The loading direction is fixed by the coordinate convention (origin at the rear, fill Rear-Front, Bottom-Top or Layer-Front). The Rack/Flat type is 'open on width side' for overhang, not documented as a loading face.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: door, loading face, side loading, top loading, access, curtain. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "restricted-scope"
     ],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "Open Top The container allows loading of packages taller than the height of the container. The exception is applied when packages are on floor",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      },
      {
       "text": "Rack/Flat This is a special container (C, D), open on width side and with usable height greater than the height of the front wall. Floor packages are positioned with symmetrical overhang if they have a greater extension than the base.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      }
     ],
     "recipe": "",
     "note": "The maximum over-length check is ticked for DYNLOAD only in the edition table ('Check of maximum overlength on open container'), while the manual says STANDARD can set rack/flat parameters.",
     "searched": "",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "b) minimize the number (or capacity) of containers needed to load the entire loading list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=52"
      },
      {
       "text": "In the case of minimizing the number of containers with the “base” methods, completion occurs using the last container in the load list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=52"
      }
     ],
     "recipe": "",
     "note": "Methods seq-a and fst-a (auto add). STANDARD and DYNLOAD; 'The Lite version has only the sqn-f method for a single container' (p.53). No stated cap on added units ('no limits on the number of containers', p.1).",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The application tries to estimate the best combination of types to minimize the capacity or the cost of the containers needed to load the whole loading list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=53"
      },
      {
       "text": "Ability to check for the best container type",
       "url": "https://www.packvol.com/versions.html"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD 'mbin' (multibin) method only; type quantities need only be > 0. In the base methods the user lists the units and the last type completes the load.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "qty number of containers.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=38"
      },
      {
       "text": "The value qty=0 excludes the type from the optimization list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=38"
      }
     ],
     "recipe": "",
     "note": "Honoured by the fixed-list methods (seq-f, fst-f), which leave the excess unloaded. Not a cap under auto-add (the last listed type completes the load, p.52) or mbin (quantity only needs to be > 0, p.53). Input tab absent in LITE (single container).",
     "searched": "",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In the case of minimizing the number of containers with the “base” methods, completion occurs using the last container in the load list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=52"
      },
      {
       "text": "Loading is normally done (seq-f and seq-a methods) in a “sequential” manner, one container at a time until the list is exhausted.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=52"
      }
     ],
     "recipe": "1. List the preferred types first, each with its available quantity (Input tab qty, p.38; pv_cnt ordered by ID, p.108). 2. Put the fallback type last in the list. 3. Run a sequential auto-add method (seq-a), which fills one container at a time (p.52) and completes the load with the last listed container (p.52).",
     "note": "No dedicated preference field; a fixed-list-then-fallback split follows from list order. STANDARD and DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The application tries to estimate the best combination of types to minimize the capacity or the cost of the containers needed to load the whole loading list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=53"
      },
      {
       "text": "With the plt-r and plt-e methods the application optimizes each package in the input list, “row by row” (or by groups of rows controlled by fml), looking for the best possible saturation on the container types available in input.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD only. mbin minimises total capacity across the offered types; plt-r/plt-e pick the container type with the best saturation per item.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "cost cost associated to the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=38"
      },
      {
       "text": "The application tries to estimate the best combination of types to minimize the capacity or the cost of the containers needed to load the whole loading list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=53"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD mbin only. Flat cost per container type (decimal >= 1, default 1).",
     "searched": "",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only an absolute Max Load (weight) and an effective height per container exist; there is no percentage fill cap.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: fill, percentage, max volume, utilisation limit, saturation, cap. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Clean'/'Remove unused' only drop empty containers; 'Redistribute load' evens out containers but sets no minimum.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: minimum fill, minimum load, min volume, under-filled, remove unused. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the name of the container is entered in the cell, as shown in the Input tab, the row is loaded only on that type of container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "To force, enter the string @=n1=n2... in the cell. To exclude, enter the string #=n1=n2... in the cell.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD: plt-e/plt-r by container name (including the pallet type an item is built on), mbin force/exclude lists of type indexes (added 4.1.0). In STANDARD the mc field ties an item to the n-th container instead (see fleet-item-to-unit).",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In this case, the constraint mc = n requires that a package be loaded into the nth container in the list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "For the methods seq-a and fst-a, the number of containers to be used is unknown at startup, and the constraint is therefore removed.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=28"
      }
     ],
     "recipe": "",
     "note": "Fixed-list methods seq-f and fst-f only; STANDARD and DYNLOAD. An mc index above the container count stops the run with an error (p.49).",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Partial form only: a DYNLOAD 'Load extension' primary container takes the load height as the package height after conversion (p.36), and height can be adapted to the secondary container (p.73). No length/width sizing within ranges.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: variable height, load extension, dimension range, carton size, box size, minimum/maximum dimensions. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Length l, width w and height h of the item. The fields are integer valued.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=21"
      },
      {
       "text": "Weight of the package. Must be expressed in the same unit of measure used in Current Tab of the Container Panel.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=23"
      }
     ],
     "recipe": "",
     "note": "All editions. Integer dimensions; no documented count limits.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "All items are rectangular packages.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: cylinder, cylindrical, drum, barrel, roll, pipe, tube, diameter, round. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: nest, nesting, honeycomb, staggered, hexagonal, pyramid, cylinder, roll. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: shape, L-shape, interlock, irregular item, non-rectangular package. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Loading into crates or pallets is done by treating them as containers (two-stage, DYNLOAD), not by filling an item's free space.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: cavity, inside, hollow, frame, overhang space, under. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Load by objects' refers to objects 'of unspecified shape' but only counts them into packages (p.64).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: CAD, mesh, 3D model, arbitrary shape, free shape, STL. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Load by objects' fills a package with a number of objects 'of unspecified shape' (p.64), but by count, not by volume and weight.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: bulk, amorphous, liquid, volume-only, loose, unspecified shape. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: compress, soft, bulge, squeeze, tolerance, deform. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Partial form: STANDARD/LITE 'Load by objects' splits an incoming object count into packages of up to qt/b objects (optionally n per layer) by modular division, e.g. 14 objects at 8 per box give a box of 8 and a box of 6 (p.64-65). That is arithmetic with a single pack size, not a choice between several pack levels.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: load by objects, qt/b, objects per package, per layer, case, pack level, bundle, configuration. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Easy to remind values are: 1 (the package cannot be rotated), 3 (only the positions corresponding to rotations about the vertical axis), 63 (all positions allowed).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      },
      {
       "text": "For a pallet, which should never be lying on its sides, you need ps = 3 (1+2).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=121"
      }
     ],
     "recipe": "",
     "note": "Per item (ps). All editions. Default for Excel import is 3, for manual entry 63 (configurable).",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Easy to remind values are: 1 (the package cannot be rotated)",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      },
      {
       "text": "1 reference position: length, width, and height are aligned with length, width, and height of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=120"
      }
     ],
     "recipe": "",
     "note": "ps=1 fixes the item in its reference orientation (length along the container length); ps=2 alone forces it crosswise.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When all positions are allowed you set ps = 63 (1+2+4+8+16+32).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=121"
      },
      {
       "text": "32 the reference position 1 is “lying down” on the length side",
       "url": "https://www.packvol.com/packvol-en.pdf#page=120"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The parameter ps which describes the allowed positions is encoded with a single integer obtained by summing up the values in the following table for each allowed position.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=120"
      },
      {
       "text": "For a freezer, that you want to just lay on a given side, you must force ps = 12 (8+4) or ps = 48 (16+32), according to the definition of the edges.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=121"
      }
     ],
     "recipe": "",
     "note": "Each lying orientation has its own bit, so e.g. ps = 1+2+4+8 allows upright and lying on the width side but never on the length side.",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The parameter ps which describes the allowed positions is encoded with a single integer obtained by summing up the values in the following table for each allowed position.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=120"
      },
      {
       "text": "Values between 1 and 63 in which a given package can be loaded.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      }
     ],
     "recipe": "",
     "note": "Equivalent positions of square faces are merged (p.43).",
     "searched": "",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The 'Default positions' preference (p.71) only pre-fills ps at data entry; it is not a solver preference.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: prefer, preferred position, default position, soft, orientation priority. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "fl floor-only The numerical value, between 1 and 63 defines the positions for which the constraint must be applied.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      },
      {
       "text": "nf not at floor The value, between 1 and 63, defines the positions for which the package cannot stay at floor.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      }
     ],
     "recipe": "",
     "note": "Floor-only and not-at-floor are each set per orientation bitmask; clm=8 widens orientations for the top of a stack.",
     "searched": "",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The xs value can be defined with respect to each support face",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "g mxp01 max bearing weight position 1; null or zero value excludes the constraint",
       "url": "https://www.packvol.com/packvol-en.pdf#page=106"
      }
     ],
     "recipe": "",
     "note": "Excel master-data import accepts only one global value for max stack, stack index and bearing weight (p.98); per-face values need the Constraint Panel or ODBC. Bearing weight is STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Positions are the six axis-aligned orientations only (p.120).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: angle, tilt, lean, inclined, diagonal, degrees. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No cylindrical item type.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: cylinder, drum, roll, upright, lying, barrel. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The value, between 1 and 63, defines the positions for which packages of different type, or of same type but with a different orientation, cannot be placed on top of it.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      },
      {
       "text": "To avoid positioning on the face you can impose a small non-zero value, for example 0.01.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      }
     ],
     "recipe": "",
     "note": "tp: all editions; bearing weight: STANDARD/DYNLOAD. The vendor documents both combinations for a 'two-dimensional' plan (p.25).",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "fl floor-only The numerical value, between 1 and 63 defines the positions for which the constraint must be applied.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      },
      {
       "text": "Set as floor only The package should be placed only on floor.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=26"
      }
     ],
     "recipe": "",
     "note": "Per item and per orientation. Mutually exclusive with not-at-floor.",
     "searched": "",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "nf not at floor The value, between 1 and 63, defines the positions for which the package cannot stay at floor.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      },
      {
       "text": "The field forces the package to stay above others.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Relative stack - The xs value can be imposed on packages that have been assigned the constraint fl, nt, or nf and indicates how many packages of the same type and with the same orientation can be stacked one on top of the other.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "the text box for the max stack (xs) is enabled only if the package has been marked as floor-only (fl), top-only (tp), or no-floor (nf)",
       "url": "https://www.packvol.com/packvol-en.pdf#page=43"
      }
     ],
     "recipe": "",
     "note": "Per item and per support face; available only when fl, tp or nf is set. Counts same type and same orientation.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Absolute stack - The value xs minus one indicates the maximum number of packages that can be found below the package at hands. For example, if xs=3, a maximum of two packages can be found below it or, equivalently, the package will be in third position at most.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "Introduced absolute stack constraint.",
       "url": "https://www.packvol.com/changelog.html"
      }
     ],
     "recipe": "",
     "note": "Per item, activated with clm=16; added in 4.1.0 (Sep 2025). clm is a STANDARD/DYNLOAD feature ('Check of columnar order'). No container-wide tier cap.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Max height - The value indicates the maximum height at which a package can be placed. The parameter can be set for each support face.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "g mht01 max height position 1; null or zero value excludes the constraint",
       "url": "https://www.packvol.com/packvol-en.pdf#page=106"
      }
     ],
     "recipe": "",
     "note": "Per item and per support face, in length units. The manual does not say whether the height refers to the package's bottom or top face. Disabled when floor-only is active.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Maximum weight that the package can bear.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "Vertical ordering according to the maximum weight supported by each package (normal stress)",
       "url": "https://www.packvol.com/versions.html"
      }
     ],
     "recipe": "",
     "note": "Per item and per support face (mw; g_mxp01-32). STANDARD and DYNLOAD, not LITE. Evaluated as pressure (see stacking-bearing-pressure). Whether the whole column above or only the directly resting item is counted is not stated. The 4.1.4 release (Jan 2026) fixed a calculation error.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The program requires a value of weight but converts it internally in the normal stress through division by the area of the supporting surface.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "Hence, in a situation as depicted in figure, the object cannot be positioned above because, although its weight is lower than pm, it generates a stress higher than the maximum allowed.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      }
     ],
     "recipe": "",
     "note": "The user enters a weight; the engine divides it by the area of the supporting surface and compares the stress an upper item exerts over its contact area, so a light item on a small footprint can be refused (figure: 80 kg item refused on an item with mw 100). A limit can be set per support face. The exact formula (full face area versus contact area on each side) is described only in words and the figure. STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Sometimes you want a “two-dimensional” loading plan in which no packages are stacked on top of others. You can achieve this in three different ways, by setting the following for all rows:",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      },
      {
       "text": "or c) pm = 0,01. Case c) requires the weight of the package to be indicated",
       "url": "https://www.packvol.com/packvol-en.pdf#page=25"
      }
     ],
     "recipe": "",
     "note": "The vendor states that a near-zero bearing weight on all rows yields a plan with no stacking at all, which implies the bearing check also applies when an item rests on units of the same item.",
     "searched": "",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "The rule enforces that no package with a lower stk value can be placed on top of it.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "The stk and pm constraints impose vertical ordering and can compete. It is recommended not to use them at the same time.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      }
     ],
     "recipe": "",
     "note": "No weight-ordering rule. A user could rank items by weight outside the tool and enter the rank as the stacking index (lighter items getting higher stk), which the vendor does not document for this purpose.",
     "searched": "",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The rule enforces that no package with a lower stk value can be placed on top of it.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "It is possible to stow other packages on top of an item marked as nf, if these have a stacking index no lower than stk.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=24"
      }
     ],
     "recipe": "",
     "note": "Per item, optionally per face (g_stk01-32). All editions per the edition table. The vendor advises against combining it with bearing weight.",
     "searched": "",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In addition to being an analysis tool, the panel allows you to define “exceptions” to the default stacking constraints",
       "url": "https://www.packvol.com/packvol-en.pdf#page=47"
      },
      {
       "text": "Each row defines a rule that allows a stacking otherwise forbidden, or forbids a stacking otherwise allowed.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=111"
      }
     ],
     "recipe": "",
     "note": "Per item pair and per lower/upper orientation; UI, Excel stack-matrix import or ODBC pv_stack. STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "clm=1 - “columnar order” The package should stay within the base provided by the lower package.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=29"
      },
      {
       "text": "clm=2 - “face on face” The surfaces between lower and upper packages must coincide.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=29"
      }
     ],
     "recipe": "",
     "note": "Per item. STANDARD/DYNLOAD ('Check of columnar order').",
     "searched": "",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Defines the default value of max overhang when a package is stacked on another. The allowed value is expressed as percentage of the edge dimension and varies from 0 to 49 (physical limit).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      },
      {
       "text": "The program checks that the position of center of mass of each package lies within the base (physical equilibrium).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=29"
      }
     ],
     "recipe": "",
     "note": "Per container default (8% default) and per item override (overh). Support check can be switched off as a test setting (p.6). Per-item overh is STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The support-surface check is documented (p.6, p.29) but has no height-difference parameter.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: height difference, bridging, gap, level difference, uneven, support surface. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Open Top' is a container type, not an item shape.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: nest, nesting, nestable, top shape, open top item, increment. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Batch load (multiples of n per container) and pattern minimum object counts (p.66) exist, but no complete-stack or complete-layer rule.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: complete layer, full layer, complete stack, flat top, level top, remainder. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The program internally assigns a fictitious ds index to each type, so that identical packages are always grouped together, deciding the best sequence.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=47"
      },
      {
       "text": "g block loadable check loading / unloading, [0] no, [1] yes.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=112"
      }
     ],
     "recipe": "",
     "note": "Per plan option 'Check loading / unloading for each package' (FI/LO Advanced dialog); needs no user destinations.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Numerical identifier of longitudinal ordering along depth (length axis).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "The empty field allows the application to minimize the overlap, while the zero value completely prevents the mixing. In the latter case, one has a simple subdivision of the container in independent longitudinal sections.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "1. Give every item of a group the same destination index ds (List grid, p.27; text labels are mapped to indexes, p.70). 2. Keep FI/LO ordering active (Destinations dialog, p.45). 3. Set max mixing to 0 so the container is split into 'independent longitudinal sections' per ds (p.46).",
     "note": "No separate group attribute; the destination index doubles as a group key and imposes a lengthwise order between groups. STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "DYNLOAD families: in plt-r/plt-e rows with the same fml 'are optimized in the same container (multi-item pallet formation)' and in mbin they are 'optimised simultaneously and separately from the others' (p.54). Neither is stated as forbidding a group from spanning several units.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: group, family, same container, split, keep together, one container, set. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The priority list loads an index only after all lower indexes are completely loaded (p.45), and set load stops the run if the ratio cannot be found (p.23); neither leaves a whole group out instead of part of it.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: all or nothing, complete, whole order, partially loaded, set load, priority, left on the ground. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The empty field allows the application to minimize the overlap, while the zero value completely prevents the mixing. In the latter case, one has a simple subdivision of the container in independent longitudinal sections.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      },
      {
       "text": "max mixing Allows you to limit the extension of the overlap of blocks of packages with different ds destinations within a maximum value",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "",
     "note": "Sections are lengthwise, one per destination index, ordered by ds; no physical divider or thickness is inserted. STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Numerical identifier of longitudinal ordering along depth (length axis).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "The empty field allows the application to minimize the overlap, while the zero value completely prevents the mixing. In the latter case, one has a simple subdivision of the container in independent longitudinal sections.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "Route A: 1. Give each group its own destination index ds (p.27). 2. Set max mixing to 0 so each ds gets an independent longitudinal section (p.46); items of different groups then never share a section and cannot rest on each other. Route B: 1. Open the stack matrix (p.47). 2. For each pair of items from different groups use 'Deny shown stacking' (all positions) (p.48) or import the pairs with a negative g_status (p.100, p.111).",
     "note": "Route A also forces a lengthwise order between groups; route B works item pair by item pair (no group or class code). STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In this case, the constraint mc = n requires that a package be loaded into the nth container in the list.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "To force, enter the string @=n1=n2... in the cell. To exclude, enter the string #=n1=n2... in the cell.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      }
     ],
     "recipe": "1. Use a fixed-list method (seq-f or fst-f) so containers are numbered in advance (p.27, p.53). 2. Give the items to be kept apart different matching codes mc = n, so each is tied to a different container (p.27).",
     "note": "Works only with a fixed container list (the mc constraint is removed under auto-add, p.28). In DYNLOAD mbin, force/exclude acts on container types, not on sharing.",
     "searched": "",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Padding space (spL/spW/spH) keeps a clearance around an item against all neighbours (see positioning-clearance), not between chosen items or classes. The stack matrix bans direct contact only.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: separation, distance, apart, segregation, not above, padding, spacing. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only 'hazardous' mention is in the licence text (p.123).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: dangerous, hazardous, hazmat, IMDG, ADR, class, segregation. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Weight (Max Load) is the only per-container sum that can be capped.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: value, price, points, piece count, maximum number, sum, cap. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "DYNLOAD plt-e builds single-reference pallets first ('Mono article, without reuse'), but remainders then go to mixed loading; it is not a cap on distinct items per unit.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: distinct, number of items, number of types, single reference, mono article, SKU per container. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "between-ratio": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In each container, items with the same alphanumeric label must be in a defined ratio.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=23"
      },
      {
       "text": "The program calculates the ratio automatically from the item with minimum quantity.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=23"
      }
     ],
     "recipe": "",
     "note": "Ratio taken from the input quantities. The run stops if the ratio cannot be met. STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "between-batch": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Packages are loaded in each container in multiples of the bat number.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=23"
      },
      {
       "text": "Batch Load - ability to load packages in multiples of an assigned number",
       "url": "https://www.packvol.com/versions.html"
      }
     ],
     "recipe": "",
     "note": "Per item (bat). A dialog handles quantities that are not a multiple (p.50). STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To modify a verified solution while keeping the position of the packages of the current solution unchanged, use Solution → Start from current command.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=61"
      },
      {
       "text": "load some packages manually and then request the positioning of the others automatically",
       "url": "https://www.packvol.com/packvol-en.pdf#page=61"
      }
     ],
     "recipe": "",
     "note": "All editions. Quantities can only be increased. 'Re-optimize selected' (STANDARD/DYNLOAD) re-plans chosen containers while others stay; DYNLOAD fml = -2 leaves preformed packages unchanged.",
     "searched": "",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "insert the coordinates of the control point L, W and H in the spin controls and click on the tool New point [N]",
       "url": "https://www.packvol.com/packvol-en.pdf#page=60"
      },
      {
       "text": "load some packages manually and then request the positioning of the others automatically",
       "url": "https://www.packvol.com/packvol-en.pdf#page=61"
      }
     ],
     "recipe": "",
     "note": "Exact coordinates can be typed only inside the manual 3D session, then frozen with Start from current. No input field for positions in the Excel or ODBC input tables (pv_geom is output only); the XML exchange format is not public.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: coordinate input, fixed position, pre-placed, pv_geom, XML, merge solution. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rsp, Fsp spaces not allowed Prevents placement of the package in rear (for a length Rsp) or at the front (for a length Fsp) of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=31"
      },
      {
       "text": "The two text boxes from front of the container and from rear of the container set the values of the unavailable spaces.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=44"
      }
     ],
     "recipe": "1. Set Rsp to keep the item out of the rear length Rsp (Space grid, p.31). 2. Set Fsp to keep it out of the front length Fsp (p.31, p.44). Together they confine the item to the lengthwise band between Rsp and (length - Fsp); Rsp alone large enough keeps it at the front, Fsp alone at the rear.",
     "note": "Lengthwise bands only; no sideways or named zones. Per item.",
     "searched": "",
     "corrected": {
      "reason": "Uses the dedicated per-item Rsp/Fsp control."
     }
    },
    "positioning-exclude-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rsp, Fsp spaces not allowed Prevents placement of the package in rear (for a length Rsp) or at the front (for a length Fsp) of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=31"
      },
      {
       "text": "The command Settings → Unusable Section opens a dialog where you enter the extension of the unusable section with the text boxes from – to.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=51"
      }
     ],
     "recipe": "",
     "note": "Rsp/Fsp ODBC fields are marked UNUSED (p.107).",
     "searched": "",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rear-Front the program places the packages starting from the rear of the container, filling as much as possible a “slice” upward, and then continues to the front of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      },
      {
       "text": "Bottom-Top The program places the packages starting from the bottom of the container, filling the base, and then goes upward.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      }
     ],
     "recipe": "",
     "note": "Per container (Pack combo; g_bottom_top).",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Bottom-Top The program places the packages starting from the bottom of the container, filling the base, and then goes upward.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      },
      {
       "text": "the height of the load is kept as low as possible, by maximizing the base as in Bottom-Top ordering",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      }
     ],
     "recipe": "",
     "note": "Plan/container scope (fill pattern), not per item.",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you set tpl=1 the program checks that, when the package is loaded with the long side aligned with the short side of the container, there is enough space for the complete rotation of the package. The constraint applies only to closed containers and is disregarded for containers with overflow or rack/flat type.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=28"
      },
      {
       "text": "Maximum depth of a box with respect to packages that support it.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=29"
      }
     ],
     "recipe": "",
     "note": "Forklift check: closed containers only; STANDARD/DYNLOAD. The geometry of 'depth' is not defined.",
     "searched": "",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Sometimes it is necessary to leave free space around a package (for example, due to anchor hooks).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=31"
      },
      {
       "text": "If spH=-1 (or otherwise negative), the orientation instead refers to the container (“absolute”, see figure), regardless of the position of the package.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=31"
      }
     ],
     "recipe": "",
     "note": "Per item: spL and spW padding along length and width, relative to the package or absolute to the container. STANDARD/DYNLOAD ('Check of separation between adjacent packages').",
     "searched": "",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When applied, the program checks that the back of the package is resting against the rear wall of the container or against another package. Stiffness is a measure of how strong must be the rule, whereas Check width-axis enforces the control along container short side.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=47"
      },
      {
       "text": "g back face perc face contact percentage. The values is applied in case g back equil is active.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=113"
      }
     ],
     "recipe": "",
     "note": "Per plan; minimum face contact default 30%.",
     "searched": "",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The text field Max Load, having decimal values, allows you imposing the maximum load of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      },
      {
       "text": "g maxLoad container max load; null or a negative value excludes the constraint",
       "url": "https://www.packvol.com/packvol-en.pdf#page=109"
      }
     ],
     "recipe": "",
     "note": "Per container type, all editions; pallets are modelled as containers and use the same field. Can be disabled as a test setting.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No compartments exist; the only split limit is the lengthwise load profile (next row).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: compartment, deck, zone, section weight, part. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The program allows you to assign a maximum load for different sections of the container, up to a maximum of five sections.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      },
      {
       "text": "The program can impose a limit on the maximum load of each container, with uneven distribution between user-defined “sections” if needed.",
       "url": "https://www.packvol.com/rules.html"
      }
     ],
     "recipe": "",
     "note": "Up to 5 lengthwise sections per container type, each with length and maximum weight; Max Load becomes their sum. All editions ('Unequal load distribution').",
     "searched": "",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To ensure this, the application checks that in every possible “strip” of length L, the weight W of the strip satisfies the relationship W/L ≤ weight/length",
       "url": "https://www.packvol.com/packvol-en.pdf#page=34"
      },
      {
       "text": "If l exceeds the base length of the package, other packages are spaced appropriately.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      }
     ],
     "recipe": "",
     "note": "Per container; requires Max Load active. All editions ('Control of linear density and average load on container floor').",
     "searched": "",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No axle model anywhere in the manual, feature pages or changelog. rules.html's 'ascending order with respect to the container axle' refers to destination ordering along the length axis, not to axle loads.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: axle, axis, kingpin, fifth wheel, drawbar, tractor, trailer, tare, gross, bridge formula, permit, jurisdiction, legal limit. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No axle model anywhere in the manual, feature pages or changelog. rules.html's 'ascending order with respect to the container axle' refers to destination ordering along the length axis, not to axle loads.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: axle, axis, kingpin, fifth wheel, drawbar, tractor, trailer, tare, gross, bridge formula, permit, jurisdiction, legal limit. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No axle model anywhere in the manual, feature pages or changelog. rules.html's 'ascending order with respect to the container axle' refers to destination ordering along the length axis, not to axle loads. A container tare exists only for DYNLOAD primary containers (pallets/crates) converted to packages.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: axle, axis, kingpin, fifth wheel, drawbar, tractor, trailer, tare, gross, bridge formula, permit, jurisdiction, legal limit. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No axle model anywhere in the manual, feature pages or changelog. rules.html's 'ascending order with respect to the container axle' refers to destination ordering along the length axis, not to axle loads.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: axle, axis, kingpin, fifth wheel, drawbar, tractor, trailer, tare, gross, bridge formula, permit, jurisdiction, legal limit. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No axle model anywhere in the manual, feature pages or changelog. rules.html's 'ascending order with respect to the container axle' refers to destination ordering along the length axis, not to axle loads.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: axle, axis, kingpin, fifth wheel, drawbar, tractor, trailer, tare, gross, bridge formula, permit, jurisdiction, legal limit. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The rule forces the solution to have the center of mass of the load included in a target rectangle",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      },
      {
       "text": "The target rectangle is defined by the four values DL (maximum and minimum) and DW (maximum and minimum), expressed as a percentage of the length and width of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      }
     ],
     "recipe": "",
     "note": "Per container, integer percentages 0-100 of the length; package weights required. All editions. The ODBC value 'forbid shift' (g_enforce_cm = 3) is not explained.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The target rectangle is defined by the four values DL (maximum and minimum) and DW (maximum and minimum), expressed as a percentage of the length and width of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      },
      {
       "text": "g c of mLowW lower percentage limit for the center of mass along g width axis",
       "url": "https://www.packvol.com/packvol-en.pdf#page=109"
      }
     ],
     "recipe": "",
     "note": "Same rectangle rule, width limits in % of container width. All editions.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "No control is operated in the vertical direction.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=35"
      }
     ],
     "recipe": "",
     "note": "The centre-of-mass rule covers length and width only.",
     "searched": "",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "DYNLOAD 'Center load on container base' centres the load after calculation (p.37), but it is described as a geometric centring, not as balancing weight. The centre-of-mass rule is a hard window. 'Side shift' is undescribed beyond one sentence.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: balance, centre, center load, even, distribute, shift, side shift. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The support check uses 'the position of center of mass of each package' (p.29), but no input sets it; it is implicitly the geometric centre.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: center of mass of each package, offset, eccentric, off-centre, item centre of gravity. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Numerical identifier of longitudinal ordering along depth (length axis).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "When FI/LO is active, the program always checks that no packages with lower ds indexes are “in front of” or “above” others with higher indexes",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "",
     "note": "Per item ds (integer or named string mapped by first occurrence). STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A package is loaded only after complete loading of all packages with lower ds value.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=45"
      },
      {
       "text": "minimum number: in case you input a positive value, the solver tries to load at least this number of packages for the given item.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      }
     ],
     "recipe": "",
     "note": "Applies with a fixed number of containers; min priority is not applied by methods that load the whole list except sqn-a (p.45). The minimum quantity is soft ('tries'; warns if not met). STANDARD/DYNLOAD ('Loading of the packages according to priority list').",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A package is loaded only after complete loading of all packages with lower min value.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=45"
      },
      {
       "text": "It is applied in the case of solutions with fixed number of containers.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      }
     ],
     "recipe": "1. Use a fixed number of containers (seq-f/fst-f, p.53). 2. Enable 'min index as priority rule' in FI/LO Advanced (p.45). 3. Give required items low min values and fill items the highest value; fill items are then loaded only after all required items are completely loaded (p.45).",
     "note": "No optional flag. Under auto-add methods the priority index is not applied (except sqn-a), so fill items could trigger another container.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Numerical identifier of longitudinal ordering along depth (length axis).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=27"
      },
      {
       "text": "according to a priority rule in ascending order with respect to the container axle, a rule needed for example in presence of different deliveries",
       "url": "https://www.packvol.com/rules.html"
      }
     ],
     "recipe": "",
     "note": "Per item destination ds; per plan mode. Priority within a stop can be added with the min index (p.45). STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When FI/LO is active, the program always checks that no packages with lower ds indexes are “in front of” or “above” others with higher indexes, but no check is performed in lateral direction.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "",
     "note": "Hard rule for front and above. Gap: no lateral check, so blocks of different stops can stand side by side (the vendor says this 'is not always acceptable'); max mixing limits it.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "max mixing Allows you to limit the extension of the overlap of blocks of packages with different ds destinations within a maximum value",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      },
      {
       "text": "The empty field allows the application to minimize the overlap, while the zero value completely prevents the mixing.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "",
     "note": "Per plan length value; empty = minimise, 0 = clean split, positive = cap.",
     "searched": "",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only one destination index per item.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: pickup, pick-up, collection, origin, loading stop, route. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Keep order between containers The packages are ordered by considering the ordering between consecutive containers.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=45"
      },
      {
       "text": "Absolute ordering of packages in case of multi-container solutions",
       "url": "https://www.packvol.com/versions.html"
      }
     ],
     "recipe": "",
     "note": "STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "With ds as a priority, a destination is loaded only after all lower ones are complete (p.45), but nothing prevents the last destination loaded from being partial.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: complete, partially loaded, whole destination, all or nothing, left on the ground. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only date field is the report header date (pv_job.g_date).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: date, due, deadline, shipping date, storage date, days. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Base height Lower external vertical dimension, the thickness of the base for a pallet or the plinth for a crate.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=36"
      },
      {
       "text": "the Load extension option takes as height of the package the height of the load (pallet type)",
       "url": "https://www.packvol.com/packvol-en.pdf#page=36"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD: a pallet is a container with base height, tare and nominal height. In STANDARD the pallet base in Additional data is 'used for visualization purposes only' (p.36); 'load by objects' plt packages carry a base height hbase (p.64).",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "With the plt-r and plt-e methods the application optimizes each package in the input list, “row by row” (or by groups of rows controlled by fml), looking for the best possible saturation on the container types available in input.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      },
      {
       "text": "0 or blank With the plt-r and plt-e methods the row is optimized individually (single-item pallet formation).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD. One pattern (the best found) per item; no list of alternative patterns.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The pattern is built in manual session, reproducing a known scheme, for example that of an automatic palletizer.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=66"
      },
      {
       "text": "If the field is validated with the name of a pattern the formation of single-reference containers is performed by applying the palletizing scheme. Pattern and item size must be consistent.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD ('Ability to manage predetermined single-reference load models'). No pattern-style choice (block, pinwheel) or alternate-layer rotation setting.",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "> 0 or string With the plt-r and plt-e methods, the rows with the same value of the fml parameter are optimized in the same container (multi-item pallet formation).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      },
      {
       "text": "The remaining packages are then optimized in mixed loading.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD. Mixed pallets are built by the general 3D solver (pallets are containers), not in a stated layer or column mode. Any edition can load several item types onto a pallet defined as a container.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Max over length assumes the value as the maximum overhang with respect to the dimensions of the base. The “x 2” label reminds that the values are applied symmetrically.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=37"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD, per primary container type; length and width values.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Center load on container base At end of calculation, load is centered on container base.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=37"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD Additional data.",
     "searched": "",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: slip sheet, interlayer, layer pad, tier sheet, separator, cardboard. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "All methods take into account the “family” fml parameter of the Box tab to section the input list into independent calculations.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=53"
      },
      {
       "text": "> 0 or string With the plt-r and plt-e methods, the rows with the same value of the fml parameter are optimized in the same container (multi-item pallet formation).",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD. Families are calculated independently, so items of different families do not share a pallet. fml -1 sends an item only to mixed loading; -2 excludes it.",
     "searched": "",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "DYNLOAD two-stage loading needs a user step between runs: optimise the first stage, then 'Convert to packages' and optimise again (p.65). That passes pallet-carry-over, not this row. The integrable pv_exec.g_stage field is 'RESERVED for future developments' (p.112).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: two-stage, multi-stage, convert to package, second stage, g stage, single run. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This feature responds to a commonly used scheme, which requires a “first stage” where the packages are loaded into containers (“primary” in the program terminology, for example boxes on pallets), and a subsequent “second stage” in which these are further loaded into larger containers",
       "url": "https://www.packvol.com/packvol-en.pdf#page=65"
      },
      {
       "text": "The conversion is done with the Solution → Convert → Convert to package command",
       "url": "https://www.packvol.com/packvol-en.pdf#page=65"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD. Converted pallets carry external dimensions, tare, base height and fixed or load-derived height into the next stage; 'Convert to containers' goes the other way.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Ability of optimization at “multiple steps” (objects in boxes → boxes on pallets → pallets in container)",
       "url": "https://www.packvol.com/versions.html"
      },
      {
       "text": "Assign as first stage records the current solution as the first stage.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=9"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD. Stages are chained by repeated conversion; each stage is a separate run.",
     "searched": "",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The remaining packages are then optimized in mixed loading. In the case plt-r, before starting the optimization in mixed loading, the program checks if the packages can be loaded in the nominal volume of the containers formed.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      },
      {
       "text": "With the plt-e method the step is skipped, and the containers formed in the initial step remain with the assigned items.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Constraints for second stage The grids replicate those of the Package manager and allow you to assign the constraints of the package obtained by conversion of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=37"
      },
      {
       "text": "Q integer positions allowed after conversion (only for [cnt] rows)",
       "url": "https://www.packvol.com/packvol-en.pdf#page=101"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD, per primary container type: all package rules (positions, floor/top-only, stacking, bearing) apply to the converted pallet. No minimum top-fill rule.",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The option “Apply the rule and subtract ... to container height” adapts the height of the primary container to the height of the secondary container in which the object will be placed.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=73"
      },
      {
       "text": "The assignment of the secondary container, other than to speed up the conversion operations, allows to adapt the nominal dimensions of the containers of the first stage.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=39"
      }
     ],
     "recipe": "",
     "note": "DYNLOAD; requires a secondary container. Adapts to the vehicle height, not to the space above a lower tier.",
     "searched": "",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "a) maximize the volumetric occupation of the loading list in a predetermined number of containers",
       "url": "https://www.packvol.com/packvol-en.pdf#page=52"
      }
     ],
     "recipe": "",
     "note": "Measure: volume by default (weight optional). All editions (LITE: one container).",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The program optimizes the volumetric occupation of the container (default option), or the weight loaded in the container. It applies only to “base” methods.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=55"
      },
      {
       "text": "g cost function cost function, [0] by volume, [1] by weight.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=112"
      }
     ],
     "recipe": "",
     "note": "Base methods only (seq/fst).",
     "searched": "",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Using the same number of containers, it is often preferable to have a homogeneous distribution of the load among the containers. The command Tools → Redistribute Load meets this need.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=55"
      },
      {
       "text": "In the case of an optimal multi-container solution, optimizes again the solution by placing the packages in the most uniform possible way among the various containers.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=8"
      }
     ],
     "recipe": "",
     "note": "Post-optimisation command keeping the container count.",
     "searched": "",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "Don’t fix package qty in advance Starts the session without assigning the number of packages, which can then be placed at will.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=56"
      },
      {
       "text": "paste of packages takes place only for those objects that satisfy all constraints",
       "url": "https://www.packvol.com/packvol-en.pdf#page=57"
      }
     ],
     "recipe": "",
     "note": "Only in the manual solver: the user places or pastes extra units by hand. No automatic cube-out, maximum-sets or top-up mode is documented; the integrable 'g_max_exec_time_ms = 0' only estimates a container count (p.113).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: maximum quantity, how many fit, cube out, top up, fill up, unlimited quantity, sets. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Execution time Maximum execution time, expressed in seconds for Standard version, milliseconds for Dynload version.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=54"
      },
      {
       "text": "Random start The optimization begins from a random choice. This allows you exploration of different possible solutions.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=55"
      }
     ],
     "recipe": "",
     "note": "Also stop/improve/continue on optimality, 'Improve solution' restart, thread count (DYNLOAD) and fast vs sequential methods. The seed makes runs reproducible but is labelled a test option.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "One solution per run. Re-optimising or random start lets the user explore configurations one at a time (p.55).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: alternative, several solutions, compare, options, re-optimize, random start. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Every rule is set per item row. 'Set parameters' applies a value to rows the user selects in the grid (p.26, p.32); the database filter (SQL LIKE on code or description, p.76) selects records to load, not rule targets.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: rule, condition, filter, if, threshold, greater than, attribute. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The 'other' secondary description is for reports only (p.22, p.117). The DYNLOAD family label fml is a free text that drives built-in rules (sectioning, pallet grouping), which the definition note scores under the between-items rows.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: custom field, user field, other, optional description, attribute, label, family. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The stack matrix is item-to-item (with per-orientation exceptions and a 90-degree 'conjugate rule'), keyed by item ID in pv_stack; there is no class code. The stacking index stk is an ordered index, not a matrix. Passes stacking-item-pair instead.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: class, category, stack matrix, stack code, group, pv_stack. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: compatibility, combination, incompatible, class, same container, matrix. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: sum, total, cap, limit per container, value, custom quantity. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Current panel carries the dimensions of the container and parameters for the positioning of the load. If the solution has more than one container type, the panel becomes active once the type is assigned.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=33"
      },
      {
       "text": "Constraints for second stage The grids replicate those of the Package manager and allow you to assign the constraints of the package obtained by conversion of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=37"
      }
     ],
     "recipe": "",
     "note": "Per container type: fill pattern, default max overhang, max load and load profile, density mode, centre-of-mass window, side shift, open-top/rack type. Item rules and FI/LO settings are per plan, not per container.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It’s opened via the menu command Tools → Open Stack Matrix , and shows the stack rules between pairs of packages resulting from the setting of constraints fl, tp, stk and xs..",
       "url": "https://www.packvol.com/packvol-en.pdf#page=47"
      },
      {
       "text": "The combination of constraints is performed by simple addition. For example, clm=5 (1+4) enforces the two constraints clm=1 and clm=4 simultaneously.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=30"
      }
     ],
     "recipe": "",
     "note": "Top-only, max stack, stacking index, bearing weight, columnar flags and stack-matrix exceptions apply together. The vendor advises against combining stk with bearing weight.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "One objective per run (volume, weight, or in mbin capacity or cost). 'Enable max mixing' reduces destination overlap 'with the same volumetric occupancy' (p.46), a fixed built-in secondary goal rather than a user-ordered set of objectives.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: objective, cost function, secondary, priority, weight, tolerance, then. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The DLL exposes only connect/execute/logging methods (pvDLL page). Vendor-side customisation exists: 'Possibility to request changes and extensions of functionality' (versions.html, STANDARD/DYNLOAD) and pv_job.g_customxml 'input parameters for custom versions' (p.104).",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: script, plug-in, plugin, callback, custom, extension, API, customxml. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enable max mixing The program tries, as far as possible and with the same volumetric occupancy, to reduce the interpenetration of blocks with different ds parameter.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      },
      {
       "text": "The empty field allows the application to minimize the overlap, while the zero value completely prevents the mixing.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=46"
      }
     ],
     "recipe": "",
     "note": "Destination mixing can be a preference (empty value: minimise) or a hard cap (0 or a positive length). The minimum quantity per item is also soft ('tries', p.27).",
     "searched": "",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "g posID position of the item according to the application encoding",
       "url": "https://www.packvol.com/packvol-en.pdf#page=118"
      },
      {
       "text": "The origin of the coordinates is located at the rear of the container.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=121"
      }
     ],
     "recipe": "",
     "note": "Per package: container index, orientation code (1-32), low-corner coordinates and edges (ODBC pv_geom; Excel per-container sheet). Origin at the rear, 'low' vertex nearest the origin.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Print instructions For each block the document reports a summary of weight and volume of the block, orientation of the package, position and extent of the block, label position if defined.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=92"
      },
      {
       "text": "0x0100 STEP BLOCK - step images by blocks",
       "url": "https://www.packvol.com/packvol-en.pdf#page=115"
      }
     ],
     "recipe": "",
     "note": "LITE: single container only; all-container export STANDARD/DYNLOAD.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "shows in tabular form the percentages of load weight, used volume, and number of loaded packages",
       "url": "https://www.packvol.com/packvol-en.pdf#page=40"
      },
      {
       "text": "The grid lists the association between the realized container (“bin”) and the number (“pk”) of the package type (“code”) loaded in that bin.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=62"
      }
     ],
     "recipe": "",
     "note": "Output tab (not LITE), distribution grid and report, container statistics, Excel per-container sheets.",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The Weight/Density tool reports the 'linear dimension' of a section the user marks (p.63), and empty spaces can be measured, but no length-used or free-length figure is documented.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: loading metre, length used, free length, linear dimension, remaining space. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the option is set, the report displays, besides the list of loaded items, a list of all packages left on the ground.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=72"
      },
      {
       "text": "→ Save unloaded packages saves the list of packages that are not been loaded.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=5"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Reasons appear only in the manual solver ('A short message ... shows the reason that prevents the insertion', p.58) and in a pre-run dialog for packages larger than the container (p.50). No reason per unplaced item after an automatic run.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: reason, why, error, warning, not loaded, left on the ground. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "output-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The centre of mass is shown only as a crosshair in the view (p.12); no numeric value in any report or output table.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: center of mass, centre of gravity, crosshair, report, coordinates. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No axle model.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: axle, axle load, kingpin, weight per axle. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The program displays a summary on linear dimension, volume, loaded weight, and the load distribution per unit length.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=63"
      },
      {
       "text": "planar layout [static] A single view from above is generated, with progressive numbering of the stacked packages. The layout shows the summary view and the load distribution.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=90"
      }
     ],
     "recipe": "",
     "note": "Interactive Weight/Density tool for a user-chosen section; the PDF planar layout also shows 'the load distribution' (content not detailed).",
     "searched": "",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Tare exists only for DYNLOAD primary containers converted to packages; no gross-mass output is documented.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: gross, VGM, total weight, tare, container weight. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    },
    "output-per-stop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "tot number of packages per destination",
       "url": "https://www.packvol.com/packvol-en.pdf#page=62"
      },
      {
       "text": "pk number of loaded packages per destination",
       "url": "https://www.packvol.com/packvol-en.pdf#page=62"
      }
     ],
     "recipe": "",
     "note": "Destination grid with totals and loaded counts per destination; packages of a destination can be hidden from the view; PDF can colour by destination. No per-stop contents list or per-stop views in the report are described.",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "After selection, the box is displayed with green color if the position is valid, with red color if any rule is violated.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=57"
      },
      {
       "text": "A short message displayed in the right pane of the status bar and in the view of the load shows the reason that prevents the insertion.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=58"
      }
     ],
     "recipe": "",
     "note": "Manual edits are checked against all rules at insertion (can be disabled). Drag mode checks only collisions and bounds. No violations list for a whole imported plan.",
     "searched": "",
     "corrected": null
    },
    "output-voids": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The tool Report → Measurements → View empty spaces ( ) allows you to visualize the empty spaces.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=63"
      },
      {
       "text": "Use the “min Dim.” text box to control the spaces to visualize.",
       "url": "https://www.packvol.com/packvol-en.pdf#page=63"
      }
     ],
     "recipe": "",
     "note": "Interactive view with a minimum-size filter; not part of exported reports.",
     "searched": "",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Container cost is an input to DYNLOAD mbin only; no cost appears in any documented output.",
     "searched": "Searched the full text of User Guide 4.1.4 (https://www.packvol.com/packvol-en.pdf, all 123 pages, pdf.js extraction) for: cost, price, freight, total cost, report. Also read in full rules.html, features.html, index.html, versions.html (edition comparison table), changelog.html (1.9 to 4.1.4, Jan 2026), tutorials.html, tutorial3.html and pvDLL/index.html.",
     "corrected": null
    }
   }
  },
  {
   "id": "maxload-pro",
   "name": "MaxLoad Pro",
   "vendor": "TOPS Software",
   "url": "https://topseng.com/maxload-cargo-load-planning-optimization/",
   "auditedOn": "2026-09-30",
   "caveat": "The main source is the v4.0 user guide, dated April 2018. Version 4.0 is still the current release, so it was read as current, but later additions may be undocumented. Several behaviours depend on 'Load Rules' profiles the vendor configures and does not publish.",
   "scope": "MaxLoad Pro v4.0 (Windows desktop;",
   "sources": [
    {
     "title": "MaxLoad Pro Cargo Configuration Software User’s Guide, Version 4.0, April 2018 Print Version",
     "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf"
    },
    {
     "title": "MaxLoad Pro Version 4.0 Release Summary (Rev 06152018)",
     "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf"
    },
    {
     "title": "MaxLoad Pro 3.6 Release Summary (June 2013)",
     "url": "https://topseng.com/Documents/Software/MaxLoad%203.6%20Release%20Summary.pdf"
    },
    {
     "title": "MaxLoad Pro Tutorial, Version 4.X",
     "url": "https://topseng.com/Documents/Software/MaxLoad%20Pro%204.X%20Tutorial.pdf"
    },
    {
     "title": "MaxLoad Pro 4.0 Data Import/Export Overview (Import Template reference)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf"
    },
    {
     "title": "Importing a MaxLoad Pro Stack Matrix (updated 2020)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/Importing%20a%20Stack%20Matrix%20(MaxLoad%20Pro%20v4.X).pdf"
    },
    {
     "title": "MaxLoad Stack Matrix tech note (Rev 3-08-2011)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20Stack%20Matrix.pdf"
    },
    {
     "title": "Custom Import tech note (2011)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20Custom%20Import.pdf"
    },
    {
     "title": "Moving Data between MaxLoad Pro and Clipboard (Rev 6-1-2023)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/Moving%20Data%20between%20MaxLoad%20Pro%20to%20Clipboard.pdf"
    },
    {
     "title": "MaxLoad Pro Pallet Import",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20-%20Pallet%20Import%20Template.pdf"
    },
    {
     "title": "Understanding MaxLoad2.INI File (2011)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/Maxload2ini%20Explained.pdf"
    },
    {
     "title": "Data Migration for MaxLoad Pro (2024)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/Maxload-Data-Migration-2024.pdf"
    },
    {
     "title": "MaxLoad Pro System Requirements (2022)",
     "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad-Systems-Requirements%20(2022).pdf"
    },
    {
     "title": "MaxLoad Pro brochure",
     "url": "https://topseng.com/Documents/Marketing/Brochure_MaxLoad%20Pro.pdf"
    },
    {
     "title": "MaxLoad Pro overview page",
     "url": "https://topseng.com/maxload-cargo-load-planning-optimization/"
    },
    {
     "title": "Smart Loading Algorithms",
     "url": "https://topseng.com/maxload-smart-loading-algorithms/"
    },
    {
     "title": "Load Trucks, Containers and More",
     "url": "https://topseng.com/maxload-cargo-load-optimizaton/"
    },
    {
     "title": "MaxLoad Pro Mixed Pallet Loader (MPAS)",
     "url": "https://topseng.com/maxload-mixed-pallet-optimization/"
    },
    {
     "title": "Logistics / 3PL",
     "url": "https://topseng.com/logistics-3pl-maxload-pro/"
    },
    {
     "title": "Customer Service Tools",
     "url": "https://topseng.com/maxload-pro-customer-service-tools/"
    },
    {
     "title": "Warehouse Management",
     "url": "https://topseng.com/maxload-warehouse-management/"
    },
    {
     "title": "MaxLoad Web API",
     "url": "https://topseng.com/maxload-web-api/"
    },
    {
     "title": "TOPS WebApp",
     "url": "https://topseng.com/tops-webapp/"
    },
    {
     "title": "MaxLoad Pro FAQ",
     "url": "https://topseng.com/maxload-pro-faq/"
    },
    {
     "title": "Download Center",
     "url": "https://topseng.com/download-center/"
    },
    {
     "title": "News & Events",
     "url": "https://topseng.com/news/"
    }
   ],
   "passed": 86,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "These values represent the inside (loadable) dimensions of the vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=78"
      },
      {
       "text": "In effect, MaxLoad Pro uses this information to build invisible “walls” representing the absolute parameters of the mixed-pallet load.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=118"
      }
     ],
     "recipe": "",
     "note": "Per vehicle record; English or metric. The vendor states there is no fit tolerance: an item that exceeds the space by any amount is not placed (PDF p. 47).",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Truck Wheel Well » Distance From Front: Specifies the distance from the front of the vehicle location of the wheel wells.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=82"
      },
      {
       "text": "The Advanced Tab allows you to specify corner boxes commonly found in sea van or containers. You can define up to four identical areas along the top area of the vehicle that will be unavailable for loading.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=83"
      }
     ],
     "recipe": "",
     "note": "Whether cargo may be stacked on top of a wheel well or under a corner box is not stated.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Note: Enter the same distance for location 1 and 2 will give only 2 corner boxes; and combining the use of corner boxes with wheel well will allow you a define areas along both the top and bottom of the vehicle to be blocked off for loading.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=83"
      }
     ],
     "recipe": "",
     "note": "Only the fixed kit exists: up to four identical top boxes at two positions plus one wheel-well definition. The definition note names exactly this kit as failing. Multi-zone vehicles are 'Currently not supported' (PDF p. 77).",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'block', 'unavailable', 'exclude', 'zone', 'obstruction', 'area', 'region'; vehicle record fields AL-AT (wheel well, corner boxes) in the import spec; MultiZone tab.",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Minimum Ceiling Clearance: Minimum ceiling clearance is the minimum amount of air space allowed between the top of the cargo and the ceiling of the vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "W Min Vert Clearance Distance For vehicles only. The amount of ceiling clearance required.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=10"
      }
     ],
     "recipe": "",
     "note": "Truck manifests only. Not available in Single-SKU manifests (vendor workaround: lower the vehicle height) and not in tote manifests (PDF p. 128). The editor flags 'Minimum ceiling clearance has been exceeded'.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Drop Off: These fields allow you to define a drop deck (goose neck) trailer, as the one shown here.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=78"
      },
      {
       "text": "(A / E) Distance to Drop Off: The distance from the front wall of the trailer to the drop off point at floor and ceiling level respectively.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=78"
      }
     ],
     "recipe": "",
     "note": "Not applied in Single-SKU manifests.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rail Wagon: Rail wagons have curved top which can be defined using the ceiling parameters.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=79"
      },
      {
       "text": "(C) Width (Inside): The distance of second curve point from the end of the first curve point.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=79"
      }
     ],
     "recipe": "",
     "note": "Passes on the rail wagon, which is clearly a crosswise stepped profile. For ULDs the drop-off fields are defined as distances from the front wall, so which axis of the ULD they describe is not stated; the release summary's ULD illustrations (LD1-LD9, M-1H) were not visible in the extracted text.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "W Front Ceiling Drop/Outside Ceiling Width (rail Wagon) Distance Distance of ceiling drop from front of the vehicle (For Rail Wagon, this is the outside width of the raised ceiling)",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=15"
      }
     ],
     "recipe": "",
     "note": "The rail wagon's curved roof reuses the four ceiling-drop fields, so a lengthwise ceiling step and the crosswise curve cannot both be entered for the ceiling; nothing says the floor drop applies to rail wagons. ULD contours use front/rear floor and ceiling drops, i.e. one side view only. No single unit combining both is shown.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'rail wagon', 'ULD', 'drop off', 'ceiling', 'curve', 'angled', 'contour'; vehicle record fields I-L and W-Z.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "ULD Containers now support angled ceilings and/or floors",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=2"
      },
      {
       "text": "(B / F) Drop Off Depth (Front): The drop off depth in the front of the vehicle at floor and ceiling level respectively.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=78"
      }
     ],
     "recipe": "",
     "note": "The vendor calls ULD contours 'angled', but the only inputs are a distance to the drop point and a drop depth, the same fields that define a rectangular drop-deck step. Whether cargo is placed against a slope or stops at a step is not stated.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'angle', 'angled', 'slope', 'chamfer', 'contour', 'ULD', 'drop off'.",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Number of Bays: Selects from the drop down list the number of bays inside the truck, from 2 up to 32 bays.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=81"
      },
      {
       "text": "Each section can have multiple shelves (up to 2). You can define the thickness of the shelves, where they start and end inside the truck, and how high they are from the floor of the truck..",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=3"
      }
     ],
     "recipe": "",
     "note": "Multi-zone vehicles are documented as 'Currently not supported' (PDF p. 77). Short bays are assumed on both sides (import spec).",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Door Width: For Side Cargo Door, enter the width of the side cargo door. Enter this value in inches or millimeters, depending on the Units selected.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=82"
      }
     ],
     "recipe": "",
     "note": "The only door dimension is the rail car side-door position and width, which sets where loading starts; no door height exists and nothing says items larger than the door are excluded.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'door', 'opening', 'aperture', 'side door', 'rear door'; vehicle record fields M-N.",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Loading Railcar: Select an option – either Use 1/3 or Use Sidedoor – to specify how a railcar will be loaded.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=210"
      },
      {
       "text": "For rail cars with a door located in the middle of the loading space, SKUs will be stacked from front and back towards the center",
       "url": "https://topseng.com/maxload-smart-loading-algorithms/"
      }
     ],
     "recipe": "",
     "note": "The side-door choice is a global setting (Supervisor), not per vehicle. Side-bay trucks are modelled as bays, but choosing which side a pallet goes to is claimed only for the optional MPAS server.",
     "searched": "",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Maximum Overhang: This option is only available for flatbed trucks which allow overhang in the length dimension.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      },
      {
       "text": "The value entered is the total overhang allowed for the load.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      }
     ],
     "recipe": "",
     "note": "No over-height or over-width allowance. How the total is split between the two ends is not controlled; rear-only overhang needs the manual Weight button after solving.",
     "searched": "",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "CalcAllTrucks: Activates the Calculate All Trucks feature, which calculates solutions using as many trucks (the same truck currently selected) as necessary to load a manifest.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=209"
      },
      {
       "text": "With this option enabled, you can quickly tell the total quantity of Vehicles or Pallets (for Pallet Manifest) needed to fulfill an order, as represented by the PicList.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=209"
      }
     ],
     "recipe": "",
     "note": "Global setting, Supervisor login only. Always the same vehicle type. Without it, leftovers go to the Cut List and the user loads them with Next Truck (manual, can switch type).",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MaxLoad Pro allows you to use multiple vehicles at one time. To do so, select more than one vehicle to be analyzed when calculating a manifest.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=93"
      },
      {
       "text": "You will next be asked to select another vehicle from a Next Truck dialog box. You can either select the same vehicle or choose a new one.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=149"
      }
     ],
     "recipe": "",
     "note": "Several selected vehicles give one separate solution each for comparison (scored under objective-alternatives); CalcAllTrucks repeats only the currently selected type; a mixed fleet is built by the user choosing the next vehicle by hand (workaround).",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'multiple vehicles', 'mix of vehicles', 'CalcAllTrucks', 'Next Truck', 'vehicle type', 'fleet'.",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "C Number Numeric Which truck should this vehicle be assigned to? If there are multiple trucks of SKUs, then this would specify that the vehicle was for the nth truck. Normally should be 1 for new manifests.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=11"
      }
     ],
     "recipe": "",
     "note": "No available-quantity input per vehicle type. CalcAllTrucks uses as many copies as needed; the ContainerList 'Number' field assigns a vehicle to the n-th truck position but is not described as a cap.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'available', 'quantity' on vehicles, 'number of vehicles', 'fleet', ContainerList record.",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Loading Priority: When you specify multiple pallet styles to be used in a truck manifest, MaxLoad will use this value to determine which pallet to use unless the SKU does not fit on the preferred pallet. Enter 1 as the first preferred pallet, 2 as second and so on.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=74"
      },
      {
       "text": "You can select multiple pallets but MaxLoad will start using the one with the largest available footprint unless the load fails certain parameter requirements including maximum height or overhang.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=100"
      }
     ],
     "recipe": "",
     "note": "The definition note counts pallet-type loading priority. For vehicles, several selected vehicles only produce separate comparative solutions.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MaxLoad Pro allows you to load multiple totes at one time. To do so, select more than one tote to be analyzed when calculating a manifest.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=127"
      },
      {
       "text": "From the database, find the best tote or master shipcase for an order of mixed products.",
       "url": "https://topseng.com/Documents/Marketing/Brochure_MaxLoad%20Pro.pdf#page=1"
      }
     ],
     "recipe": "",
     "note": "Tote and pallet manifests calculate one solution per selected carton or pallet and list them in the Sol List for the user to choose; no documented step selects the smallest sufficient one or downsizes the last unit.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'best tote', 'optimal shipping carton', 'smallest', 'multiple totes', 'multiple pallets', 'Sol List'.",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Note: Costing and Labor Cost is undocumented features reserved for specific customers. Contact TOPS Technical Support for details.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=209"
      },
      {
       "text": "The Cost tab is not implemented at this time and is grayed out.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=148"
      }
     ],
     "recipe": "",
     "note": "No per-vehicle cost input and no cost-minimising selection is documented. Costing exists as an undocumented feature for specific customers; manifest fields ZipCode1-4 are 'For costing function' and line fields Site 1-4 / Point Value are 'cost related'.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'cost', 'costing', 'price', 'rate', 'ZipCode', 'Site', 'Point Value'.",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "V Max Cargo Wgt Weight Maximum weight allowed in load.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=10"
      }
     ],
     "recipe": "",
     "note": "No percentage cap on volume or weight. The manifest record carries an absolute 'Max Cargo Wgt', and the ceiling clearance lowers usable height, but neither is a fill percentage.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'percent', 'percentage', 'fill', 'utilization', 'maximum', 'cap', 'Max Cargo Wgt'.",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing sets a minimum fill below which a vehicle or pallet is not used. The 3PL page discusses load-factor thresholds only as a problem MaxLoad replaces with actual calculation.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'minimum', 'min fill', 'underfilled', 'threshold', 'cut off'.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "E Pallet String (32) Name of the pallet to Unitize this SKU onto.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=5"
      },
      {
       "text": "Pallet: The Pallet field requires you to select a specific pallet to be used in creating the unitload.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=58"
      }
     ],
     "recipe": "",
     "note": "Passes only through the definition note's 'choosing the pallet type per item'. Mixed pallets use the pallet set chosen per manifest, not per item. Nothing limits which vehicles a SKU may go into.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "Now you can click, drag and move SKUs directly between the two vehicles.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=4"
      },
      {
       "text": "When this option is checked, MaxLoad Pro will keep SKUs with the same order number on the same truck.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=99"
      }
     ],
     "recipe": "",
     "note": "No input ties an item or order to a particular (n-th) vehicle. Keep Order on Same Truck keeps an order together but does not choose which truck. Moving items between vehicles in the split-screen editor is manual placement.",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Autosize: Check option to have MaxLoad Pro automatically cut the size of the slipsheet down to the outside dimensions of the unitload.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=74"
      },
      {
       "text": "» Pallet Style: Select from the drop list the pallet style to be used for the bundle. The size of the pallet will be the same as the footprint of the bundle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=71"
      }
     ],
     "recipe": "",
     "note": "Slipsheets can be trimmed to the unitload and bundle pallets are sized to the bundle footprint, but no container, carton or pallet is dimensioned within user-set minimum and maximum ranges. The L-shape bundle 'Optimize' sizes a bundle of items, not a container.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'autosize', 'size', 'optimize bundle', 'dimension range', 'minimum', 'maximum' on totes, pallets and vehicles.",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You’re required to enter values for Length, Width, Height and Weight for the SKU you’re defining.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "This chapter explains how to use MaxLoad Pro to load a truck manifest with multi-size cases or multiple SKUs into a container, the most commonly used function in MaxLoad Pro.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=91"
      }
     ],
     "recipe": "",
     "note": "Shipcase SKUs with L/W/H/weight and a quantity per manifest line. No scale limit on item types or counts is documented. Weight may be zero, but then weight and axle figures are inaccurate.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Drum: A cylindrical object to be referred to as a single item.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=49"
      },
      {
       "text": "• Diameter (Drum): When you are defining a drum style SKU the length width dimensions get replaced by diameter. Here you enter the width of the cylindrical SKU.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      }
     ],
     "recipe": "",
     "note": "Drum SKU type with diameter and height. In the import format, SubType 3 'Round Drum' is required for staggered patterns.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Tight: Loads as many cylindrical SKUs as possible along the width. • Spread: This is to spread the round SKUs during loading. • Pyramid: This is for loading the cylindrical SKUs lying in length orientation in the truck, stacking in a pyramid shape.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=98"
      },
      {
       "text": "Staggered Applicable to Drum SKUs, this pattern allows more drums to be packed per layer through staggering.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=59"
      }
     ],
     "recipe": "",
     "note": "The chronology also lists 'improved nested loading of mixed size rolls' (v2.7x, PDF p. 14) without detail.",
     "searched": "",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When loading trapezoidal SKUs into a container, MaxLoad Pro will provide nesting capabilities to maximize your cubic space utilization.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=9"
      },
      {
       "text": "Flip Layers: This option applies to floor loads only. When enabled, the SKUs will be stacked with alternate layers flipped as shown below.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=51"
      }
     ],
     "recipe": "",
     "note": "Trapezoid nesting with flipped layers is the tapered-items case in the definition note. For L-shapes the text says only that a bundle size is optimised, not how the items fit together.",
     "searched": "",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If checked, the SKU will be loaded as a single item and MaxLoad will use the overall dimension (60x40x42 in this example) of the SKU to calculate the space occupied by this unit. The space above the seat will not be treated as loadable space.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=71"
      }
     ],
     "recipe": "",
     "note": "For an unbundled L-shape the vendor states the space above the seat is not usable. Bundling combines L-shapes with each other only. Nothing places other cargo into a shaped item's free space.",
     "searched": "",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A SKU Type Numeric 0 – Unknown 1 – Carton 2 – Tray 3 – Shipcase 4 – Bag 5 – Tub 6 – Drum 7 – Bottle",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=5"
      }
     ],
     "recipe": "",
     "note": "Shapes are limited to box, cylinder, L-shape, trapezoid and pallet loads. The import spec lists tray, bag, tub, bottle, oval and bag sub-types, but the guide describes no behaviour for them and the user-facing SKU styles do not include them.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'shape', 'CAD', 'mesh', 'irregular', SKU Type and SubType codes.",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The MPAS page's 'load bulk trucks by stop or route' refers to truckloads of pallets, not shapeless cargo.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'bulk', 'volume', 'liquid', 'loose', 'amorphous'.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The guide states the opposite tendency: no fit tolerance at all ('MaxLoad Pro, however, will not', PDF p. 47).",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'compress', 'squeeze', 'soft', 'bulge', 'tolerance', 'fudge factor'.",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can set up to three (3) bundle sizes for the SKU. MaxLoad will load them based on the quantity and space available.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=69"
      },
      {
       "text": "However, if your order calls for 70 cases of peanut butter, MaxLoad Pro will load one complete unitload (44 cases), and will either load the remaining 26 cases on the floor or as part of a mixed-pallet (if the Mixed Pallet column is checked).",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=107"
      }
     ],
     "recipe": "",
     "note": "Bundles need DoBundle=True in Loadrules.ini and are not used when unitloads or mixed pallets are on. The piece-count field is only arithmetic and does not count here.",
     "searched": "",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For example, in many cases, packaging for certain liquids is marked “This End Up ”. This end is usually the top of the shipcase – where the case flaps are located – and therefore you’ll notice that the dimension designated vertical is the height.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "If your product displays this characteristic, height would be the only dimension allowed vertical.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      }
     ],
     "recipe": "",
     "note": "Per SKU Allowed Vertical checkboxes. A unitload 'Multi-Layer' pattern may let the top pallet layer ignore this (PDF p. 59, import AL).",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For example, certain SKU’s can be loaded only by a forklift from one direction and this can be defined within MaxLoad.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=52"
      },
      {
       "text": "» By Length: Loads the length of the SKU parallel with the length of the trailer. » By Width: Loads the width of the SKU parallel to the length of the trailer. » Best Fit: Shows no preference",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=52"
      }
     ],
     "recipe": "",
     "note": "Per SKU, and separately for unitloads, totes and on-the-fly mixed pallets.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can check any combination of dimensions to be vertical, or you can designate only one dimension to be allowed vertical.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "By allowing SKUs to load in all orientations, whether to stand along its height, width or length, more placement possibilities will be considered to achieve higher cubic efficiency.",
       "url": "https://topseng.com/maxload-smart-loading-algorithms/"
      }
     ],
     "recipe": "",
     "note": "All three dimensions allowed vertical plus Best Fit horizontal orientation.",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Allowed Vertical checkboxes tell MaxLoad Pro which dimension is allowed vertical when loading. Check the appropriate box to designate that dimension as vertical.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "O Length Vert Y/N Y - Length is allowed Vertical (End Stack) P Width Vert Y/N Y - Width is allowed Vertical (Side Stack)",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=5"
      }
     ],
     "recipe": "",
     "note": "Allowing width vertical (side) but not length vertical (end) expresses 'on its side, not on its end'.",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Into Vehicle: MaxLoad Pro gives you options as to how an item may be loaded into a vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=52"
      }
     ],
     "recipe": "",
     "note": "Three vertical-axis checkboxes plus one Load Into Vehicle setting (By Length / By Width / Best Fit) that applies to all allowed verticals together. A subset such as 'upright lengthwise only plus on its side crosswise only' cannot be expressed.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'orientation', 'allowed vertical', 'custom orientation', 'rotation', import fields O-Q, W, Z.",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When the SKU is not being loaded on the floor, MaxLoad Pro will first attempt to load an SKU with its preferred dimension vertical. If this is not possible, it will use any of the other Allowed Vertical dimensions.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "Unless it is physically not possible, the preferred vertical dimension will always be used when floor-loading an item within a vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=265"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Preferred Vert: This field is defined as the dimension that must be vertical when loading on the floor, if there is such a restriction for your product.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "AL Multi-Layer Y/N Note 1 - Allow top layer to be any dimension vertical regardless of dimensions allowed vertical for this SKU (because it’s on top).",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=8"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Stack Height (On Base): Defines the number of layers high the same SKU can be safely loaded on its base.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      },
      {
       "text": "• Maximum Stack Height (On Side): Defines the number of layers high the same SKU can be loaded on its side.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "The side-loaded flag's direction differs between the guide (this SKU not on top of side-loaded items) and the import spec (nothing on top of this SKU when side-loaded); either form passes this row.",
     "searched": "",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To change the orientation of the SKU, click on the face of the SKU that currently faces up. MaxLoad Pro rotates the SKU 90 degrees.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=159"
      }
     ],
     "recipe": "",
     "note": "Only orthogonal orientations; even the editor rotates in 90-degree steps.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'angle', 'tilt', 'lean', 'rotate', 'degrees'.",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Pyramid: This is for loading the cylindrical SKUs lying in length orientation in the truck, stacking in a pyramid shape.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=98"
      },
      {
       "text": "The Allowed Vertical checkboxes tell MaxLoad Pro which dimension is allowed vertical when loading.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      }
     ],
     "recipe": "1. Define the item as a Drum SKU with diameter and height (User Guide PDF p. 49-50). 2. Use the per-SKU Allowed Vertical checkboxes to allow only the height vertical (upright) or also the other dimension (lying) (User Guide PDF p. 50). 3. For lying cylinders choose the Pyramid staggered option, documented as loading cylinders 'lying in length orientation' (User Guide PDF p. 98).",
     "note": "Lying cylinders clearly exist (Pyramid, 'on their side, in horizontal orientation', PDF p. 122) and Maximum Overhang Diameter applies to drums.",
     "searched": "",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» All/None: Assigned to SKUs which can be stacked on top of all items but nothing can be stacked on top of it.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      },
      {
       "text": " Note: When stacking same SKUs, MaxLoad will refer to Maximum Stack Height instead of the Stack Code for load solutions.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "For identical units the Maximum Stack Height overrides the stack code, so a fully non-stackable SKU also needs Max Stack Height 1.",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Must Be Stacked On Floor: MaxLoad Pro will disregard any solutions in which the SKU is not placed on the floor.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      }
     ],
     "recipe": "",
     "note": "Per SKU, unitload and tote; soft variant 'Prefer On Floor' also exists. For on-the-fly mixed pallets the guide describes the two floor options in reverse of their names (PDF p. 100).",
     "searched": "",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Must Not Be Stacked On Floor: MaxLoad Pro disregards any solutions in which the SKU is placed on the floor.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      }
     ],
     "recipe": "",
     "note": "Per SKU, unitload and tote; soft variant 'Prefer On Top'.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Stack Height (On Base): Defines the number of layers high the same SKU can be safely loaded on its base.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      },
      {
       "text": "For example, if you can safely load only one other unitload on top of the unitload you’re defining, Max Stack Height would be two.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=60"
      }
     ],
     "recipe": "",
     "note": "Whole numbers, max three characters. Separate on-base and on-side values; unitloads and totes have their own. Takes precedence over the stack matrix and the stack weight for like-SKU stacks.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Stack Limit: (Not Implemented) This parameter works with MaxLoad Load Rules and determines how many total (same of different) SKUs can be allowed in a stack.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=55"
      }
     ],
     "recipe": "",
     "note": "Only same-SKU stack height is implemented.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Height, Weight and Overhang: Maximum Height and Maximum Weight are self- explanatory.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=58"
      }
     ],
     "recipe": "",
     "note": "Height limits exist only for a unitload or mixed pallet as a whole and as a vehicle-wide ceiling clearance; no per-item maximum placement or stacking height in length units in the vehicle.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'maximum height', 'height limit', 'max stack height', 'tier', 'layer', 'ceiling'.",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Stack Weight: Defines the maximum weight that can be placed on an individual SKU.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      },
      {
       "text": "By the nature of this calculation, a stack of SKUs will always be limited to the maximum stack weight of the product on the bottom of the stack.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      }
     ],
     "recipe": "",
     "note": "Not checked within a stack of identical SKUs (see stacking-bearing-same-item). No scale limit is documented.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Max Stack Weight is a plain weight per item. The glossary defines 'Footprint' but no rule uses it for bearing.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'pressure', 'area', 'per square', 'contact', 'footprint', 'stacking strength'.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "That is, when building a placement of like SKUs, MaxLoad Pro will only take the defined Maximum Stack Height into consideration when determining how to build the placement.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      },
      {
       "text": "Is a stack of five computers a legal placement? Yes – regardless of the fact that the bottom computer will be supporting 120 pounds.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=55"
      }
     ],
     "recipe": "",
     "note": "Same statement for totes (PDF p. 88).",
     "searched": "",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Load Floor to Ceiling: MaxLoad first takes the largest, heaviest SKU it can find, starting at the base of the tote and moving upwards.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=129"
      },
      {
       "text": "When stack order is important among a mix of heavy, light, fragile items in the same shipment, assign a stack code to each SKU, then define the stack relation in a matrix",
       "url": "https://topseng.com/maxload-smart-loading-algorithms/"
      }
     ],
     "recipe": "",
     "note": "No weight-ordering rule. The tote and pallet Floor-to-Ceiling algorithms load 'largest, heaviest' or 'largest, strongest' first as a built-in order, and heavy-on-light is expressed by the user through stack codes (a class matrix, scored separately).",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'heavy', 'heavier', 'light', 'weight order', 'strongest', 'Floor to Ceiling'.",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Location: Check – Light, Medium, or Heavy- depending on which SKUs can stack on top of the SKU being defined and which cannot.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=66"
      }
     ],
     "recipe": "",
     "note": "No numeric index. One step list on PDF p. 66 describes a 'Location' field as Light/Medium/Heavy for stacking, which conflicts with the 'Location (Not Implemented) front, center or rear' definition on PDF p. 55; it has no stated ordering rule. Heavy/light classes are otherwise stack codes in the matrix.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'index', 'strength', 'fragility', 'Light, Medium', 'crush'.",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "However, if each product you ship is unique in regard to how it can be stacked, you may want to define a unique stack code for each individual SKU.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      },
      {
       "text": "The Yes/No indicate whether a SKU with the stack code for the corresponding column can be loaded on top of a SKU with the stack code for the corresponding row.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=56"
      }
     ],
     "recipe": "",
     "note": "Class matrix, and each SKU may get its own class. Vendor guidance: keep to about 5 (2011) or no more than 20 categories for non-ADO installs (2020). For identical SKUs the Max Stack Height overrides the matrix.",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Force Corner Support: Allows you to activate corner support when placing SKUs on top of other SKUs. This involves defining the length and width of the corner support.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=209"
      },
      {
       "text": "Corner Posts: Edge protectors found on the corner of unitloads, used to force corner support.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=262"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Overhang: Maximum Overhang represents the distance the SKU can overhang the SKU placed beneath it.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=50"
      },
      {
       "text": "• Maximum Overhang Height: Enter the maximum number of inches the SKU can overhang the SKU placed beneath it when it is placed on its side.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=65"
      }
     ],
     "recipe": "",
     "note": "Per item: separate length, width, height (on side) and diameter (drums) values.",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the difference in height of the two spaces is less than or equal to this value (in English or Metric units), MaxLoad Pro joins together the offending gap, assuming that you will pad or brace the shorter space to bring it up to the height of the taller space.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "Maximum Vertical Gap: The maximum difference in height between two surfaces that can still be considered level or flat.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=264"
      }
     ],
     "recipe": "",
     "note": "Per truck, pallet and tote manifest and for on-the-fly mixed pallets.",
     "searched": "",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Trapezoid nesting and L-shape bundles are shape features (cargo rows); no nesting height increment per extra unit and no load-bearing only on a smaller or open top is described.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'nest', 'nesting height', 'open top', 'top shape', 'taper', 'trapezoid', 'L-shape'.",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allow Partial Unitloads: Check this option to place same SKUs not enough to make a full unitload on their own pallets (instead of as loose items) but not mixing them together with other SKUs to create mixed pallets.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=99"
      },
      {
       "text": "AO Load Layers Y/N Y - For mixed pallet manifests, Attempt to load complete layers of SKUs, as defined in the individual UnitLoads for those SKUs, before loading loose cases.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=10"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Activating this option tells MaxLoad Pro to load all products with the same SKU number together. The Keep Like SKUs Together option takes precedence over the Keep Orders Together checkbox",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "N Group Like SKUs Y/N Y - Attempt to keep SKUs with the same stop off or priority",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=9"
      }
     ],
     "recipe": "",
     "note": "Per manifest, applied within each stop-off or priority. The import spec phrases it as 'Attempt'; the vendor warns it may reduce cube utilisation.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Keep Same Orders Together: Check the box to keep the same orders together when loading. This field is directly linked to the Order# field in the Manifest List.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "SKUs are loaded together first by their stop-offs, and then within each stop, SKUs are grouped and loaded by Priority groups.",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      }
     ],
     "recipe": "",
     "note": "Truck, pallet and tote manifests. The import spec calls it an attempt ('Attempt to keep items ... near each other').",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When this option is checked, MaxLoad Pro will keep SKUs with the same order number on the same truck.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=99"
      },
      {
       "text": "Keep orders in same vehicle.",
       "url": "https://topseng.com/Documents/Marketing/Brochure_MaxLoad%20Pro.pdf#page=2"
      }
     ],
     "recipe": "",
     "note": "Truck manifests, Algorithm Options. What happens to an order larger than one vehicle is not stated.",
     "searched": "",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "If there’s not enough room to load the entire stop-off onto the vehicle, MaxLoad Pro will remove all SKUs that made up the stop-off, and will place all SKUs for the stop-off onto the Cut List.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=106"
      },
      {
       "text": "If the first stop-off will not fit into the selected vehicle, MaxLoad Pro will break up the stop-off in an effort to load something.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=106"
      }
     ],
     "recipe": "",
     "note": "Orders have no all-or-nothing rule. Giving each order its own stop-off number would leave an unfitting order out whole (except the first stop), but that uses the delivery-sequence feature against its purpose and also forces positional ordering.",
     "searched": "",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Some shippers cannot mix stop-offs and will build a physical bulkhead of plywood bracing between SKUs of two separate stop-offs. In this case, you would key in a value of zero in this field, which tells MaxLoad Pro to place the next stop-off on the floor, regardless of the fact that there is enough room to load on top.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      },
      {
       "text": "users can specify to have zero space overlap between adjacent stops or to allow certain degrees of overlap to maximize cube utilization.",
       "url": "https://topseng.com/maxload-smart-loading-algorithms/"
      }
     ],
     "recipe": "",
     "note": "Groups are stop-offs or priorities, not orders. The bulkhead's thickness is not accounted for; 'Show Stopoff Dividers' only draws lines.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "shared-mechanism",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "by default, MaxLoad Pro WILL allow different Stop Off groups to stack on top of one another inside a trailer, in order to maximize space utilization. However, if your LTL customers would prefer for this to not occur, you can turn on a Load Rule that prohibits mixed stop stacking.",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      },
      {
       "text": "In this case, you would key in a value of zero in this field, which tells MaxLoad Pro to place the next stop-off on the floor, regardless of the fact that there is enough room to load on top.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      }
     ],
     "recipe": "1. Assign each group a stop-off (or priority) number per manifest line (User Guide PDF p. 106). 2. Set Maximum Priority Overlap to zero, documented as placing the next stop-off on the floor even when there is room on top (User Guide PDF p. 96).",
     "note": "The dedicated Load Rule that 'prohibits mixed stop stacking' is marketing-only (Load Rules are TOPS-configured and unpublished), so it counts only as claimed. Zero overlap is broader: it forbids any lengthwise overlap, not just stacking.",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only the opposite rule exists (Keep Order on Same Truck). Splitting items into separate manifests would be a workaround outside the planner.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'separate', 'incompatible', 'not together', 'segregat', 'compatib', 'same truck', 'Family'.",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Family: (Not implemented) This field allows you to specify if the SKU is categorized as Frozen, Cooled, Dry and Unknown. MaxLoad uses this information to make sure SKU’s of the same family will be are loaded together at specific locations.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=51"
      }
     ],
     "recipe": "",
     "note": "No separation distance or not-above rule between items. The Family field (grouping, not separation) is not implemented. The stack matrix only bans direct stacking, which does not pass.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'distance', 'separation', 'apart', 'above', 'Family', 'segregat'.",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing on dangerous goods.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'hazard', 'hazmat', 'dangerous', 'DG', 'IMDG', 'class', 'segregation'.",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Point Value: This field displays cost related parameters, please contact TOPS for more information.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=108"
      }
     ],
     "recipe": "",
     "note": "No per-vehicle cap on value, points or piece count. Point Value is an undocumented cost-related field; piece count is display only.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'value', 'point', 'piece count', 'cap', 'limit', 'maximum' per vehicle.",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing caps distinct SKUs or orders per vehicle or pallet.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'number of SKUs', 'distinct', 'orders per', 'maximum SKUs', 'mix'.",
     "corrected": null
    },
    "between-ratio": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For example, to load the container with SKUs A, B and C in the ratio of 2:3:1, enter in the Qty column 2, 3 and 1 for SKU-A, SKU-B and SKU-C respectively.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "You will not get a solution if MaxLoad cannot load all SKUs in the lowest multiple of the specified ratios.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      }
     ],
     "recipe": "",
     "note": "If even the lowest multiple does not fit, no solution is returned. The chronology also lists 'Loading by Percentage' (v2.7x, PDF p. 14).",
     "searched": "",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "BA Bundle Count 1 Numeric Number of items in a bundle (first preference)",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=6"
      }
     ],
     "recipe": "",
     "note": "Bundles and unitloads group fixed counts, but leftovers are floor-loaded or go on mixed or partial pallets; no rule restricts an item to multiples of N per vehicle.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'multiple', 'batch', 'bundle count', 'in sets', 'lot'.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Vehicle: Completely loads the container or pallet. If you’ve partially edited the load, MaxLoad Pro will determine the rest of the load mathematically, based on the placement of existing SKUs.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=154"
      },
      {
       "text": "MaxLoad Pro Editor can be used to edit a solution built by MaxLoad Pro, manually build a load starting with an empty container or a pallet, and manually edit a partially-built manifest.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=151"
      }
     ],
     "recipe": "",
     "note": "Truck, pallet and tote manifests (no editing of Single-SKU). Recalculate discards edits; 'Save to Lib' keeps an edited load as a solution when the load is repeated.",
     "searched": "",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "[PlaceList] Use by calculated loads to record the location of each loaded item in a container/pallet.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=3"
      }
     ],
     "recipe": "",
     "note": "The PlaceList import/export record stores positions of a calculated load, but its fields are not documented and nothing says the planner keeps imported positions fixed while loading the rest.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'PlaceList', 'position', 'coordinate', 'XFront', 'fixed', 'pre-load'.",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Location: (Not Implemented) This parameter works with MaxLoad Load Rules and determines where inside the vehicle the SKUs will be placed - front, center or rear.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=55"
      },
      {
       "text": "BD Load Location Numeric 0 – Load in front 1 – Load in middle 2 – Load in rear",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=6"
      }
     ],
     "recipe": "",
     "note": "The v4.0 manual marks the per-SKU Location field not implemented. A Load Location import field and 'location codes' in Load Rules suggest it may work through TOPS-configured, unpublished Load Rules. The MPAS page claims pallets can be assigned to one side of a side-bay truck.",
     "searched": "",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Blocked areas exist only on the vehicle record (wheel wells, corner boxes); nothing per plan or per item. Ceiling clearance is scored under equipment-height-cap.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'exclude', 'keep clear', 'aisle', 'door', 'region', 'zone', 'reserve'.",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Front to Back: Check the box to load the manifest as high as possible and as far forward as possible.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=97"
      },
      {
       "text": "Flatbed: Check the box to distribute the load as if loading a flatbed truck. Loading starts from the center and spread outwards.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=97"
      }
     ],
     "recipe": "",
     "note": "Several can be selected at once, each giving its own solution. Floor to Ceiling does not handle stop-offs or priorities (import spec).",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Floor to Ceiling: A specific algorithm used by MaxLoad which loads a layer of SKUs across the entire floor before it allows to create a second layer.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=263"
      },
      {
       "text": "» Prefer On Floor: MaxLoad Pro will place the SKU on the floor if given the choice of either placing it on the floor or on top of another SKU.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      }
     ],
     "recipe": "",
     "note": "Floor to Ceiling 'does not handle multiple stop off’s or priorities' (import spec PDF p. 10).",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can also use this to accommodate the distance needed to maneuver forklifts when loading the vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "• Slack: Define extra space around the bundle to accommodate for clamp or similar tools for maneuvering.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=71"
      }
     ],
     "recipe": "",
     "note": "Handling is covered only indirectly: ceiling clearance for forklift room, slack around bundles for clamps, and forcing lengthwise or widthwise orientation for one-direction forklift entry. No maximum reach or block depth, and no turning check.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'forklift', 'reach', 'depth', 'clamp', 'turn', 'maneuver', 'handling'.",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Slack: Define extra space around the bundle to accommodate for clamp or similar tools for maneuvering. If slacks are added to the bundle length and width, the pallet will be sized accordingly to include these slacks.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=71"
      },
      {
       "text": "» Top: Add extra space to the top of the bundle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=71"
      }
     ],
     "recipe": "",
     "note": "Only for SKUs loaded as bundles, which need DoBundle=True in Loadrules.ini and do not apply when unitloads or mixed pallets are used. No plan-wide gap between all items. Tote 'slack' is packing material inside a carton.",
     "searched": "",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Securing is addressed only by dunnage/air-bag void detection after solving (output-voids) and by the 'pad or brace' assumption behind Maximum Vertical Gap.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'shift', 'support', 'brace', 'backed', 'secure', 'lateral', 'against the wall'.",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum weight: This refers to the maximum cargo weight allowed in the vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=78"
      },
      {
       "text": "• Maximum Weight Incl. Pallet: MaxLoad Pro will not calculate any solutions that violate the defined maximum weight for the mixed pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=117"
      }
     ],
     "recipe": "",
     "note": "Enforcement is stated explicitly for mixed pallets; for vehicles the field is the 'maximum cargo weight allowed' and the editor flags 'Maximum vehicle weight has been exceeded'.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "You can also set weight limits per shelf.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=3"
      },
      {
       "text": "• Wgt: This is the weight of the shelf in the section.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=84"
      }
     ],
     "recipe": "",
     "note": "No weight cap per side bay or per trailer of a double trailer is documented.",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "shared-mechanism"
     ],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "Weight Segments: This function establishes weight limits for up to 24 segments inside the vehicle and gives better control over weight distribution of the load.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=84"
      },
      {
       "text": "In the Solution View, the resulted weight per segment is provided on the upper left hand corner. Any segment with weight over the limit will be highlighted in red.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=104"
      }
     ],
     "recipe": "",
     "note": "Only one weight-limit mode per manifest (None / Weight Limit / COG Deviation / Segment Wgt Limit).",
     "searched": "",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Segment limits (equal lengthwise sections) are the closest; no weight-per-length rule.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'per foot', 'per meter', 'linear', 'density', 'distribution', 'segment'.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "shared-mechanism"
     ],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "With Weight Limit defined, MaxLoad will try to load the order within these limits. Violations will be highlighted in red so users can edit the load manually to comply with weight restrictions.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%203.6%20Release%20Summary.pdf#page=3"
      },
      {
       "text": "By default MaxLoad will calculate a load based primarily on cubic space efficiency, but you can change your settings so that MaxLoad will not calculate any load plan that violates these axle weight limits",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      }
     ],
     "recipe": "",
     "note": "Tractor steer/drive axles are not implemented. Axles can be moved by hand after solving (Weight button).",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Axle Count: Enter the number of axles for the vehicle. You can enter a maximum of three axles in this field.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=81"
      },
      {
       "text": "S Axle 3 Numeric Distance of third axle from the front of the vehicle.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=15"
      }
     ],
     "recipe": "",
     "note": "Limits are not per group: one kingpin limit and one shared axle limit per region. The load statistics list 'King Pin, Axle 1 and 2'.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Wgt: Enter the tare weight of the king pin and axles.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=82"
      },
      {
       "text": "• Tare Weight: Specify the tare weight of the vehicle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=81"
      }
     ],
     "recipe": "",
     "note": "Tare per reaction point (kingpin and each axle) plus total vehicle tare.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Tractor Weight: The tractor weight is not implemented. Please disregard steer axle, drive axle and tractor selection.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=103"
      }
     ],
     "recipe": "",
     "note": "The kingpin load is reported, but it is not passed on to tractor axles.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "shared-mechanism"
     ],
     "notCountedBecause": [
      "concedes-gap",
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "Weight Limit: Select to use weight limit based on pre-defined weight data based on regions. Users can set weight limits for the kingpin and axles based on different regions of the country.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=102"
      },
      {
       "text": "» Region: Enter the name of the new region e.g. Texas.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=103"
      }
     ],
     "recipe": "",
     "note": "No jurisdictions are supplied with the product, no axle-spacing (bridge formula), tandem/tridem or permit rules, tractor axles not implemented.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The COG deviation option allows you to generate loads such that the center of gravity (COG) falls within a +/- distance along the length, width and height dimensions from the center of the vehicle. This feature is not implemented. Please contact TOPS for latest update.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=103"
      }
     ],
     "recipe": "",
     "note": "Also 'COG Deviation – not implemented' in the v3.6 release summary.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The COG deviation option allows you to generate loads such that the center of gravity (COG) falls within a +/- distance along the length, width and height dimensions from the center of the vehicle. This feature is not implemented. Please contact TOPS for latest update.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=103"
      }
     ],
     "recipe": "",
     "note": "Width is part of the unimplemented COG Deviation window.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The COG deviation option allows you to generate loads such that the center of gravity (COG) falls within a +/- distance along the length, width and height dimensions from the center of the vehicle. This feature is not implemented. Please contact TOPS for latest update.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=103"
      }
     ],
     "recipe": "",
     "note": "Height is part of the unimplemented COG Deviation window.",
     "searched": "",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Load Floor to Ceiling: Check the box to distribute the load evenly across the entire floor space of the transit vehicle, thus balancing the load more evenly between its axles.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=97"
      },
      {
       "text": "while SKUs will be evenly stacked from floor to ceiling for flat beds, making center of gravity calculation a priority.",
       "url": "https://topseng.com/maxload-smart-loading-algorithms/"
      }
     ],
     "recipe": "",
     "note": "Floor to Ceiling ignores stop-offs and priorities.",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "COG is computed for the load only; SKUs have no centre-of-gravity input.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'center of gravity', 'COG', 'centre', 'offset', 'eccentric', SKU record fields.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "All SKUs with a priority of “1” will be loaded before SKUs with a priority of “2,” which are loaded before SKUs with a priority of “3,” and so on. This means that all SKUs with a Priority of “1” will generally be loaded before (and therefore in the front of the vehicle) SKUs with a lower priority value.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=106"
      },
      {
       "text": "I Priority Numeric Lowest priority is loaded first.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=12"
      }
     ],
     "recipe": "",
     "note": "The guide's p. 94 sentence ('assigned a high priority number ... loaded before') reads backwards; the worked text and import spec agree that 1 is loaded first. Floor to Ceiling ignores priorities.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If there’s not enough room to load all SKUs with a particular priority value, MaxLoad Pro will load as much of the priority as possible, leaving the remaining SKUs to be placed on the Cut List. In other words, priorities can be split-up, unlike stop-offs.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=107"
      },
      {
       "text": "suspect that their full manifest list may not be able to fit in the container, and want to ensure that the most important goods make it into the load before less important goods.",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      }
     ],
     "recipe": "",
     "note": "Priority doubles as sequence (front first).",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Fill Item: When checked, this option instructs MaxLoad Pro to use the referenced SKU as fill items, meaning this SKU will be used to fill all available empty space in the container after the other SKUs (non fill items) are loaded.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=108"
      },
      {
       "text": "However, if you specify more fill items than required to fill the void space, they will be placed in the CutList BUT the Next Truck button will not be available.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=108"
      }
     ],
     "recipe": "",
     "note": "Per manifest line (PickList 'FillItem'). Surplus fill items do not trigger another vehicle. Whether fill items respect stop sequence is not stated.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you enter “1” in this column, MaxLoad Pro will place this item at the end of the trailer, where it can be easily reached at the first stop. A stop-off value of “2” places the item further forward in the vehicle, accessible at the second stop-off.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=106"
      },
      {
       "text": "Stop & Priority: MaxLoad Pro also supports priorities within each stop. Check this option to enforce this functionality.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=94"
      }
     ],
     "recipe": "",
     "note": "Priorities within stops supported. Stop-off 0 is never loaded. Floor to Ceiling does not handle stops.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Some shippers cannot mix stop-offs and will build a physical bulkhead of plywood bracing between SKUs of two separate stop-offs. In this case, you would key in a value of zero in this field, which tells MaxLoad Pro to place the next stop-off on the floor, regardless of the fact that there is enough room to load on top.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      },
      {
       "text": "This is a logical loading method for containers that will make multiple stops for unloading, as you do not want to have to unpack an entire trailer to unload one order, then repack it again before moving on to the next stop location.",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      }
     ],
     "recipe": "",
     "note": "With a non-zero overlap, stops are deliberately mixed along the length; by default different stops may stack on each other.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This field allows you to define the distance inside the container that MaxLoad Pro will “mix” items of a different priority or stop-off.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=95"
      },
      {
       "text": "For example, if maximum priority overlap set to 30 inches, MaxLoad Pro will place the next priority on top of the previous priority, with the front of the lower priority protruding past the end of the higher priority freight by a maximum of 30 inches.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      }
     ],
     "recipe": "",
     "note": "Distance, per manifest (import 'Max Overlap'); also in pallet and tote manifests. Measured on the leading edge of the item (glossary).",
     "searched": "",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Stops are drop-offs only.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'pickup', 'pick-up', 'origin', 'collect', 'load at stop'.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MaxLoad Pro supports multiple-vehicle loading. Loads that won’t fit into your first truck can be automatically loaded to next trucks. What will fit or not fit will depend on your load priorities, stop-offs, stacking restriction or on which algorithms you choose to load your products.",
       "url": "https://topseng.com/maxload-cargo-load-optimizaton/"
      },
      {
       "text": "CalcAllTrucks: Activates the Calculate All Trucks feature, which calculates solutions using as many trucks (the same truck currently selected) as necessary to load a manifest.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=209"
      }
     ],
     "recipe": "1. Assign stop-offs per manifest line; a stop that does not fit goes whole to the Cut List (User Guide PDF p. 106). 2. Enable CalcAllTrucks so the Cut List is loaded into further vehicles of the same type (User Guide PDF p. 209), or load the Cut List with Next Truck (PDF p. 149). 3. The Truck Summary and Load By Stop-Off reports give stop details per vehicle (PDF p. 183, 189).",
     "note": "Truck summary 'with stop off details' is listed on the feature page.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "MaxLoad Pro will not partially load a stop-off.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=106"
      },
      {
       "text": "If the first stop-off will not fit into the selected vehicle, MaxLoad Pro will break up the stop-off in an effort to load something.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=106"
      }
     ],
     "recipe": "",
     "note": "Exception: the first stop is split if it alone does not fit. Priorities, unlike stops, can be split.",
     "searched": "",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Days Range: This option is not implemented. Please contact TOPS Tech Support team for more information or assistance.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=96"
      }
     ],
     "recipe": "",
     "note": "The intended behaviour is described (items within the Days Range loaded, rest to the next truck), but it is not implemented. Delivery Date on the Comments tab is 'For reference'.",
     "searched": "",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Height, Weight and Overhang: Maximum Height and Maximum Weight are self- explanatory. These fields allow you to assign the maximum height of the unitload, as well as the maximum allowable weight. These height and weight values include the pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=58"
      },
      {
       "text": "• Dimensions: Enter the length, width, height and weight of the pallet or slipsheet you’re defining.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=73"
      }
     ],
     "recipe": "",
     "note": "Pallet database with styles (stringer, block, Euro, Chep, slipsheet, none), dimensions, deck height and weight; used for unitloads, mixed pallets and pallet manifests (default mixed pallet height 55 in).",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "After you’ve completed the General and Options tabs, you’re ready for MaxLoad Pro to generate the unitload solutions.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=61"
      },
      {
       "text": "• The case dimension designated as vertical • The length, width, height and weight of the unitload • The type of pattern used to build the unitload • Number of cases per layer • Number of layers per unitload",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=61"
      }
     ],
     "recipe": "",
     "note": "Only shipcases and drums can be unitised.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Pattern Styles: The Pattern Styles options tell MaxLoad Pro which pallet patterns to consider when calculating a unitload.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=59"
      },
      {
       "text": "To rotate layers, place a check mark against the layer or click the Rotate Alt button to rotate alternate layers.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=58"
      }
     ],
     "recipe": "",
     "note": "Pattern switches apply to single-SKU unitloads, not mixed pallets.",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Layers: The Layers algorithm will be checked automatically by default for Pallet Manifest. When Enabled, MaxLoad Pro will group SKUs of similar heights to form stable layers for the entire pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=120"
      },
      {
       "text": "MaxLoad Pro builds a default mixed pallet by layers, meaning that it will first look for full layers of SKUs before mixing and matching those layers. MaxLoad Pro will not build a default mixed pallet using a column-building method.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=107"
      }
     ],
     "recipe": "",
     "note": "Standalone pallet manifests and on-the-fly mixed pallets inside truck manifests; several pallet types per manifest.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• Maximum Length and Width Overhang: These values represent the maximum distance a SKU can hang over the edge of the pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=100"
      },
      {
       "text": "You’re required to enter a value for both the length and width. If no overhang is allowed, set these fields to zero.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=58"
      }
     ],
     "recipe": "",
     "note": "Unitloads and mixed pallets, separate length and width. Vendor recommends at most half the smallest SKU length.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "[UnitLoad] Describes which pallet to use for a given Manifest, SKU, or Mixed Pallet. Also specifies what overhang, underhang, etc. to use instance.",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=3"
      }
     ],
     "recipe": "",
     "note": "'Underhang' is named once in the import spec's record summary, but no underhang field appears in the UnitLoad layout or in the guide. Centring on the pallet exists only as a manual editor alignment.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'underhang', 'inset', 'center', 'centre', 'edge', UnitLoad record fields.",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Slipsheets appear only as a pallet base, not between layers.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'interlayer', 'slip sheet', 'slipsheet', 'tier sheet', 'layer pad', 'every N layers'.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Ability to automatically mix orders if not enough space on truck",
       "url": "https://topseng.com/maxload-mixed-pallet-optimization/"
      },
      {
       "text": "It lists the contents of various mixed pallets in the container including SKU Number and quantity, total cube and weight for the SKUs and the stop number for the pallet load.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=188"
      }
     ],
     "recipe": "",
     "note": "Only the optional Mixed Pallet Automation Server (MPAS) page implies that orders are normally kept on separate pallets. The desktop guide gives each mixed pallet a stop number in reports but states no rule keeping stops or orders on separate pallets.",
     "searched": "",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Support two-stage optimization and generate mixed pallets, unitloads and floor loads inside the same vehicle on the fly.",
       "url": "https://topseng.com/Documents/Marketing/Brochure_MaxLoad%20Pro.pdf#page=1"
      },
      {
       "text": "Here, you ask MaxLoad to place the SKUs on the same type of pallet which then be loaded into the selected vehicle(s).",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=99"
      }
     ],
     "recipe": "",
     "note": "Truck manifest with 'Use Unit Loads' and 'Use Mixed Pallets'; full unitloads, on-the-fly mixed pallets and floor loads in one calculation.",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This option is only available for Pallet and Tote manifests where you can save the solution as a Pallet SKU or Tote SKU in the database to be used in Truck manifests.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=45"
      },
      {
       "text": "• Weight: Calculated weight of the pallet or tote manifest based on its contents and weight of pallet or tote.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=45"
      }
     ],
     "recipe": "",
     "note": "Dimensions and weight are carried over (weight can be overridden at save; dimensions cannot be edited). Multi-pallet manifests create SKUs suffixed -N.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "From the database, find the best tote or master shipcase for an order of mixed products. Save result as a Tote SKU to load further onto pallets or into vehicles.",
       "url": "https://topseng.com/Documents/Marketing/Brochure_MaxLoad%20Pro.pdf#page=1"
      },
      {
       "text": "All SKUs in this list are available for loading into a vehicle, onto a pallet or into a tote.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=104"
      }
     ],
     "recipe": "1. Pack items into a carton with a Tote manifest and save it as a Tote SKU (User Guide PDF p. 45, 132). 2. The Tote SKU appears in the SKU List, whose SKUs are 'available for loading into a vehicle, onto a pallet or into a tote' (User Guide PDF p. 104); add it to a Pallet manifest and save that as a Pallet SKU (PDF p. 123). 3. Load the Pallet SKU in a Truck manifest (PDF p. 45). The brochure states the tote-to-pallet-to-vehicle chain directly (brochure p. 1).",
     "note": "Chained stages, each a separate run.",
     "searched": "",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Allow Partial Unitloads: Check this option to place same SKUs not enough to make a full unitload on their own pallets (instead of as loose items) but not mixing them together with other SKUs to create mixed pallets.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=99"
      },
      {
       "text": "S Mixed Pallet Y/N Y - This SKU may be placed on a pallet with other SKU’s after as many full pallets of this SKU as can be have been constructed (that is, put leftovers on mixed pallets).",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/MaxLoad%20v4.0%20IMPORT_AllData.pdf#page=5"
      }
     ],
     "recipe": "",
     "note": "Truck manifests.",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It’s important to remember that the stacking rules defined for the unitload take precedence over the individual stacking rules of the SKU’s that make up the unitload.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=60"
      },
      {
       "text": "Apply stack codes to mixed pallets created on-the-fly from your Truck Manifests. Specify stack codes, floor/top loading and load orientation options for Mixed Pallets.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=7"
      }
     ],
     "recipe": "",
     "note": "For mixed pallets the guide's text describes the two floor options in reverse of their names (PDF p. 100).",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Now, with checking the “Optimize Height for Top Layer”, MaxLoad Pro will create unitloads with height in the range of 40 inches for the top layer, thus utilizing the container overhead space.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=99"
      }
     ],
     "recipe": "",
     "note": "Truck manifests only; not in Single-SKU manifests.",
     "searched": "",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The For Space option tells MaxLoad Pro to take more time and calculate the most space-efficient solutions.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=98"
      },
      {
       "text": "By default MaxLoad will calculate a load based primarily on cubic space efficiency",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      }
     ],
     "recipe": "",
     "note": "Excess goes to the Cut List.",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Weight efficiency % is reported per solution, but no weight-based objective or strategy is documented.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'weight efficiency', 'maximize weight', 'objective', 'heavy', 'payload'.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Balance pallet heights for the same stop to spread “dirty” layers among the pallets and increase stability",
       "url": "https://topseng.com/maxload-mixed-pallet-optimization/"
      }
     ],
     "recipe": "",
     "note": "Nothing in the desktop product spreads load evenly over vehicles; CalcAllTrucks fills each vehicle in turn.",
     "searched": "",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In Single-SKU Manifest, it is not necessary to enter a quantity for the SKU to be loaded. MaxLoad Pro will cube out the vehicle using as many of the specified SKU as possible.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=113"
      },
      {
       "text": "Load SKUs By Ratio Load a full container of specified SKUs in a set ratio.",
       "url": "https://topseng.com/maxload-smart-loading-algorithms/"
      }
     ],
     "recipe": "",
     "note": "Single-SKU manifests cannot be edited and ignore drop decks and ceiling clearance.",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In addition to using the sliding bar, you can also enter a number between 1 (speed) and 200 (space) in the box and click the Set button.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=98"
      },
      {
       "text": "» A Stop button allows you to stop the calculation at any time and gives you the best solution found so far.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=98"
      }
     ],
     "recipe": "",
     "note": "Import field IterSpeed 0-200 ('Iteration count or speed'). Whether results are reproducible is not stated.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Sol List or the Solution List, as pictured below, appears whenever multiple solutions are calculated for the manifest, depending upon multiple container sizes or loading algorithms.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=145"
      },
      {
       "text": " Note: When you select multiple algorithms, MaxLoad Pro will display at least one solution for each algorithm chosen. Additionally, whenever Left-to-Right Optimization is turned on, MaxLoad Pro will calculate two solutions for each algorithm chosen",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=97"
      }
     ],
     "recipe": "",
     "note": "The editor's Reject button asks for the next alternative placement (PDF p. 154).",
     "searched": "",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No rule selects items by an attribute condition. Load Rules are unpublished, TOPS-configured parameter profiles.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'rule', 'condition', 'if', 'greater than', 'threshold', 'Load Rules', 'attribute'.",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• SKU Info: SKU Info fields are some useful fields which the user can use to write notes about a SKU. These get placed in the SKU List and the Manifest List and is only available in the Manifest report.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=57"
      },
      {
       "text": "• Extra1 & Extra2: Not implemented.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=108"
      }
     ],
     "recipe": "",
     "note": "SKU Info 1-3, Label and the Consumable (perishable) flag are notes or display fields; no rule, matrix or objective uses them. The definition note lists MaxLoad SKU Info as failing.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'SKU Info', 'Label', 'Consumable', 'Extra1', 'custom field', 'user-defined'.",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Stack Code: Defines the stacking relations among different SKUs. The code establishes parameters that a class of SKUs would use.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      },
      {
       "text": "The matrix is read as follows: “Can this COLUMN stack on top of this ROW?”",
       "url": "https://topseng.com/Documents/Tech/MaxLoad/Importing%20a%20Stack%20Matrix%20(MaxLoad%20Pro%20v4.X).pdf"
      }
     ],
     "recipe": "",
     "note": "Codes on SKUs, unitloads, totes and on-the-fly mixed pallets; one global matrix, importable from CSV. Size guidance 5 (2011 note) to 20 (2020 note). No per-orientation exceptions; Max Stack Height overrides the matrix for like SKUs.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only matrix is the stack matrix (stacking, not sharing a vehicle).",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'matrix', 'compatib', 'same vehicle', 'combination', 'class'.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No user-chosen summed attribute can be capped.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'sum', 'total', 'cap', 'limit', 'Point Value', 'Site'.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In the ADO version of MaxLoad, you can apply multiple load rule profiles to one single manifest by checking the Multiple Rules option.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=6"
      },
      {
       "text": "Once the profiles are created and saved, you can specify which one to apply to the current manifest in the Algorithm Options dialog",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=6"
      }
     ],
     "recipe": "",
     "note": "Load Rule profiles and all algorithm options are chosen per manifest, not per vehicle.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'load rule', 'profile', 'per vehicle', 'Multiple Rules', 'Algorithm Options'.",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Even though the stack code allows one item to be placed on top of another item, this field will override the stack code to limit the weight of a placement on top of a particular SKU.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=54"
      },
      {
       "text": "Is this stack of three computers and one stereo a legal placement? No! Why not? Because the maximum stack weight of 100 pounds will be violated when the stereo is loaded.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=55"
      }
     ],
     "recipe": "",
     "note": "The editor's violation list checks several of these at once (PDF p. 172).",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "One implicit objective (cube). Algorithms are alternatives producing separate solutions, not combined objectives. 'Minimize end gap' is named only as an unpublished Load Rule.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'objective', 'priority', 'weighted', 'secondary', 'tolerance', 'Load Rules'.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Rules: In order to create customized solutions, MaxLoad Pro makes use of specific loading algorithms or parameters specified as Load Rules.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=210"
      },
      {
       "text": " This is an advanced feature and should only be attempted with guidance from TOPS. Please contact TOPS tech or MVP team for its use.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=210"
      }
     ],
     "recipe": "",
     "note": "Load Rules (Loadrules.ini profiles, Supervisor only) and the 'Custom' button are vendor-configured, with no public list of rules or values; the definition note counts such rule sets as failing as user capabilities.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'script', 'plug-in', 'macro', 'callback', 'custom', 'Load Rules', 'Loadrules.ini'.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "» Must Be Stacked On Floor: MaxLoad Pro will disregard any solutions in which the SKU is not placed on the floor.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      },
      {
       "text": "» Prefer On Floor: MaxLoad Pro will place the SKU on the floor if given the choice of either placing it on the floor or on top of another SKU.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=53"
      }
     ],
     "recipe": "",
     "note": "Orientation also has a hard form (Allowed Vertical) and a soft form (Preferred Vertical).",
     "searched": "",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• XFront, XSide, & XFloor: The location the SKU placement from the front, side, and floor of the container or pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=146"
      },
      {
       "text": "• Orientation of the placement, i.e. which dimension is loaded vertically • Position of placement from the front, side and floor of the vehicle",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=186"
      }
     ],
     "recipe": "",
     "note": "Origin: front wall, side wall, floor. Exportable as CSV (Custom Export), XML, clipboard. Which side wall is the origin is not stated.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load By Placement Prints a report of the vehicle/pallet being loaded one placement at a time. This report indicates SKUs, SKU quantities, and the load configuration for each step.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=182"
      },
      {
       "text": "The Export by Placement function generates step-by-step JPEG images to illustrate the loading procedure to a transit container for the currently opened manifest.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=246"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The load list gives a summary listing of each SKU and its quantities inside each truck or container, together the weight and volume for each SKU and its percentage.",
       "url": "https://topseng.com/maxload-pro-customer-service-tools/"
      },
      {
       "text": "• TiHi information: Cases per layer, number of layers on the pallet and total number of cases on the pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=184"
      }
     ],
     "recipe": "",
     "note": "Load List, Truck Summary, Load Summary, per-vehicle cube % and weight %, unitload and mixed-pallet reports and exports.",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• End Gap: The distance between the last loaded SKU from the end of the container.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=145"
      },
      {
       "text": "MaxLoad Pro’s “Load Summary” report lists the floor space used at the very top.",
       "url": "https://topseng.com/logistics-3pl-maxload-pro/"
      }
     ],
     "recipe": "",
     "note": "The Web API page also claims 'linear feet used' as an output.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Cut List is the list of SKUs that did not fit into the selected container or the pallet, when CalcAllTrucks feature is turned off.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=147"
      },
      {
       "text": "Prints a list of SKU’s that were not able to be loaded onto the vehicle/pallet.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=186"
      }
     ],
     "recipe": "",
     "note": "With quantity, order number, stop, cube and weight.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Get data out for the number of trucks used, linear feet used, total vehicle weight, any calculation errors, and a PDF report with an image of the load.",
       "url": "https://topseng.com/maxload-web-api/"
      }
     ],
     "recipe": "",
     "note": "The Cut List gives no reason per item. The Web API's 'calculation errors' are not described as per-item reasons.",
     "searched": "Searched the full pdf.js text of the MaxLoad Pro v4.0 User Guide (all 268 PDF pages incl. preface feature chronology, FAQ and glossary), the v4.0 and v3.6 Release Summaries, the v4.0 IMPORT_AllData specification (all SKU, UnitLoad, Manifest, ContainerList, PickList, Tote, Pallet and Vehicle record layouts), the v4.X Tutorial, the brochure, both stack-matrix tech notes, the pallet import note, and the feature pages (overview, smart-loading-algorithms, cargo-load-optimizaton, mixed-pallet-optimization, logistics-3pl, customer-service-tools, warehouse-management, web-api, tops-webapp, FAQ), all read 2026-09-30, for: 'reason', 'why', 'error', 'Cut List', 'did not fit', 'warning'.",
     "corrected": null
    },
    "output-cog": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Show Center of Gravity: If checked, the center-of-gravity (COG) will be displayed in the g.o.d. window with red triangular markers in addition to the numeric display in the load statistics section, in the View Screen.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=203"
      },
      {
       "text": "• COG: Center of Gravity.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=145"
      }
     ],
     "recipe": "",
     "note": "Updated live in the editor.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• King Pin, Axle 1 and 2: Total load weight on king pin and each axle.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=145"
      },
      {
       "text": "Violations will be highlighted in red so users can edit the load manually to comply with weight restrictions.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%203.6%20Release%20Summary.pdf#page=3"
      }
     ],
     "recipe": "",
     "note": "Limits shown only through red highlighting when a region Weight Limit is active; accuracy depends on item weights being entered.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In the Solution View, the resulted weight per segment is provided on the upper left hand corner. Any segment with weight over the limit will be highlighted in red.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=104"
      }
     ],
     "recipe": "",
     "note": "Only for vehicles with defined weight segments (up to 24) and 'Segment Wgt Limit' selected.",
     "searched": "",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "• TareWgt: The weight of empty container. • TotalWgt: Sum total of Wgt. and Tare Wgt.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=144"
      }
     ],
     "recipe": "",
     "note": "Web API claims 'total vehicle weight' as an output too.",
     "searched": "",
     "corrected": null
    },
    "output-per-stop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load By Stop-Off Prints a diagram of the container/pallet being loaded one stop off at a time.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=183"
      },
      {
       "text": "Prints a summary of the load. If there are stop offs or priorities in your load, the SKUs are grouped by stops or priorities in the summary.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=181"
      }
     ],
     "recipe": "",
     "note": "Also colour by stop-off and stop dividers in graphics.",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In addition to the status bar, you can also access a report that provides a cumulative listing of all stacking violations.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=172"
      },
      {
       "text": "• (SKU Number) violates stacked (Stack Code) of (other SKU Number) • (SKU Number) is carrying (X lbs/kg). Its maximum weight allowed is (X lbs./kg.)",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=172"
      }
     ],
     "recipe": "",
     "note": "For edited loads; the list prints with the Placement List. Imported plans are not mentioned.",
     "searched": "",
     "corrected": null
    },
    "output-voids": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enter the minimum value along the three dimensions to highlight any void space for dunnage. Any space meeting the criteria will be highlighted in the g.o.d. window with their respective dimensions and locations detailed in the table.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=148"
      },
      {
       "text": "Dunnage added will be numbered with placement locations and included in the Placement List, Load List and Load report.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20Release%20Summary.pdf#page=5"
      }
     ],
     "recipe": "",
     "note": "After solving; minimum-size thresholds per dimension (profile saved in ADO edition).",
     "searched": "",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Cost tab is not implemented at this time and is grayed out.",
       "url": "https://topseng.com/Documents/Software/MaxLoad%204.0%20User%20Guide.pdf#page=148"
      },
      {
       "text": "Costing calculations provide estimates and quotes.",
       "url": "https://topseng.com/Documents/Marketing/Brochure_MaxLoad%20Pro.pdf#page=2"
      }
     ],
     "recipe": "",
     "note": "Costing and Labor Cost are 'undocumented features reserved for specific customers' (PDF p. 209).",
     "searched": "",
     "corrected": null
    }
   }
  },
  {
   "id": "goodloading",
   "name": "Goodloading",
   "vendor": "Trans.eu",
   "url": "https://www.goodloading.com/en/",
   "auditedOn": "2026-09-30",
   "caveat": "Some capabilities require a paid plan; the restriction is named in the note.",
   "scope": "Goodloading 3.x web application (the new generation released as beta April 2023 and as 3.0 in July 2023) plus the Goodloading Calculation API and Recommendation API.",
   "sources": [
    {
     "title": "Goodloading manual (English)",
     "url": "https://www.goodloading.com/en/manual/manual/"
    },
    {
     "title": "API – data description",
     "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
    },
    {
     "title": "API – Loading spaces",
     "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
    },
    {
     "title": "API – Managing loads in the loading space",
     "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
    },
    {
     "title": "API – Recommendations",
     "url": "https://www.goodloading.com/en/api/documentation/api-recommendations/"
    },
    {
     "title": "API – Introduction (recommendations)",
     "url": "https://www.goodloading.com/en/api/documentation/introduction/"
    },
    {
     "title": "Updating an API-created project in the web browser",
     "url": "https://www.goodloading.com/en/api/documentation/updating-an-api-created-project-in-the-web-browser/"
    },
    {
     "title": "Retrieving loading spaces from the user account",
     "url": "https://www.goodloading.com/en/api/documentation/retrieving-loading-spaces-from-the-user-account/"
    },
    {
     "title": "About this documentation",
     "url": "https://www.goodloading.com/en/api/documentation/about-this-documentation/"
    },
    {
     "title": "API FAQ",
     "url": "https://www.goodloading.com/en/api/api-frequently-asked-questions/"
    },
    {
     "title": "Types of API",
     "url": "https://www.goodloading.com/en/api/types-of-api/"
    },
    {
     "title": "API integrations",
     "url": "https://www.goodloading.com/en/api/integrations/"
    },
    {
     "title": "API regulations",
     "url": "https://www.goodloading.com/en/regulations-of-the-api/"
    },
    {
     "title": "FAQ",
     "url": "https://www.goodloading.com/en/faq/"
    },
    {
     "title": "Home page",
     "url": "https://www.goodloading.com/en/"
    },
    {
     "title": "About the program",
     "url": "https://www.goodloading.com/en/about-the-program/"
    },
    {
     "title": "Road transport",
     "url": "https://www.goodloading.com/en/road-transport/"
    },
    {
     "title": "Maritime transport",
     "url": "https://www.goodloading.com/en/maritime-transport/"
    },
    {
     "title": "Air transport",
     "url": "https://www.goodloading.com/en/air-transport/"
    },
    {
     "title": "Railway transport",
     "url": "https://www.goodloading.com/en/railway-transport/"
    },
    {
     "title": "Palletizing",
     "url": "https://www.goodloading.com/en/palletizing/"
    },
    {
     "title": "Manufacturers",
     "url": "https://www.goodloading.com/en/manufacturers/"
    },
    {
     "title": "Goodloading 3.0 – the 10 most important changes",
     "url": "https://www.goodloading.com/en/blog/goodloading-3-0-the-10-most-important-changes-in-the-latest-version-of-the-planner/"
    },
    {
     "title": "Q1 2024 changes",
     "url": "https://www.goodloading.com/en/blog/new-technologies/changes-in-goodloading-summary-of-improvements-from-q1-2024/"
    },
    {
     "title": "Q2 2024 changes",
     "url": "https://www.goodloading.com/en/blog/new-technologies/changes-in-goodloading-summary-of-q2-2024-implementations/"
    },
    {
     "title": "Q3 2024 changes",
     "url": "https://www.goodloading.com/en/blog/new-technologies/changes-in-goodloading-summary-of-q3-2024-implementations/"
    },
    {
     "title": "Q4 2024 changes",
     "url": "https://www.goodloading.com/en/blog/new-technologies/changes-in-goodloading-summary-of-q4-2024-updates/"
    },
    {
     "title": "New features – company project sharing and more (May 2025)",
     "url": "https://www.goodloading.com/en/blog/new-technologies/new-features-in-goodloading-company-project-sharing-and-more/"
    },
    {
     "title": "New feature: Advanced palletization (Sep 2026)",
     "url": "https://www.goodloading.com/en/blog/pallets/new-feature-in-goodloading-advanced-palletization/"
    },
    {
     "title": "New beta version released April 1 (2023)",
     "url": "https://www.goodloading.com/en/blog/new-technologies/new-beta-version-of-goodloading-released-april-1/"
    },
    {
     "title": "Goodloading API – automating loading (Dec 2024)",
     "url": "https://www.goodloading.com/en/blog/new-technologies/goodloading-api-automating-loading-through-integration-with-external-systems/"
    },
    {
     "title": "Air freight forwarding with Goodloading",
     "url": "https://www.goodloading.com/en/blog/air-freight-forwarding-how-to-optimize-loading-with-goodloading/"
    }
   ],
   "passed": 53,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enter the name, length, width, height, and the quantity of vehicles of a particular type that should be added to the project.",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/adding-a-vehicle/"
      },
      {
       "text": "part.length | number | Yes | Length of the loading space part. Must be greater than 0.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Vehicle, sea container, air container and pallet spaces, from a preset list or typed dimensions (API type vehicle/sea/air x/air y/pallet). Rail wagons are only claimed on a Polish-language page (up to 99 load spaces per project, no rail-specific rules; manual check #1). Freemium restricts custom load dimensions; whether custom space dimensions are also PRO-only is not stated (a Q3 2024 note mentions editing space dimensions in freemium).",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you want to exclude wheel arches from the loading space, go to the Wheel arches tab. ... Complete the following data: – Distance from the door – Width of wheel arches – Height of wheel arches – Length of wheel arches",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/wheel-arches/"
      },
      {
       "text": "If you want to exclude the cooling unit from the loading space, go to the Cooling unit tab.",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/cooling-unit/"
      }
     ],
     "recipe": "",
     "note": "UI only: not in the API field reference. Whether cargo may be stacked on top of the obstruction is not documented. Cooling unit on sea containers is PRO-only per FAQ; its lengthwise position is not a documented field.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only fixed kinds exist: one wheel-arch definition and one cooling unit per part. No free list of blocked regions.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: blocked area, obstacle, exclusion, zone, wheel arches, cooling unit, keep clear.",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enhanced functionality of weight and height limits.",
       "url": "https://www.goodloading.com/en/blog/new-technologies/changes-in-goodloading-summary-of-q4-2024-updates/"
      }
     ],
     "recipe": "",
     "note": "The pallet 'maximum height' is part of the pallet space definition, not a separate cap on another space. A Q4 2024 release note mentions 'Enhanced functionality of weight and height limits' without describing any height-limit setting.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: height limit, maximum height, ceiling, clearance, load height.",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Variofloor is a full second deck (compartments row), not a step along the length. Nothing models a change of floor or ceiling height along the space.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: step deck, drop deck, low loader, gooseneck, split level, floor height, variofloor.",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Fill in the name and then choose the type of container – single-sided or double-sided. ... Provide the length, width, base, height D and C",
       "url": "https://www.goodloading.com/en/manual/adding-an-air-container/adding-an-air-container/"
      },
      {
       "text": "“air x” – a container with two slanted sides – “air y” – a container with one slanted side",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      }
     ],
     "recipe": "",
     "note": "part.base and part.heightD appear in the loading-spaces examples but not in the API field reference table.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Air-container contours are crosswise only; no lengthwise height change is documented in the same unit.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: contour, slanted, cut, profile, length, step.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "“air y” – a container with one slanted side",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      }
     ],
     "recipe": "",
     "note": "The contour is described as 'slanted sides' defined by base width and height D (a chamfer), but no source says whether cargo is placed against the slope or stopped at a rectangular step.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: slanted, slope, angle, chamfer, cut.",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Every loading space can be divided into a maximum of 2 parts. This is useful, for example, when loading a combination unit, such as vehicles or sea containers.",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      },
      {
       "text": "You can add a vehicle with a second trailer as a set. ... Provide the length, width, and height of the trailer. Just like with the first vehicle, you can specify its capacity and loading direction.",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/double-trailer/"
      }
     ],
     "recipe": "",
     "note": "At most 2 parts per space. Variofloor is UI-only and whether it can be partial-length is not documented.",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Go to the Door size tab to add it to the container project. ... Complete data such as: – Door width – Door height",
       "url": "https://www.goodloading.com/en/manual/adding-a-sea-container/door-size/"
      },
      {
       "text": "In the first case, the added loads may be indicated as not fitting, precisely due to the limitations resulting from the size of the doors.",
       "url": "https://www.goodloading.com/en/blog/goodloading-3-0-the-10-most-important-changes-in-the-latest-version-of-the-planner/"
      }
     ],
     "recipe": "",
     "note": "Sea containers only (single or set). PRO-only per FAQ. Not in the API.",
     "searched": "",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "While creating a vehicle, you can also specify its capacity and indicate the loading direction – from the right, from the back, from the left, from the top. This information allows the algorithm to consider the loading direction when planning the arrangement.",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/adding-a-vehicle/"
      },
      {
       "text": "The parameter applies to a specific defined part “part” of the loading space, so it can be set differently for each defined part.",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      }
     ],
     "recipe": "",
     "note": "Vehicles and sea containers; not offered for air containers in the UI. A Q3 2024 note says side-loaded vehicles are now filled from the cab. One access face per part.",
     "searched": "",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If a rear-loading vehicle has been added in the current project, the load can be set to extend beyond the vehicle’s footprint. For this, check the option ‘Allow load to extend beyond space’.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/rotate/"
      }
     ],
     "recipe": "",
     "note": "A per-load 'Allow load to extend beyond space' flag exists, only for rear-loading vehicles, but no maximum overhang is documented and it is not stated whether the planner places the overhang or the user drags it out. Fails for lack of a stated limit.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: overhang, extend beyond, protrude, open top, flat rack, flatbed.",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The recommendation selects the smallest possible space for the transport order and, where there is a large number of cargo items, indicates how many spaces of a given type would have to be used",
       "url": "https://www.goodloading.com/en/api/documentation/introduction/"
      },
      {
       "text": "The algorithm distributed the cargo across 5 loading spaces: Solo truck 15 EP",
       "url": "https://www.goodloading.com/en/api/documentation/api-recommendations/"
      }
     ],
     "recipe": "",
     "note": "Only through the recommendation function (UI 'Show recommendations', API /calculation/recommendation), which covers vehicles and sea containers only. In a normal calculation the user sets the number of spaces and the rest goes to notFittedLoads.",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "source-conflict",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The algorithm distributed the cargo across 3 loading spaces: Solo Truck 20 EP and 1 space: Bus 8 EP",
       "url": "https://www.goodloading.com/en/api/documentation/api-recommendations/"
      },
      {
       "text": "Enabling this feature allows the application to suggest alternative loaded spaces of the same type that can accommodate the given load.",
       "url": "https://www.goodloading.com/en/manual/show-recommendations/"
      }
     ],
     "recipe": "",
     "note": "Recommendation only; vehicles and sea containers only.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "quantity | integer | Yes | Number of loading spaces. Must be an integer greater than 0",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "notFittedLoads | array | Loads that did not fit into any loading space",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "The quantity adds identical spaces to the project; the calculation stays within them and returns the remainder as not fitted. Whether the recommendation endpoint honours a quantity is not documented.",
     "searched": "",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This option allows a load to be added to the first loading space with sufficient clearance.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/adding-loads-manually/"
      }
     ],
     "recipe": "",
     "note": "'Add to first free' sends one load group to the first space with room, and without cross-space optimisation loads fill spaces in the order added; neither ranks equipment types. Hiding a saved space only removes it from recommendations.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: priority, preference, preferred vehicle, fill order, first free.",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The algorithm checks which loading space is the most cost-effective for carrying out the transport. The recommendation selects the smallest possible space for the transport order",
       "url": "https://www.goodloading.com/en/api/documentation/introduction/"
      },
      {
       "text": "Recommendations support only vehicles and sea containers.",
       "url": "https://www.goodloading.com/en/manual/show-recommendations/"
      }
     ],
     "recipe": "",
     "note": "Vehicles and sea containers only; not air containers or pallets. Saved spaces hidden with the eye icon are excluded.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The algorithm checks which loading space is the most cost-effective for carrying out the transport.",
       "url": "https://www.goodloading.com/en/api/documentation/introduction/"
      }
     ],
     "recipe": "",
     "note": "The recommendation is called 'most cost-effective' but no cost input exists; it selects the smallest space.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: cost, price, rate, cost-effective, cheapest.",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: fill percentage, maximum fill, utilisation limit, percent.",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: minimum fill, minimum load, minimum utilisation.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No per-load restriction to equipment types. Pallet 'Loading to vehicle' ties a built pallet to one chosen space (fleet-item-to-unit).",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: allowed vehicle, only in, exclude, assign type, favourite.",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Go to the Loading to vehicle tab if you want the pallet to be loaded onto a previously added loaded space. Select the option Select the space to be loaded. Choose the space you want to load it onto.",
       "url": "https://www.goodloading.com/en/manual/palletization/loading-to-vehicle/"
      },
      {
       "text": "You can select and drag specific loads with the left mouse button to move them to other loading spaces or change their order on the list.",
       "url": "https://www.goodloading.com/en/manual/visualization/managing-added-loads-and-loaded-spaces/"
      }
     ],
     "recipe": "",
     "note": "UI only. Loads are added to the displayed space or dragged between spaces on the load list; built pallets get an explicit target-space input. The optimiser keeps loads in their space unless cross-space optimisation is on. No documented API field (keepGroupsInGivenSpaces appears only in example responses).",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: custom size, dimension range, box size, carton selection.",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Then enter the dimensions – length, width, and height, and for barrels and pipes, also the diameter. Specify the quantity of such loads that you want to place in the loaded space. You can indicate the weight of individual loads or total weight of all added loads.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/adding-loads-manually/"
      },
      {
       "text": "weight | number | Yes | Weight of a single load. Must be greater than or equal to 0.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Several load entries per request or project. . Freemium users can only use the default loads; custom dimensions need PRO. A 2019 blog post states the app 'can load „only\" 10,000 loads' (the only stated scale limit found; re-check 30 Sep 2026).",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "diameter | number | Yes | Diameter of the load. Must be greater than zero. Applies only to pipes and barrels.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "loadType | number | No | 0: cuboid load, 1: barrel, 2: pipe",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Barrels (upright) and pipes (lying). The API response returns a square bounding footprint for a barrel, but the item is entered and drawn as a cylinder.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In addition to standard cubic shapes, we can add pipes and barrels. The algorithm will arrange them in a so-called honeycomb, to optimally use the cargo space.",
       "url": "https://www.goodloading.com/en/blog/goodloading-3-0-the-10-most-important-changes-in-the-latest-version-of-the-planner/"
      },
      {
       "text": "Adding a third option for the formation of added pipes – the new feature means stacking pipes without stacking, meaning they won’t be stacked in a single line or honeycombed.",
       "url": "https://www.goodloading.com/en/blog/new-technologies/changes-in-goodloading-summary-of-q2-2024-implementations/"
      }
     ],
     "recipe": "",
     "note": "Release-note blog posts only, which the row counts as claimed. The manual and API do not describe the formation options or how to select them.",
     "searched": "",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only cuboids, barrels and pipes exist.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: interlock, nest, L-shape, shaped.",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: cavity, inside, under, hollow, frame.",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Load types are limited to cuboid, barrel and pipe.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: CAD, 3D model, mesh, irregular, custom shape.",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: bulk, loose, liquid, volume only, amorphous.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: compress, soft, squeeze, deform.",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Palletisation computes quantities from layers, but there are no packaging levels per item for the planner to choose between.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: pack, case, carton, inner, bundle, units per.",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "allowToRotate | boolean | No | Accepts true or false. Setting it to true lets the calculation swap width and length, i.e. rotate the load around its base. Applies to: cuboids and pipes. Default value: true.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "rotateFreely | boolean | No | ... Setting this value allows the load to be rotated in any direction. Applies only to cuboids. Default value: false.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Per load. Upright is the default: with rotateFreely false a cuboid only turns on its base. Barrels are always upright.",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can change it to Allow any rotation or Do not allow any rotation.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/rotate/"
      },
      {
       "text": "Rotation lock Parameter settings: allowToRotate: false rotateFreely: false",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "Per load: keeps the entered length/width orientation. Barrier mode never rotates loads and keeps the length along the vehicle.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "rotateFreely | boolean | No | Accepts true or false. Setting this value allows the load to be rotated in any direction. Applies only to cuboids. Default value: false.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "You can change it to Allow any rotation or Do not allow any rotation.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/rotate/"
      }
     ],
     "recipe": "",
     "note": "Cuboids only. 'Any direction' is not further defined; angled placement is excluded by the vendor (manual tilt only).",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Rotation is one of three settings: none, on base only, or any direction; there is no setting that allows only some tipped orientations.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: rotation, axis, lie, side, end, tilt.",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only three rotation modes (none / on base / any).",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: orientation, axis, allowed orientations.",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: preferred orientation, prefer.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: orientation floor, bottom layer.",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: stacking orientation, on side stack.",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The app allows loads to be stacked at an angle. This needs to be done manually as the app will not do it automatically.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/arranging-loads-at-an-angle/"
      },
      {
       "text": "Freemium users cannot, among other things: – add their own load dimensions, they use the defaults available in the planner – use the palletization option, rotate loads at different angles – add axle loads and several loading points in the vehicle – add advanced elements to containers (such as center of gravity, cooling unit, or door size)",
       "url": "https://www.goodloading.com/en/faq/"
      }
     ],
     "recipe": "",
     "note": "Manual tilting about the X or Y axis in the 3D view is a workaround; it is PRO-only ('rotate loads at different angles').",
     "searched": "",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Barrels are always placed upright only and are not subject to any rotation.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      },
      {
       "text": "Pipes cannot be stood upright; they can only be laid along the length or the width of the loading space.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "1. For an upright cylinder, enter it as a barrel, loadType 1 (DD loadType field; ML 'Barrel': always upright). 2. For a lying cylinder, enter it as a pipe, loadType 2 (DD; ML 'Pipe': laid along the length or width).",
     "note": "Fixed by type, as the definition note allows. A pipe can also be locked to its entered direction (allowToRotate false).",
     "searched": "",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load stacking. A value of false means the load is not stackable; a value of true means it is stackable.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "for a load, this must be set to true (the default value) for that load to be stackable, i.e. so that other loads can be placed on top of the load for which the parameter is set.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "Per load. The API default is stackable; the manual has a 'Stack' checkbox to switch it on.",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Non-stackable only stops loads going on top of an item; nothing forces the item itself onto the floor. boxesBelowAllowed limits which items it may stand on, but an empty list means no restriction.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: floor only, must be on floor, bottom layer, do not stack on.",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "By adding another load to the project, we can indicate on which loads the newly added load can stand, unless there is a place on the floor without a loss of load meters.",
       "url": "https://www.goodloading.com/en/blog/goodloading-3-0-the-10-most-important-changes-in-the-latest-version-of-the-planner/"
      },
      {
       "text": "Selecting loads for stacking means that a given load can only stand on the loads specified in the table.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "The composable route (stacking false plus boxesBelowAllowed) does not reach this row: the 3.0 release note says the permitted-base list applies only 'unless there is a place on the floor without a loss of load meters', so the item may still go on the floor.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: top only, not on floor, stack only, boxesBelowAllowed.",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Providing an integer greater than 0 means the load is stackable up to that limited number of tiers.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "The value given represents the total number of tiers permitted for the given load, including the bottom layer. By “a given load” we mean, for example, 4 tiers for a group of the same load.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "Counts tiers including the bottom layer. The UI hint implies that setting a tier count may also stop other groups being placed on top.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "By “a given load” we mean, for example, 4 tiers for a group of the same load. Tiers will not stack up to the specified number of different loads.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "The tier limit counts units of the same load only; no limit counts mixed stacks, and there is no unit-wide level cap.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "A Q4 2024 release note mentions 'weight and height limits' without describing a per-item height limit.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: maximum height, stacking height, height limit.",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "maxWeightOnTop | number | No | Maximum weight that can be placed on top of the load.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "You can specify the maximum stacking weight, which allows placing other loads on the selected one, as long as their total weight does not exceed the value set by the user.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/stack/"
      }
     ],
     "recipe": "",
     "note": "Per load; can be combined with the tier limit. 'Total weight' of loads placed on it suggests the whole column, but that is not stated.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "maxWeightOnTop is a plain weight.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: pressure, per area, kg/m2, contact surface weight.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "screenshot-only"
     ],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The maxWeightOnTop examples ('Tier weight without setting the number of tiers') use three different loads and show only images of the result; no text says whether the limit is checked within a stack of one load.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: maxWeightOnTop same load, tier weight.",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "boxesBelowAllowed | array of numbers | No | Array of box IDs that may be placed beneath the load being added.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "Selecting loads for stacking means that a given load can only stand on the loads specified in the table.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "1. Give each load entry an id (DD, id field). 2. For each load, set boxesBelowAllowed to the ids of all loads at least as heavy as it (DD boxesBelowAllowed; ML 'Selecting loads for stacking': a load 'can only stand on the loads specified').",
     "note": "No built-in weight-ordering rule. The vendor's LCL blog post presents stacking rules as the way to avoid heavy-on-light. Heaviest-first placement order (loadingOrder weight) orders placement, not stacking.",
     "searched": "",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: strength, fragility, index, crush.",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "boxesBelowAllowed | array of numbers | No | Array of box IDs that may be placed beneath the load being added.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "Selecting loads for stacking means that a given load can only stand on the loads specified in the table.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "A per-load whitelist of load IDs it may stand on. The 3.0 note says the load may still go on the floor if floor space is available without losing loading metres.",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "by default the degree of support is 100% – in which case only loads whose top load has the same support surface as the bottom load are stacked",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "This is the default of the support-percentage mechanism, not a separate column or alignment rule.",
     "searched": "",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "pctSupport | number | No | Percentage of the load’s base area that is supported. Allows a load with a larger base area to be stacked on top of a load with a smaller base area.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "The degree of support is set for the upper load; with “pctSupport” : 30, the support/contact surface between the loads must be no less than 30% of our load",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "The allowed range is not given. A Q1 2024 note says a load up to 50% larger may be stacked on a smaller one, which may cap how low the value can go.",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: bridge, height difference, uneven, several loads below.",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: nest, nesting height, top shape.",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Palletisation builds a chosen number of complete layers and computes the quantity from them, but there is no rule that makes the planner load only complete stacks or layers of an ordered quantity.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: complete layers, full stacks, flat top.",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "keepLoadsTogether | boolean | No | Setting this to true causes loads belonging to the same group to be placed together. Default value: false.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "API option per request; not described in the UI manual. No example.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "”order” – every load must have its own order identifier",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      },
      {
       "text": "barriers do not fully separate individual orders, i.e. a single column may contain different orders; however, loads do not mix in such a way that a load from order number 1, separated by order number 2, also ends up within order number 3.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "API only. Barrier mode never rotates loads. keepLoadsTogether ('same group') may also apply, but its group is undefined.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: same vehicle, do not split, keep group, order in one space.",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: all or nothing, whole order, complete order.",
     "corrected": null
    },
    "between-sections": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The barrier-setting feature lets you arrange loads by order and separate them with barriers.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      },
      {
       "text": "barriers do not fully separate individual orders, i.e. a single column may contain different orders; however, loads do not mix in such a way that a load from order number 1, separated by order number 2, also ends up within order number 3.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "Barriers of set thickness and height are inserted between full-width columns, not between orders, and the vendor states a column may contain different orders. So no group is guaranteed its own section. API only.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "boxesBelowAllowed | array of numbers | No | Array of box IDs that may be placed beneath the load being added.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "Selecting loads for stacking means that a given load can only stand on the loads specified in the table.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "1. Give each load entry an id (DD, id field). 2. For each load, set boxesBelowAllowed to the ids of the loads of the same group only (DD boxesBelowAllowed; ML 'Selecting loads for stacking').",
     "note": "Groups are encoded as lists of load IDs. The floor exception in the 3.0 release note does not affect this row.",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: incompatible, separate vehicles, segregation, not together.",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: distance, separation, apart, not above.",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Hazardous goods appear only in general blog content.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: dangerous goods, hazardous, ADR, IMDG, class.",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: value, piece count, points, cap per vehicle.",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: number of orders, distinct items, SKU limit.",
     "corrected": null
    },
    "between-ratio": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: ratio, set, kit.",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: multiple of, batch, lot size.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "All loads that are outside the cargo space can be placed in the cargo space by clicking on the „Add loads to cargo space” option.",
       "url": "https://www.goodloading.com/en/manual/visualization/managing-added-loads-and-loaded-spaces/"
      }
     ],
     "recipe": "",
     "note": "Loads can be moved by hand and loads outside the space added with 'Add loads to cargo space', and API projects can be edited in the web app and fetched again. No source says manual placements are kept while the planner completes the rest.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: lock, fix, keep position, complete, add loads to cargo space, initial arrangement.",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Positions exist only in the API response, not as request fields.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: position input, coordinates, x y z request.",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: front, rear, zone, region, place at.",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: keep clear, exclude area, aisle, door area.",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Arrangement always starts at the cab (the barrier mode starts on the passenger side). loadingSide sets the access face (scored under equipment-access-side), and alongFloor is scored under floor-first. There is no separate fill-direction setting.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: fill direction, start from, loading side, pattern.",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "setting this parameter to true means that, during stacking, loads are first arranged along the floor and only then stacked; setting it to false (the default value) means they are stacked right away at the driver’s cab.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      },
      {
       "text": "If you enable Arrange on the floor option, the algorithm will distribute the loads on the floor evenly before stacking them.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/stack/"
      }
     ],
     "recipe": "",
     "note": "Default is stack first.",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: forklift, reach, block depth, handling.",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The UI 'load attracting' magnet only snaps manually moved loads together; there is no clearance setting.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: gap, clearance, spacing, distance between loads.",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Marketing mentions planning 'how best to secure loads', but no check is documented.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: shift, lateral support, secured, against wall.",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The default value, “allowOverweight”: “false”, means the total weight of the cargo cannot exceed the permissible load capacity.",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      },
      {
       "text": "Activating this function ensures that loads the weight of which causes the cargo space to be overloaded are not loaded into it.",
       "url": "https://www.goodloading.com/en/manual/algorithm-settings/include-space-capacity/"
      }
     ],
     "recipe": "",
     "note": "Payload per space part, required in the API; can be switched off (allowOverweight true / 'Include space capacity' off). Pallet spaces have a maximum capacity.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "part.limit | number | Yes | Partial payload capacity of the loading space. Must be greater than 0",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "Provide the length, width, and height of the trailer. Just like with the first vehicle, you can specify its capacity and loading direction.",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/double-trailer/"
      }
     ],
     "recipe": "",
     "note": "The payload rule is enforced by default (allowOverweight false).",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: section weight, floor load, per metre, zone weight.",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: kg per metre, linear load, weight per length.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The Goodloading algorithm can control the load on a vehicle’s axles.",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      },
      {
       "text": "It is also possible to partially indicate whether the obtained design does not exceed axle pressures if spacing and axle lifting capacity rules are described.",
       "url": "https://www.goodloading.com/en/api/api-frequently-asked-questions/"
      }
     ],
     "recipe": "",
     "note": "Reported only. The axle model and colour-coded result are documented, and one API page says the algorithm 'can control' axle loads. But the API FAQ says it can only 'partially indicate' overloads, and the combination-unit example, run with default options (allowOverweight false), returns addedLoad 6666.67 on an axle with maxLoad 5300. Marketing claims 'loading in accordance with ... axle loads'. PRO-only.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: axle, maxLoad, overload, permissible axle, control, enforce.",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When such an array is added, it must contain exactly two or three elements (the descriptions of the defined axles).",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      },
      {
       "text": "We’ve added the option to input a third axle when adding vehicles in Goodloading.",
       "url": "https://www.goodloading.com/en/blog/new-technologies/new-features-in-goodloading-company-project-sharing-and-more/"
      }
     ],
     "recipe": "",
     "note": "2 or 3 axle groups per part, so up to 6 on a two-part combination. Used for reporting only (see weight-axle-limits). PRO-only.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "part.axi.emptySpaceLoad | number | Yes | Axle load when the loading space is empty. The value must be a number greater than or equal to 0.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "Complete the following data for each axle: – Distance from the front of the semi-trailer – Axle load without weight – Max. permissible load",
       "url": "https://www.goodloading.com/en/manual/adding-a-vehicle/axle-loads/"
      }
     ],
     "recipe": "",
     "note": "Tare load entered per axle. PRO-only.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We’re also working on another axle-related feature, which will be available soon. Users will be able to add a front axle under the driver’s cabin for curtain-sided trucks.",
       "url": "https://www.goodloading.com/en/blog/new-technologies/new-features-in-goodloading-company-project-sharing-and-more/"
      }
     ],
     "recipe": "",
     "note": "Each part has its own axle array; an axle may sit under the cab (negative distance) for a rigid truck. No transfer of kingpin or drawbar load to a tractor is documented. May 2025: a front axle under the cab for curtain-siders was announced as coming soon.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: kingpin, fifth wheel, tractor, drawbar, coupling, front axle.",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "A January 2025 blog post explains European axle limits in general; the planner takes limits only as typed per axle.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: legal limits, country, regulation, permit, bridge formula.",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the weight and distribution of the added loads cause the deviation of the centre of gravity to exceed the value indicated by the user, the application will inform the user about it.",
       "url": "https://www.goodloading.com/en/manual/adding-a-sea-container/centre-of-gravity/"
      },
      {
       "text": "By adding information about the center of gravity and its tolerances, the application will indicate if the center of gravity has been exceeded. It will be possible to automatically set the load so that the center of gravity is not exceeded.",
       "url": "https://www.goodloading.com/en/blog/goodloading-3-0-the-10-most-important-changes-in-the-latest-version-of-the-planner/"
      }
     ],
     "recipe": "",
     "note": "Sea and air containers have length and width tolerances, but the documented effect is a warning. The July 2023 release note described automatic placement within the tolerance as future work ('It will be possible'), and no later source confirms it. PRO-only.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: centre of gravity, tolerance, balance, automatic, exceed.",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the weight and distribution of the added loads cause the deviation of the centre of gravity to exceed the value indicated by the user, the application will inform the user about it.",
       "url": "https://www.goodloading.com/en/manual/adding-a-sea-container/centre-of-gravity/"
      }
     ],
     "recipe": "",
     "note": "Same as longitudinal: a width tolerance that triggers a warning, with no documented enforcement.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: centre of gravity, width tolerance, left right balance.",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: centre of gravity height, vertical, Z.",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "In Goodloading, you can set the center of gravity of the container and the cargo, which allows the goods to be evenly distributed over the container space and ensures stability during transport.",
       "url": "https://www.goodloading.com/en/blog/containers/lcl-container-how-to-optimally-use-cargo-space-in-general-cargo-transport/"
      },
      {
       "text": "Determining the center of gravity – the algorithm continuously analyzes the weight of individual packages or pallets and calculates the pressure on the floor. This allows for a stable distribution of mass",
       "url": "https://www.goodloading.com/en/blog/containers/iso-container-international-standard-in-transport/"
      }
     ],
     "recipe": "",
     "note": "Blog posts only. The manual documents a warning, and the 2023 release note announced automatic balancing as future work. It would centre the container's centre of gravity (not axles).",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "By default, the centre of gravity for a load is set in its centre. You can change its position, but only for cubic loads.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/centre-of-gravity-of-load/"
      },
      {
       "text": "Adjust the position of the centre of gravity along the X, Y, and Z axis.",
       "url": "https://www.goodloading.com/en/manual/adding-loads-manually/centre-of-gravity-of-load/"
      }
     ],
     "recipe": "",
     "note": "Cuboids only. Used with the container centre-of-gravity check (sea containers). UI only, not in the API.",
     "searched": "",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enabling this function changes the arrangement according to the order in which loads are added to the selected cargo space. By moving loads on the list of added loads, their arrangement order on the visualization also changes.",
       "url": "https://www.goodloading.com/en/manual/algorithm-settings/arrange-according-to-the-order-of-adding/"
      },
      {
       "text": "each load must be assigned a “priority” – it takes numeric values 1..n, where 1 means the highest priority, in the options, set: \"loadingOrder\": \"priority\"",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "Built-in sorts (heaviest first, largest volume first) also exist. The priority range differs between the field table (>= 0, default 0) and the guide (1..n).",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "priority | integer | No | Load priority. The value must be an integer greater than or equal to 0. Default value: 0.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "each load must be assigned a “priority” – it takes numeric values 1..n, where 1 means the highest priority",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "API only. Priority sets the order in which loads are placed, so higher-priority loads are placed first; notFittedLoads echoes the priority.",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: optional, filler, fill items, if space.",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For each load, specify its loading and unloading point by referencing the id and name of a stop defined in the loading space.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      },
      {
       "text": "Automatic loading sequence planning for vehicles with multiple delivery or pickup points. The system ensures that goods intended for the first stop are loaded last (according to the LIFO principle)",
       "url": "https://www.goodloading.com/en/api/integrations/"
      }
     ],
     "recipe": "",
     "note": "Needs at least 3 stops and one loading space. PRO-only ('several loading points'). No priorities within a stop are documented; the order can be changed by hand on the list.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The application will arrange the loads in such a way that goods from different locations are not mixed, making unloading easier.",
       "url": "https://www.goodloading.com/en/"
      }
     ],
     "recipe": "",
     "note": "Sources say goods for different stops are 'not mixed' and first-stop goods are loaded last (LIFO), but none states as a hard rule that later-stop goods never sit in front of or on top of earlier-stop goods.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: LIFO, block, accessible, not mixed, unload without.",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: overlap, mixing distance, stop boundary.",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "origin | {id: number, name: string} | No | Pickup location of the load (multi stops)",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "destination | {id: number, name: string} | No | Applies to the multi-stop feature and indicates the unloading location.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "At least 3 stops, one loading space, PRO-only. The API example shows a load being picked up at an intermediate stop.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Multistops, i.e. multiple loading and unloading locations, can only be added when you add a single loading space to the project. It is not possible to set points along the route for multiple semi-trailers or containers.",
       "url": "https://www.goodloading.com/en/manual/multistops/"
      },
      {
       "text": "Multistops apply to a single loading space only and must have at least 3 stops defined along the route.",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: whole stop, all or nothing, partial stop.",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: date, due date, delivery date, ship date.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Fill in the name, length, width, and height of the pallet – which refers to the height of the empty pallet, as well as the maximum height – which indicates the maximum height the pallet base and the goods stacked on it can have.",
       "url": "https://www.goodloading.com/en/manual/palletization/adding-pallets/"
      },
      {
       "text": "part.baseHeight | number | No | Height of the pallet base",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Palletisation is PRO-only.",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Click Create a layer. Check the layers proposed by the program and select one of them. Enter the number of layers. The application will automatically calculate the number of loads based on the selected number of layers.",
       "url": "https://www.goodloading.com/en/manual/palletization/creating-layers/"
      },
      {
       "text": "the system will analyze the allowed way of rotating the load and display a maximum of 3 arrangement options in the preview – along with information about the number of pieces in the layer.",
       "url": "https://www.goodloading.com/en/blog/pallets/new-feature-in-goodloading-advanced-palletization/"
      }
     ],
     "recipe": "",
     "note": "Up to 3 alternative layer patterns. The user sets the layer count, or 'Fill the pallet' computes the maximum. UI only, PRO-only, added Sep 2026.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Check the layers proposed by the program and select one of them. Enter the number of layers.",
       "url": "https://www.goodloading.com/en/manual/palletization/creating-layers/"
      },
      {
       "text": "By clicking on „+” or „-” you can change the number of layers for a given group of loads.",
       "url": "https://www.goodloading.com/en/manual/palletization/creating-layers/"
      }
     ],
     "recipe": "",
     "note": "No pattern styles (pinwheel, interlocked), saved patterns or alternating layers are documented.",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you want to distribute goods on pallets, add them as loaded spaces.",
       "url": "https://www.goodloading.com/en/manual/palletization/adding-pallets/"
      },
      {
       "text": "Arranging cargo inside a “pallet” space.",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      }
     ],
     "recipe": "",
     "note": "PRO-only. There are no pallet-specific mixing rules (for example level layers or columns).",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The 'extend beyond space' flag applies only to rear-loading vehicles.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: pallet overhang, extend beyond pallet.",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: centre on pallet, underhang, inset.",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Complete the name, thickness and indicate how many layers to add a translator. You can check if you want the last interlayer to be placed on the last layer or the first Interlayer under the first layer.",
       "url": "https://www.goodloading.com/en/manual/palletization/interlayers/"
      },
      {
       "text": "If the load is arranged on several layers, you can specify the frequency of adding interlayers – for example, every few layers or only on the very top (on the last one).",
       "url": "https://www.goodloading.com/en/blog/pallets/new-feature-in-goodloading-advanced-palletization/"
      }
     ],
     "recipe": "",
     "note": "Requires layers. Interlayers can be saved for reuse. PRO-only.",
     "searched": "",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: separate pallets, customer, order, do not mix.",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Go to the Loading to vehicle tab if you want the pallet to be loaded onto a previously added loaded space. ... The added pallet will be visible on the selected loaded space. If you add additional loads on it, they will automatically be displayed along with the pallet on the selected trailer or container.",
       "url": "https://www.goodloading.com/en/manual/palletization/loading-to-vehicle/"
      },
      {
       "text": "It is possible to arrange goods on pallets according to guidelines and then automatically plan their arrangement on the chosen means of transport.",
       "url": "https://www.goodloading.com/en/palletizing/"
      }
     ],
     "recipe": "",
     "note": "Pallet spaces and vehicles live in one project, and a pallet is linked to its target vehicle. PRO-only.",
     "searched": "",
     "corrected": {
      "reason": "Manual shows a linked per-pallet workflow; only marketing says it happens automatically in one calculation."
     }
    },
    "pallet-carry-over": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Go to the Loading to vehicle tab if you want the pallet to be loaded onto a previously added loaded space. ... The added pallet will be visible on the selected loaded space. If you add additional loads on it, they will automatically be displayed along with the pallet on the selected trailer or container.",
       "url": "https://www.goodloading.com/en/manual/palletization/loading-to-vehicle/"
      },
      {
       "text": "After palletizing, you can add a cargo space (a truck or a container) to the project and move the loaded pallet onto it. Its actual height will appear in the load’s description.",
       "url": "https://www.goodloading.com/en/blog/goodloading-3-0-the-10-most-important-changes-in-the-latest-version-of-the-planner/"
      }
     ],
     "recipe": "",
     "note": "The built pallet is carried to the vehicle with its actual height. Carrying over its weight is not stated explicitly.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: carton, box into pallet, nested, three level.",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: remainder, partial pallet, loose, palletise or not.",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No documented stacking or rotation settings for a built pallet once it is in the vehicle.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: pallet stacking in vehicle, pallet rotation, stack pallets.",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: pallet height, vehicle height, top tier.",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you enable the „optimal arrangement” function, the algorithm will search the load arrangement providing the greatest possible residual space, regardless of the order in which the loads were added.",
       "url": "https://www.goodloading.com/en/manual/algorithm-settings/arrange-optimally/"
      },
      {
       "text": "Enabling this feature will make the algorithm distribute all loads across all loading spaces in the project, regardless of their current position, to find the most optimal arrangement.",
       "url": "https://www.goodloading.com/en/manual/algorithm-settings/optimization-for-all-loads-and-cargo-spaces/"
      }
     ],
     "recipe": "",
     "note": "Loads that do not fit are returned in notFittedLoads.",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Arrange by weight' only orders placement heaviest first.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: maximise weight, weight utilisation, heaviest.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: balance, even distribution across vehicles, spread.",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To fill the pallet with a load, go to the Loading tab, complete the data about the load and click the „Fill the pallet” button. The algorithm will calculate the maximum number of loads that the pallet can hold.",
       "url": "https://www.goodloading.com/en/manual/palletization/filling-the-pallet/"
      }
     ],
     "recipe": "",
     "note": "Only when a pallet is the active loading space. PRO-only. The marketing claim to 'check how many goods a given loading space will fit' is not documented for vehicles.",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If the application still does not perform satisfactorily, you can go to Algorithm settings and select Simple algorithm. Enabling it will make the application faster, but the loads may be arranged less optimally. Importantly, this feature does not allow you to take advantage of the new features present in this version of Goodloading.",
       "url": "https://www.goodloading.com/en/manual/first-steps-in-the-application/application-speed/"
      },
      {
       "text": "Its simple algorithm is based on the ability to quickly add cubic loads to a project without the need to use advanced stacking features.",
       "url": "https://www.goodloading.com/en/manual/algorithm-settings/simple-algorithm/"
      }
     ],
     "recipe": "",
     "note": "No time limit or quality level. The API newAlgorithm flag may be the same switch, but that is not stated. Reproducibility is not stated.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Enabling this feature allows the application to suggest alternative loaded spaces of the same type that can accommodate the given load.",
       "url": "https://www.goodloading.com/en/manual/show-recommendations/"
      }
     ],
     "recipe": "",
     "note": "Recommendations 'suggest alternative loaded spaces', and palletisation offers up to 3 layer patterns, but neither is documented as returning several complete plans to compare.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: alternative, several solutions, compare, options.",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: rule, condition, if weight, attribute.",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Load name and colour are display fields only.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: custom field, attribute, tag, label.",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "boxesBelowAllowed is a per-load-ID whitelist (scored under stacking-item-pair); there is no class code shared across loads.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: class, category, stack code, matrix.",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: class, compatibility matrix, vehicle.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: sum, cap, custom quantity.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Loading side and payload are equipment properties set per part; algorithm options (order, optimisation, overweight) apply to the whole request.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: settings per vehicle, profile, per space.",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Stacking can be limited to a certain number of layers or a maximum weight of the loads to be placed on top of each other.",
       "url": "https://www.goodloading.com/en/faq/"
      },
      {
       "text": "Tier weight with the number of tiers set",
       "url": "https://www.goodloading.com/en/api/documentation/managing-loads-in-the-loading-space/"
      }
     ],
     "recipe": "",
     "note": "Tier limit, maxWeightOnTop, boxesBelowAllowed, pctSupport and alongFloor are separate per-load fields that can be set together; the API guide shows tiers and weight combined.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Arrange optimally' can be combined with load priority (API example 3), but that is one objective plus a placement order, not ordered or weighted objectives.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: objective, weighted, priority order, tolerance.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The vendor offers custom integration development ('Custom Integration'), which is vendor work, not a user mechanism.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: script, plug-in, callback, custom rule.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "allowOverweight turns the payload limit on or off; it does not turn it into a preference.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: soft, preference, hard, allowOverweight.",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Position of the load within the loading space, relative to the x, y and z axes. Looking from the front of the space, positions x: 0, y: 0, z: 0 correspond to the bottom right corner of the space.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "loadingSpace.part.load.placement.loadsPerAxis | json | Number of loads arranged along each axis",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Orientation is only implied by the placed dimensions (length and width swapped); for pipes, a zero length or width marks the direction. No orientation code, and manual tilts are not represented.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The file will include loading views, information about the loaded space, and a list of loads with the loading sequence.",
       "url": "https://www.goodloading.com/en/manual/additional-features-in-the-top-panel/pdf/"
      },
      {
       "text": "The person who receives the link will have access to the visualization along with the loading animation and the ability to download the project.",
       "url": "https://www.goodloading.com/en/manual/additional-features-in-the-top-panel/share-a-link-to-the-project/"
      }
     ],
     "recipe": "",
     "note": "Sharing is PRO-only per FAQ.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Z: number of loaded cargo N: number of non-loaded cargo W: total weight loaded P: free space in m² O: available / used load volume in m³ occupied and free LDM vehicle axle load",
       "url": "https://www.goodloading.com/en/manual/visualization/data-about-the-prepared-project/"
      },
      {
       "text": "loadingSpace.part.stop.summary.percentVolumeUsd | number | Occupied volume – as a percentage",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "Per space part: the loads placed in it, occupied/free LDM, area and volume, percentages, and total load weight. There is no weight-utilisation percentage; weight is given as a total next to capacity.",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "loadingSpace.part.summary.occupiedLdm | number | Number of loading meters used",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "loadingSpace.part.summary.freeLdm | number | Number of free loading meters",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "notFittedLoads | array | Loads that did not fit into any loading space",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "If there is not enough room for all loads, some of them will remain outside the space.",
       "url": "https://www.goodloading.com/en/manual/visualization/managing-added-loads-and-loaded-spaces/"
      }
     ],
     "recipe": "",
     "note": "API list with quantities; the UI shows the N (non-loaded) count and leaves the loads outside the space.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "notFittedLoads carries no reason field.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: reason, why not loaded, error, not fitting.",
     "corrected": null
    },
    "output-cog": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Check Display centre of gravity if you want it to be visible in the visualization.",
       "url": "https://www.goodloading.com/en/manual/adding-a-sea-container/centre-of-gravity/"
      },
      {
       "text": "\"COG\": { \"x\": 100, \"y\": 100, \"z\": 66.66",
       "url": "https://www.goodloading.com/en/api/documentation/updating-an-api-created-project-in-the-web-browser/"
      }
     ],
     "recipe": "",
     "note": "Containers (sea and air) in the UI; PRO-only.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "loadingSpace.part.axi.addedLoad | number | Axle load exerted by the arranged loads.",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "In the visualization of the processing result, the color indicates how heavily the axle is loaded: blue – light load red – overload",
       "url": "https://www.goodloading.com/en/api/documentation/loading-spaces/"
      }
     ],
     "recipe": "",
     "note": "The response repeats emptySpaceLoad and maxLoad per axle, so the margin can be derived; the UI colour-codes overloads. PRO-only in the web app.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: weight distribution, along length, per section.",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Container tare is entered for the COG check and axle tare per axle, but no gross weight including tare is documented as output.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: gross weight, VGM, tare, total weight including.",
     "corrected": null
    },
    "output-per-stop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "loadingSpace.part.stop.summary | json | Summary of the data for the given stop",
       "url": "https://www.goodloading.com/en/api/documentation/api-data-description/"
      },
      {
       "text": "After clicking on a specific point on the route, you can see a visualization of the loaded space corresponding to a given location.",
       "url": "https://www.goodloading.com/en/manual/multistops/"
      }
     ],
     "recipe": "",
     "note": "Per-stop summaries (LDM, area, volume, weight) and loads, plus a view at each stop. Multistop needs one space and is PRO-only.",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Remember that if you have not enabled the Stack option, you will not be able to place another load on top of it.",
       "url": "https://www.goodloading.com/en/manual/visualization/working-with-visualization/"
      }
     ],
     "recipe": "",
     "note": "The editor blocks stacking on a load without the Stack option, and axle colours and the container COG warning reflect the current plan. There is no documented check of an edited plan against the item rules and no violations list.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: validation, warning, violation, check, manual editing.",
     "corrected": null
    },
    "output-voids": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Highlight free space – shows where the load can be placed with free space highlighting feature.",
       "url": "https://www.goodloading.com/en/manual/additional-features-in-the-top-panel/load-settings/"
      }
     ],
     "recipe": "",
     "note": "The UI option 'Highlight free space' shows where a load could be placed; it is a display aid with no size threshold or output.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: void, free space, airbag, dunnage.",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "A blog post on freight rates refers to LDM and weight figures only.",
     "searched": "Searched all 69 English manual pages (wp-json/wp/v2/manual, read in full); API data description, Loading spaces, Managing loads (all worked examples), Recommendations, Introduction, Updating an API-created project, API FAQ; FAQ, home, road/maritime/air/palletizing/manufacturers/about/railway pages, and 98 English blog posts 2022-09 to 2026-09 (wp-json/wp/v2/posts) including all release notes. Terms: cost, price, freight rate.",
     "corrected": null
    }
   }
  },
  {
   "id": "easycargo",
   "name": "EasyCargo",
   "vendor": "EasyCargo",
   "url": "https://www.easycargo3d.com/en/",
   "auditedOn": "2026-09-30",
   "caveat": "",
   "scope": "Single SaaS web application (no editions;",
   "sources": [
    {
     "title": "EasyCargo Help (Knowledge Base, FAQ, Tutorial videos)",
     "url": "https://help.easycargo3d.com/"
    },
    {
     "title": "EasyCargo Handbook, Version 7, 15 Jan 2026 (PDF, 53 pages, Google Drive)",
     "url": "https://bit.ly/ENhandbookver7"
    },
    {
     "title": "REST API v1 Reference",
     "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
    },
    {
     "title": "Release notes (pages 1-10)",
     "url": "https://www.easycargo3d.com/en/release-notes/"
    },
    {
     "title": "EasyCargo homepage / product features",
     "url": "https://www.easycargo3d.com/en/"
    },
    {
     "title": "Journal (product news)",
     "url": "https://www.easycargo3d.com/en/journal/"
    },
    {
     "title": "Blog (marketing and guidance)",
     "url": "https://www.easycargo3d.com/en/blog/"
    }
   ],
   "passed": 36,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "select the type of cargo space and enter the required details: length, width, height, max load of the cargo space",
       "url": "https://www.easycargo3d.com/en/blog/how-can-you-calculate-your-truckload-capacity-use-software-dont-do-it-manually/"
      },
      {
       "text": "If the documentation does not directly specify the dimensions of the loading area, make sure you specify the internal dimensions of the cargo space.",
       "url": "https://help.easycargo3d.com/article/893/work-with-cargo-spaces"
      }
     ],
     "recipe": "",
     "note": "Predefined catalogue (about 45 types) plus custom spaces (Administrator role only). The API can create only Container-type spaces, dimensions [1;100000] mm.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No obstruction input. The only related vendor material is the double-decker blog's 'dummy cargo item' (an ordinary cargo item the size of the deck, placed first so upper-deck goods stack on it); it has no user-set position and is documented for visualising a deck, not for blocking a region. A sprinter-van blog mentions wheel wells as 'dead zones' only as general advice.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: obstacle, obstruct, blocked, unusable, wheel arch, wheel well, reefer, cooling unit, dummy, placeholder, dead zone.",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No blocked regions of any kind are documented.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: obstacle, obstruct, blocked region, zone, keep clear, dummy item.",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Loading Size – usable CargoSpace size can now be adjusted for each Shipment. It can be made smaller or even bigger",
       "url": "https://www.easycargo3d.com/en/release-notes/page/7/"
      },
      {
       "text": "these settings can also be used when it is necessary to leave space between the cargo and the ceiling for airflow, especially in the scenario of a refrigerated container.",
       "url": "https://help.easycargo3d.com/article/1619/how-to-create-a-load-plan-for-oversized-cargo"
      }
     ],
     "recipe": "",
     "note": "Lowers usable height (or length/width) for one shipment without editing the equipment. It is a smaller box, not a separate clearance parameter, but the vendor documents it for exactly this purpose.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Vendor advice for uneven floors is to approximate: 'If the floor slopes, fill in the lesser of the clearances.' (https://help.easycargo3d.com/article/893/work-with-cargo-spaces). Cargo spaces are single boxes.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: step, drop-deck, step-deck, gooseneck, swan neck, split-level, floor height, slope, lower deck.",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "All cargo spaces are boxes; no ULD or rail equipment in any source.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: contour, profile, cross-section, ULD, curved roof, cut-back, chamfer, slope.",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No contour input of any kind.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: contour, profile, cross-section, ULD, step, slope.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only reference to slopes is the advice to enter the lesser clearance of a sloping floor (help article 893), i.e. approximate with a box.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: slope, sloped, angle, chamfer, contour.",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "Currently, EasyCargo does not automatically load double-decker trucks. This is because the variability in design, flexible height, and removable nature of auxiliary decks complicates the optimization algorithm.",
       "url": "https://www.easycargo3d.com/en/blog/using-easycargo-to-optimize-load-planning-for-double-decker-trailers/"
      },
      {
       "text": "The method for simulating two-tier loading relies on the flexible use of the Maximum Loading Height and load capacity function .",
       "url": "https://www.easycargo3d.com/en/blog/using-easycargo-to-optimize-load-planning-for-double-decker-trailers/"
      }
     ],
     "recipe": "",
     "note": "Vendor-stated limitation for double decks, with a documented two-pass workaround (cap loading height at the deck height with half payload, remove loaded items, load again). No multi-hold, shelf, section or road-train-as-one-unit modelling found. A truck attached to a semitrailer is used only for axle loads, not as a second loading space.",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Door dimensions are not a cargo-space field (fields: length, width, height, max load, track size, axles).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: door, door opening, aperture, entrance, door width, door height.",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The planner always fills 'from the front wall to the back' for trucks and containers (https://help.easycargo3d.com/article/59/loading-pallets); no loading-face setting.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: side load, side door, curtain, top load, loading face, access, from the side, rear door.",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To simulate an open-top container, increase the height of the selected container’s loading space. ... For flat-rack containers, you’ll need to increase both the height and the width of the loading size to reflect the open sides.",
       "url": "https://www.easycargo3d.com/en/journal/plan-shipments-with-open-top-and-flat-rack-containers/"
      },
      {
       "text": "It can be made smaller or even bigger, which allows cargo to overhang the actual vehicle",
       "url": "https://help.easycargo3d.com/article/58/weight-distribution"
      }
     ],
     "recipe": "1. Select a standard container or flatbed from the catalogue (https://help.easycargo3d.com/article/34/1-which-cargo-spaces-are-available). 2. In Loading Calculation Settings, click the truck (Loading size) icon and enlarge height (open-top), height and width (flat-rack) or length (overhang) by a delta or absolute value (https://help.easycargo3d.com/article/1619/how-to-create-a-load-plan-for-oversized-cargo; https://www.easycargo3d.com/en/journal/plan-shipments-with-open-top-and-flat-rack-containers/). 3. Press Load; the planner packs within the enlarged envelope (https://help.easycargo3d.com/article/58/weight-distribution).",
     "note": "Which end a length overhang extends from (rear only or both) and whether width grows symmetrically is not stated for vehicles; the pallet example grows width '20 centimeters on each side'. No wall-height notion: the enlarged box applies to all items, not only those above the walls.",
     "searched": "",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Items that did not fit will be loaded into the next cargo space of the same type. The maximum number of additional cargo spaces that can be generated beyond the first cargo space is 9. If all items do not fit, the process needs to be repeated with the remaining items.",
       "url": "https://help.easycargo3d.com/article/1031/5-can-i-load-into-more-cargo-spaces"
      },
      {
       "text": "Automatic multi-load report generation – a new option in the Print window to automatically load the rest of the shipment items into other cargo spaces and generate a report for each load.",
       "url": "https://www.easycargo3d.com/en/release-notes/page/6/"
      }
     ],
     "recipe": "",
     "note": "Same cargo-space type only; at most 9 additional spaces (10 reports); triggered from the Print dialog ('Load remaining items into additional cargo spaces'). The vendor's Oct 2023 comparison saying EasyCargo does not offer this is outdated (option exists since May 2022).",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "If you want to load the remaining items in another type of cargo space, please uncheck the option “ Load remaining items into additional cargo spaces” and only keep the first option checked “ Remove loaded items from input list” . In the next step, you will be able to choose the cargo space best suited for your needs.",
       "url": "https://help.easycargo3d.com/article/1031/5-can-i-load-into-more-cargo-spaces"
      }
     ],
     "recipe": "",
     "note": "The user picks each equipment type and re-runs the planner on the leftovers; no automatic choice among types. Per the row's definition note this sequence of manual passes is a workaround.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only cap is the fixed maximum of 9 additional same-type spaces in the overflow option, which is a product limit, not a user input.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: available, quantity, number of containers, number of trucks, fleet, limit spaces.",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Favorites' on cargo spaces are a list filter only (https://help.easycargo3d.com/article/893/work-with-cargo-spaces).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: prefer, preference, priority cargo space, favourite, fill first, fallback.",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The user chooses: the homepage says the result 'allows you to decide whether to change the type of container for a smaller one', and the tutorial says 'If you want, you can choose a smaller container that will be better utilized' (https://help.easycargo3d.com/article/90/load-planning-into-more-cargo-spaces).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: smallest, smaller, best suited, recommend, suggest container, optimal container.",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Cost mentions concern licences and an ROI calculator only.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: cost, price, rate, freight cost, cheapest.",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "A blog gives general advice to leave about 10% of a container empty, with no setting. Shrinking the loading size can reserve space but is not a percentage cap.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: percent, %, fill, reserve, maximum fill, utilisation limit.",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: minimum, min fill, at least, under-filled.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Items carry no equipment restriction; each shipment has one cargo space.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: assign, restrict, only in, cargo space per item, pallet type.",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only manual routes: plan separate shipments, or drag items by hand in the manual editor (workaround).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: assign, specific container, per container, unit, group to container.",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: dimension range, minimum/maximum size, carton size, box sizing.",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Please enter the dimensions , amount (number of pieces) and weight (total or per piece)",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      },
      {
       "text": "More than 10 000 items of up to 250 different types in one shipment",
       "url": "https://www.easycargo3d.com/en/"
      }
     ],
     "recipe": "",
     "note": "Scale: more than 10,000 items of up to 250 types per shipment; Excel import up to 250 item types; API pieces [0;10000] per item type.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Currently, you can only plan the loading of cuboid and rectangular shapes with EasyCargo. Unfortunately, cylindrical shapes/pipes/other round articles are not supported yet.",
       "url": "https://help.easycargo3d.com/article/37/6-can-i-load-cylindrical-shapes--pipes--round-articles--irregular-shapes"
      }
     ],
     "recipe": "",
     "note": "Vendor states cylinders are not supported.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Currently, you can only plan the loading of cuboid and rectangular shapes with EasyCargo. Unfortunately, cylindrical shapes/pipes/other round articles are not supported yet.",
       "url": "https://help.easycargo3d.com/article/37/6-can-i-load-cylindrical-shapes--pipes--round-articles--irregular-shapes"
      }
     ],
     "recipe": "",
     "note": "Follows from the cylinder limitation; no nesting possible.",
     "searched": "",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Please note that currently EasyCargo only works with cuboid rectangular shapes . Other shapes are not supported yet.",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      },
      {
       "text": "we don’t plan to add triangular shapes as the calculation would become too complex.",
       "url": "https://help.easycargo3d.com/article/37/6-can-i-load-cylindrical-shapes--pipes--round-articles--irregular-shapes"
      }
     ],
     "recipe": "",
     "note": "Only cuboids; the vendor suggests approximating two right-angled triangles as one box.",
     "searched": "",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Please note that currently EasyCargo only works with cuboid rectangular shapes . Other shapes are not supported yet.",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      }
     ],
     "recipe": "",
     "note": "Items are solid cuboids, so no item has free space for other cargo. Nothing found on placing cargo inside or under another item.",
     "searched": "",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Please note that currently EasyCargo only works with cuboid rectangular shapes . Other shapes are not supported yet.",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      },
      {
       "text": "we don’t plan to add triangular shapes as the calculation would become too complex.",
       "url": "https://help.easycargo3d.com/article/37/6-can-i-load-cylindrical-shapes--pipes--round-articles--irregular-shapes"
      }
     ],
     "recipe": "",
     "note": "FAQ 6 covers 'irregular shapes' together with cylinders.",
     "searched": "",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: bulk, liquid, loose, amorphous, volume only, shapeless.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: compress, soft, squeeze, deform, tolerance.",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Quantities are entered per item type in pieces; no packaging hierarchy.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: pack level, case, inner, bundle, each, carton per pallet, unit of measure.",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can set the constraints : do not tilt , do not stack on this cargo item and/or do not rotate . The dark bar indicates the bottom of the box.",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      },
      {
       "text": "is_tiltable | bool | Tilting allowed/not allowed",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "Per item type boolean (UI, Excel, API is_tiltable).",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When you mark the box as non-rotating, the side marked as length will be placed lengthwise in the cargo area, the side marked as width will be placed crosswise.",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      },
      {
       "text": "is_rotable | bool | Rotation allowed/not allowed",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "Per item type; forces the entered length along the vehicle.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can set the constraints : do not tilt , do not stack on this cargo item and/or do not rotate . The dark bar indicates the bottom of the box.",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      },
      {
       "text": "is_tiltable | bool | Tilting allowed/not allowed",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "With tilt and rotation allowed (the defaults), the item may be placed on other faces.",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only one tilt flag per item (all-or-nothing); per the definition note this fails.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: tilt, side, end, upright, orientation, allowed orientations.",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Three booleans only (rotate, tilt, stack).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: orientation, allowed orientations, six, face, axis.",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: prefer, preferred orientation, where possible.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: floor, bottom layer, orientation.",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Stacking is a single per-item boolean.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: stack, orientation, on its side, on base.",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Manual editor rotation is by arrow clicks; no automatic non-orthogonal placement documented.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: angle, lean, degrees, diagonal.",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Currently, you can only plan the loading of cuboid and rectangular shapes with EasyCargo. Unfortunately, cylindrical shapes/pipes/other round articles are not supported yet.",
       "url": "https://help.easycargo3d.com/article/37/6-can-i-load-cylindrical-shapes--pipes--round-articles--irregular-shapes"
      }
     ],
     "recipe": "",
     "note": "No cylinder items at all.",
     "searched": "",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can set the following constraints on your items: do not tilt, do not stack on this cargo item, and/or do not rotate.",
       "url": "https://bit.ly/ENhandbookver7 (EasyCargo Handbook v7, 15 Jan 2026, PDF) p.9"
      },
      {
       "text": "is_stackable | bool | Stacking allowed/not allowed",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "Per item type boolean. Marking all items non-stackable is also the vendor's suggested way to stop height-first stacking.",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "'Do not stack on this cargo item' forbids cargo on top of the item; nothing requires the item itself to stand on the floor.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: floor, bottom, must be on floor, ground.",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: not on floor, on top only, top layer.",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "By lowering the ceiling of the space, you can enforce loading into layers. This enables you to specify how many layers or how many other items you can place on a particular item.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-create-an-oversized-cargo-load-plan/"
      }
     ],
     "recipe": "",
     "note": "Only by lowering the shipment's usable height, which applies to every item at once. The definition note classes this tip as a workaround.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "concedes-gap",
      "workaround"
     ],
     "quotes": [
      {
       "text": "By lowering the ceiling of the space, you can enforce loading into layers. This enables you to specify how many layers or how many other items you can place on a particular item.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-create-an-oversized-cargo-load-plan/"
      }
     ],
     "recipe": "",
     "note": "The same ceiling tip caps the stack for the whole unit, but only in height, not in tier count; it gives a tier limit only when items share one height.",
     "searched": "",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No per-item height limit. The per-shipment loading size lowers the ceiling for all items (see equipment-height-cap).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: maximum height, stack height, height limit, placement height.",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Stacking is binary (is_stackable). The vendor's workaround for weight-sensitive items is the group-level 'No stacking of priority groups allowed' (help article 97).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: load bearing, bearing, weight on top, crush, maximum weight on, strength, kg on top.",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No bearing limit at all. 'Pressure' appears only for kingpin load in a release note.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: pressure, per area, kg/m2, contact area.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No bearing limit at all.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: load bearing, weight on top, same item.",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Default order is largest items first (by size), not by weight. General blog advice to keep heavy items low is not described as a planner rule.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: heavier, heavy, lighter, weight order, heavy at the bottom.",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: strength, fragility, fragile, index, class.",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you want to prevent group overlap, use the \"No stacking of priority groups allowed\" or the \"Split of priority groups with a invisible wall\" command. The former setting prevents groups from stacking.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      }
     ],
     "recipe": "",
     "note": "Closest is the group-level 'No stacking of priority groups allowed', which bans all cross-group stacking and cannot express a permission for one specific pair.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: stack on, allowed to stack, matrix, pair, compatible.",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found. The pallet algorithm builds identical layers, which is a property of that algorithm, not a user rule.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: footprint, column, aligned, same size, larger on smaller, overhang.",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The pallet journal says the algorithm works 'while maintaining the load stable', with no parameter; nothing for the standard algorithm.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: support, supported, overhang, stable, stability.",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: bridge, height difference, gap, uneven.",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Cuboids only.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: nest, nesting, nestable, top shape.",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The pallet algorithm loads identical layers of one item type, but no rule about incomplete top layers or remainders is documented.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: complete layer, full layer, complete stack, flat top, remainder.",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Thanks to this feature, you can easily divide items into different priority groups based on the order in which you need to unload them. You can also use this feature to keep certain items together.",
       "url": "https://www.easycargo3d.com/en/blog/how-to-calculate-a-containers/"
      },
      {
       "text": "(Priority) Groups enable you to decide in which order the items will be loaded into the cargo space. Items in Group 1 will be loaded first , followed by the second group, then comes the third group, etc.",
       "url": "https://help.easycargo3d.com/article/61/how-to-change-the-order-of-loading-using-priority-groups"
      }
     ],
     "recipe": "1. Put the item type on its own in a priority group; up to 50 groups per shipment (https://help.easycargo3d.com/article/96/determining-the-loading-order-through-priority-groups). 2. Keep the default 'Respect separation', which loads group by group ('We finish loading Group 1 completely before touching Group 2', https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/), or choose 'Split of priority groups with an invisible wall' for a separate section (https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-). 3. Load.",
     "note": "No dedicated keep-identical-together switch. Using a group also fixes that item's place in the loading order.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Thanks to this feature, you can easily divide items into different priority groups based on the order in which you need to unload them. You can also use this feature to keep certain items together.",
       "url": "https://www.easycargo3d.com/en/blog/how-to-calculate-a-containers/"
      },
      {
       "text": "The latter setting also divides the cargo space into separate sections , each of which contains one priority group. This way, it's possible to physically divide the cargo directly inside the container with support bars.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      }
     ],
     "recipe": "",
     "note": "Up to 50 named priority groups (UI, Excel, API). Groups double as the loading sequence. Under the default 'Respect separation', later groups may be stacked onto earlier ones; the invisible wall gives strict separation.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The overflow option ('Load remaining items into additional cargo spaces') documents nothing about keeping groups whole across spaces.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: group, additional cargo spaces, split, same container.",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: group, all or nothing, partial, whole order, not loaded.",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The latter setting also divides the cargo space into separate sections , each of which contains one priority group. This way, it's possible to physically divide the cargo directly inside the container with support bars.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      },
      {
       "text": "Split with an invisible wall: Imagine a vertical wall between your groups. It keeps them totally separate, like they are in different rooms. This is essential for separating dangerous goods , maintaining high-security loads , or simply ensuring different clients’ orders never touch.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      }
     ],
     "recipe": "",
     "note": "Per-shipment setting applied to all groups; sections follow group order along the length. No divider thickness is modelled; the vendor suggests physical support bars at the section boundary.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The former setting prevents groups from stacking. The setting can be used for example to separate items that can be stacked but that should not have other items placed on top of them for weight reasons etc.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      },
      {
       "text": "No stacking of priority groups: Do you have fragile stuff in Group 1? Select this. We won’t let Group 2 sit on top of Group 1.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      }
     ],
     "recipe": "",
     "note": "Per-shipment switch covering all groups at once; groups are also the loading order.",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Groups can also be used in case you need to divide items that should not be mixed, e.g., dangerous products.",
       "url": "https://help.easycargo3d.com/article/49/prerequisites"
      }
     ],
     "recipe": "",
     "note": "Groups separate items within one cargo space; nothing keeps items or groups out of the same unit except planning separate shipments by hand.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: not mixed, separate container, incompatible, segregation, same unit.",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Split with an invisible wall: Imagine a vertical wall between your groups. It keeps them totally separate, like they are in different rooms. This is essential for separating dangerous goods , maintaining high-security loads , or simply ensuring different clients’ orders never touch.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      },
      {
       "text": "Groups can also be used in case you need to divide items that should not be mixed, e.g., dangerous products.",
       "url": "https://help.easycargo3d.com/article/49/prerequisites"
      }
     ],
     "recipe": "1. Put the items to be kept apart into different priority groups (https://help.easycargo3d.com/article/61/how-to-change-the-order-of-loading-using-priority-groups). 2. Select 'Split of priority groups with an invisible wall', which puts each group in its own section of the space (https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-). 3. Load; groups are 'totally separate, like they are in different rooms', so no item of one group is above one of another (https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/).",
     "note": "Applies between all groups of the shipment, not selected pairs, and the groups' order along the unit follows their loading order.",
     "searched": "",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Groups can also be used in case you need to divide items that should not be mixed, e.g., dangerous products.",
       "url": "https://help.easycargo3d.com/article/49/prerequisites"
      }
     ],
     "recipe": "",
     "note": "No hazard-class attribute; the vendor suggests groups (and the invisible wall) for dangerous goods, which are scored under the composable rows.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: dangerous, hazardous, hazmat, ADR, IMDG, class, UN number, segregation.",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only weight and volume are capped.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: value, price, count limit, pieces per container, points, sum.",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The 250 item types per shipment is a product scale limit, not a per-unit rule.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: number of item types, distinct, SKU limit, orders per container.",
     "corrected": null
    },
    "between-ratio": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: ratio, set, kit, proportion.",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: multiple of, batch, lot size.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To start loading items manually from scratch , click the hand icon to the left of the “Load” button.",
       "url": "https://help.easycargo3d.com/article/60/manual-adjustments-of-an-automatically-calculated-load-plan-"
      }
     ],
     "recipe": "",
     "note": "The manual editor lets the user place items by hand or 'start loading manually right from the beginning', and drag items from the input list into the space. No source says the planner then loads the rest around items placed by hand, and changed dimensions or restrictions 'still require a manual recalculation of the entire loading plan'.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: lock, fix, pin, keep position, pre-loaded, complete the plan, re-plan, reload.",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The API shipment_input item fields are group_name, description, pieces, width, height, length, total_weight, is_stackable, is_tiltable, is_rotable; no position. Positions appear only in output. Asked how to influence the result, the vendor answers 'you can use either priority groups or manual load plan adjustments' (https://help.easycargo3d.com/article/1119/7-how-can-i-influence-the-load-plan-result).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: position, coordinate, fixed position, x y z, location input.",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only indirect: priority group 1 is loaded first and sits deepest (front wall); with the invisible wall each group gets a section in group order. No region can be assigned to an item.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: zone, region, front, rear, side, area, location.",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Of course, the space can also be reduced to specific scenarios, such as when you need to use the end of the vehicle for additional cargo.",
       "url": "https://help.easycargo3d.com/article/1619/how-to-create-a-load-plan-for-oversized-cargo"
      },
      {
       "text": "Loading Size – usable CargoSpace size can now be adjusted for each Shipment. It can be made smaller or even bigger",
       "url": "https://www.easycargo3d.com/en/release-notes/page/7/"
      }
     ],
     "recipe": "",
     "note": "Per-shipment loading size keeps all items out of a strip at the end, top or side of the space. It cannot exclude an interior region (such as a central aisle) or apply to specific items only.",
     "searched": "",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When loading cargo into containers or trucks, the software loads the container from the front to the back.",
       "url": "https://help.easycargo3d.com/article/59/loading-pallets"
      }
     ],
     "recipe": "",
     "note": "Fixed: trucks and containers front wall to back, largest first; pallets bottom-up in layers. The algorithm is chosen by space type, not by the user. The definition note says a single fixed order fails.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: direction, front to back, fill from, loading direction, pattern.",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Please note that EasyCargo primarily stacks the items up heightwise in order to use as little floor space of the cargo space as possible. To prevent this, you can either set the items as non-stackable (settings on item type level), adjust the load plan manually, or divide the items into groups, and disable the stacking of groups.",
       "url": "https://help.easycargo3d.com/article/61/how-to-change-the-order-of-loading-using-priority-groups"
      }
     ],
     "recipe": "",
     "note": "There is no floor-first switch. The vendor's workarounds are non-stackable items, manual editing, or group no-stacking.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: floor first, spread, single layer, floor space, heightwise.",
     "corrected": null
    },
    "positioning-handling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: forklift, reach, depth, turning, handling equipment.",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only a gap under the ceiling via loading size (see equipment-height-cap); no gap between items.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: gap, clearance, spacing, distance between, space around.",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The vendor tells users the load 'must be secured properly to prevent it from moving during transport' (help article 1176); no planner check.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: shift, secure, support, backed, against wall, movement.",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When planning the transport of very heavy items, it is possible that with the standard calculation settings, only part of the shipment will be loaded, even though the free space will not be fully used. If you change the Weight limit settings to Ignore weight limits when loading, the load may fit into the selected cargo space, but the vehicle could be overloaded.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      },
      {
       "text": "please note that the Respect weight limits option is automatically disabled when there are more than 10.000 items in the loading",
       "url": "https://help.easycargo3d.com/article/58/weight-distribution"
      }
     ],
     "recipe": "",
     "note": "Per cargo space max load up to 99 t (since May 2025); per-shipment Respect/Ignore toggle; Respect is switched off automatically above 10,000 items. Applies to pallets too.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No compartments; limits are per cargo space and per axle.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: compartment, deck, section, zone, weight limit per.",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: section, segment, front, rear, weight per area, floor load.",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: per meter, per metre, kg/m, linear, weight per length.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "EasyCargo automatically calculates the optimal pallet count while respecting space and axle load constraints.",
       "url": "https://www.easycargo3d.com/en/blog/how-to-optimize-pallet-loading/"
      },
      {
       "text": "If you turn on Shift loaded items to mass center in the adjacent menu, the calculation is adjusted, which can lead to loading more items even within the specified weight limits that would be exceeded with the default settings.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      }
     ],
     "recipe": "",
     "note": "Per-axle maximum loads are documented inputs, and the per-shipment 'Respect weight limits' toggle is documented. Enforcement of the axle limits in particular is stated outright only in marketing blogs ('respecting ... axle load constraints'; 'will help you both with the optimization of the load plan and axle weights', https://www.easycargo3d.com/en/blog/how-to-load-a-truck/). Help-centre tutorial 1176 implies it: shifting to the mass centre lets more items load 'within the specified weight limits', which could only change axle loads, not the total. Other wording points to verification only: the homepage lists 'Verify weight distribution compliance with permitted limits' and separates 'net weight is respected' from axle 'calculation', and the handbook shows red arrows 'In case the weight limit is not respected' (p.25). Same 10,000-item switch-off as payload.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Then, for each axle of your vehicle, enter the following dimensions: the distance from the front of the trailer, the tare weight, and the maximum load capacity.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      },
      {
       "text": "Flatbed trailers with 1, 2 and 3 axles ... Trucks with semitrailers: 1, 2 and 3 axles ... Trucktors with 2 and 3 axles",
       "url": "https://www.easycargo3d.com/en/"
      }
     ],
     "recipe": "",
     "note": "Each axle has its own distance, tare and maximum load; predefined units have up to 3 axles, and a tractor-plus-semitrailer combination carries both units' axles. No hard upper count is stated for custom spaces. The model feeds the axle report; whether it constrains the plan is unresolved (see weight-axle-limits).",
     "searched": "",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Then, for each axle of your vehicle, enter the following dimensions: the distance from the front of the trailer, the tare weight, and the maximum load capacity.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      },
      {
       "text": "When the correct dimensions , empty per axle weights , and proper limits for truck and trailer are filled in, then weight distribution can be verified in accordance with the regulations .",
       "url": "https://www.easycargo3d.com/en/journal/cargo-spaces-for-north-america-and-australia-have-just-arrived/"
      }
     ],
     "recipe": "",
     "note": "Tare per axle is an input; the axle arrows also show 'the minimal weight of an empty cargo space' (2019 journal).",
     "searched": "",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you want to use a semi-trailer, it is recommended to choose a truck to go with it. This is the only way to correctly determine the axle loads and the weight distribution of the load. It is possible to complete the load without a truck. However, the load on the kingpin will not be distributed to the truck axles",
       "url": "https://help.easycargo3d.com/article/893/work-with-cargo-spaces"
      },
      {
       "text": "Notification when Truck – Semitrailer combination seems to be incompatible",
       "url": "https://www.easycargo3d.com/en/release-notes/"
      }
     ],
     "recipe": "",
     "note": "Semitrailers and flatbeds; kingpin load passed to the attached truck's axles. A Feb 2023 release note mentions a semitrailer/flatbed 'maximal pressure on a kingpin'.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Limits are typed per vehicle. The 2019 journal refers users to an external site for state axle regulations; the drayage blog's 'for whatever state you need' line gives no mechanism.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: jurisdiction, state, country, regulation, legal limit, bridge formula, permit, tandem, tridem.",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only 'Shift loaded items to mass center' (a centring option, scored under weight-balance-soft); no permitted range.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: centre of gravity, center of gravity, CoG, range, tolerance, window.",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The axle view lets the user 'check the balance of the right and left sides' (report only); mass-centre shift also centres laterally. No bound can be set.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: lateral, left/right, side balance, centre of gravity.",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: vertical centre of gravity, height of centre of gravity, low centre.",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You can see that the load has been moved so that its center of gravity is the same as the center of gravity of the cargo space, which also leads to a better load balance.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      },
      {
       "text": "If you turn on Shift loaded items to mass center in the adjacent menu, the calculation is adjusted, which can lead to loading more items even within the specified weight limits that would be exceeded with the default settings.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      }
     ],
     "recipe": "",
     "note": "Per-shipment toggle 'Shift loaded items to mass center'.",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Items have only total or per-piece weight.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: centre of gravity item, off-centre, eccentric, CoG offset.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "(Priority) Groups enable you to decide in which order the items will be loaded into the cargo space. Items in Group 1 will be loaded first , followed by the second group, then comes the third group, etc.",
       "url": "https://help.easycargo3d.com/article/61/how-to-change-the-order-of-loading-using-priority-groups"
      },
      {
       "text": "In EasyCargo, the logic is simple: Group 1 goes into the truck FIRST. This means Group 1 will be placed deepest in the cargo space.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      }
     ],
     "recipe": "",
     "note": "Up to 50 ordered groups; group 1 deepest (front wall). Without groups the built-in order is largest items first. Order is by group, not per item.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Respect separation: This is the standard setting. We finish loading Group 1 completely before touching Group 2.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      },
      {
       "text": "(Priority) Groups enable you to decide in which order the items will be loaded into the cargo space. Items in Group 1 will be loaded first , followed by the second group, then comes the third group, etc.",
       "url": "https://help.easycargo3d.com/article/61/how-to-change-the-order-of-loading-using-priority-groups"
      }
     ],
     "recipe": "",
     "note": "When space runs out, the group loaded first is the one that gets space first. A blog on choosing 'which items get shipped and which stay' points to priority groups as the answer (https://www.easycargo3d.com/en/blog/how-to-calculate-a-containers/). The same priority also fixes position (deeper = earlier).",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Manual only: the '+' icon lets the user add more items of a type 'if there is room for it' (handbook p.19).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: optional, fill item, filler, if space, extra items.",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Priority groups influence the order in which items are placed in the load plan and, therefore, are useful if you need to load or unload cargo sequentially during transport.",
       "url": "https://help.easycargo3d.com/article/96/determining-the-loading-order-through-priority-groups"
      },
      {
       "text": "In EasyCargo, the logic is simple: Group 1 goes into the truck FIRST. This means Group 1 will be placed deepest in the cargo space.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      }
     ],
     "recipe": "",
     "note": "Stops are expressed as named priority groups; the documentation maps group order to position along the unit (deepest to door). Within a group the default largest-first order applies.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Split with an invisible wall: Imagine a vertical wall between your groups. It keeps them totally separate, like they are in different rooms.",
       "url": "https://www.easycargo3d.com/en/journal/do-you-need-to-load-or-unload-the-cargo-gradually-with-priority-groups-its-a-piece-of-cake/"
      },
      {
       "text": "The latter setting also divides the cargo space into separate sections , each of which contains one priority group.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      }
     ],
     "recipe": "",
     "note": "The default 'Respect separation' is soft: later groups may stack on earlier ones and 'an item may overlap too much with an item from the previous group'. 'No stacking of priority groups' blocks the above direction only. The invisible wall gives hard sections.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Sometimes, an item may overlap too much with an item from the previous group. In that case, we recommend using one of the following settings.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      }
     ],
     "recipe": "",
     "note": "Only qualitative choices: respect separation (overlap allowed), no stacking, invisible wall (no overlap). No overlap distance.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: overlap, mixing, distance between stops, look-ahead.",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: pickup, pick-up, origin, collection, load at stop.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The overflow option documents nothing about how priority groups are distributed across the additional spaces.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: groups additional cargo spaces, multi-stop multiple trucks, overflow groups.",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: whole group, partial, all or nothing, not loaded group.",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Dates appear only as API filters on shipment creation date.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: date, due date, delivery date, ship date, time window.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "concedes-gap",
      "workaround"
     ],
     "quotes": [
      {
       "text": "Under the Cargo spaces tab, you can find pallets - there are standard types of pallets available (such as EPAL 1, 2, 3, 6, or US pallets), which you can add to favorites, customize, or even create completely new ones to your liking.",
       "url": "https://help.easycargo3d.com/article/59/loading-pallets"
      },
      {
       "text": "You can also adjust the height at which the pallet can be loaded at your discretion.",
       "url": "https://help.easycargo3d.com/article/1619/how-to-create-a-load-plan-for-oversized-cargo"
      }
     ],
     "recipe": "",
     "note": "A pallet is a box-shaped cargo space with a load height and a maximum load. No deck-height field is documented, so a total-height limit that includes the deck has to be worked out by the user (data prepared outside the tool).",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Therefore, the algorithm proceeds in layers from the bottom of the pallet upwards. Any forthcoming restrictions are taken into account when loading pallets such as stackability, tiltability, or maximum pallet load.",
       "url": "https://help.easycargo3d.com/article/59/loading-pallets"
      },
      {
       "text": "In the image above, you can also notice how the item is rotated as needed using different loading patterns for the best possible use of space.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-load-a-pallet/"
      }
     ],
     "recipe": "",
     "note": "One item type per pallet; identical layers; one pattern returned (no alternatives). Added May 2022.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The algorithm picks the pattern itself; the vendor's blog posts on column vs interlocking stacking are general guidance with no setting.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: pattern, pinwheel, interlock, column, block, layer rotation, cases per pallet.",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "So far, you can only load one type of item (that is, items of the same dimensions, weight, and restrictions) at a time and each layer is loaded on the pallet in the same way as the previous layers.",
       "url": "https://help.easycargo3d.com/article/59/loading-pallets"
      },
      {
       "text": "We plan to improve the algorithm so that it can load different types of items and, last but not least, to be able to optimally load loaded pallets into the selected cargo space.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-load-a-pallet/"
      }
     ],
     "recipe": "",
     "note": "Mixed items on a pallet space fall back to the standard front-to-back algorithm, so mixed pallets are not built in layers.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "However, if you increase the overlap on the shorter side of the pallet by 40 centimeters, which is 20 centimeters on each side, you can fit 4 boxes in each layer on the pallet.",
       "url": "https://help.easycargo3d.com/article/1619/how-to-create-a-load-plan-for-oversized-cargo"
      },
      {
       "text": "By the way, it’s possible to create overhangs even for a pallet.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-load-a-pallet/"
      }
     ],
     "recipe": "1. Select a pallet cargo space (https://help.easycargo3d.com/article/59/loading-pallets). 2. In Loading Calculation Settings, enlarge the loading size in length and/or width by the allowed overhang (https://help.easycargo3d.com/article/1619/how-to-create-a-load-plan-for-oversized-cargo). 3. Load; the planner packs within the enlarged footprint (same source).",
     "note": "The limit is the enlarged footprint. Growth is described as split equally on both sides in the example.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: centre load, centered, inset, underhang, edge.",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: slip sheet, interlayer, tier sheet, layer pad.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The pallet algorithm handles one item type only; group rules on pallets are not described.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: group pallet, customer pallet, separate pallets.",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We plan to improve the algorithm so that it can load different types of items and, last but not least, to be able to optimally load loaded pallets into the selected cargo space.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-load-a-pallet/"
      }
     ],
     "recipe": "",
     "note": "The vendor lists loading built pallets into a cargo space as a future plan (May 2022 journal); nothing later shows it delivered.",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "EasyCargo offers an alternative solution where you create your own cargo space with pallet dimensions, which you fill with cargo items. You can then use the pallet as a cargo item and load it into a container or truck.",
       "url": "https://www.easycargo3d.com/en/blog/which-is-the-best-load-planning-application-part-1-4-functions/"
      }
     ],
     "recipe": "",
     "note": "The user re-enters the built pallet's size and weight as a new cargo item; per the definition note this is a workaround.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: carton, three levels, nested, box into pallet into truck.",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: full pallet, partial pallet, loose, remainder, break pallet.",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "EasyCargo offers an alternative solution where you create your own cargo space with pallet dimensions, which you fill with cargo items. You can then use the pallet as a cargo item and load it into a container or truck.",
       "url": "https://www.easycargo3d.com/en/blog/which-is-the-best-load-planning-application-part-1-4-functions/"
      },
      {
       "text": "You can set the constraints : do not tilt , do not stack on this cargo item and/or do not rotate .",
       "url": "https://help.easycargo3d.com/article/53/inserting-items"
      }
     ],
     "recipe": "",
     "note": "A pallet re-entered as a cargo item takes the normal item flags (tilt, stack, rotate), independent of its contents. There is no rule for how full a pallet's top must be.",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: pallet height, top tier, dynamic height.",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "EasyCargo is a web-based software that helps you plan your shipment by calculating the optimal distribution of cargo items in the given cargo space.",
       "url": "https://help.easycargo3d.com/article/49/prerequisites"
      },
      {
       "text": "The algorithm always tries to maximize the compactness of the loaded boxes and at the same time, minimize the occupied space .",
       "url": "https://www.easycargo3d.com/en/journal/how-to-load-a-pallet/"
      }
     ],
     "recipe": "",
     "note": "The objective is described only in general terms; there is no selectable objective.",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: maximise weight, weight utilisation, heaviest, objective, strategy.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Overflow fills each space in turn; the tutorial notes 'the last container is largely unused' (help article 90).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: balance, even, distribute across containers, equal load.",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Planner loads only the quantities entered. 'Ignore separation' shows 'the absolute maximum number of items you can fit' from the entered list only (priority-groups journal). Adding more pieces 'if there is room' is manual (handbook p.19).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: how many fit, maximum quantity, cube out, top up, fill remaining, sets.",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When calculating the final plan, the algorithm always looks for better and better ways to load everything. For standard loads, the whole process takes a few seconds, for loads with an extremely large number of items, the whole process can take a bit longer. However, if you don’t want to wait or you are satisfied with the current result, you can stop the calculation at any time.",
       "url": "https://www.easycargo3d.com/en/journal/how-to-load-a-pallet/"
      }
     ],
     "recipe": "",
     "note": "Documented only for the pallet algorithm: an anytime search the user can stop. There is no time-limit or quality setting, and nothing on reproducibility.",
     "searched": "",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only by hand: re-run with other settings, or compare with 'Ignore separation' ('giving you a quick comparison against your prioritized load plan').",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: alternative, variants, several plans, compare solutions.",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Constraints are three per-item booleans plus group settings; no condition-based selection.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Item fields: description, colour, label visibility, dimensions, pieces, weight, three flags, group. Description and colour are display only.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If you want to prevent group overlap, use the \"No stacking of priority groups allowed\" or the \"Split of priority groups with a invisible wall\" command. The former setting prevents groups from stacking.",
       "url": "https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-"
      },
      {
       "text": "Groups can also be used in case you need to divide items that should not be mixed, e.g., dangerous products.",
       "url": "https://help.easycargo3d.com/article/49/prerequisites"
      }
     ],
     "recipe": "1. Use priority groups as classes: assign each item type to a group (https://help.easycargo3d.com/article/61/how-to-change-the-order-of-loading-using-priority-groups). 2. Select 'No stacking of priority groups allowed' so items stack only on items of their own group (https://help.easycargo3d.com/article/97/advanced-priority-groups-settings-). 3. Load.",
     "note": "Groups double as the loading order, so the 'class' also fixes position along the unit, and the setting is all-or-nothing for all groups.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Nothing found.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Settings are per shipment, and a shipment has one cargo space.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Item non-stackable flags and group 'No stacking' plausibly apply together (help article 61 lists them as alternatives), but no source states that both apply at once.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference. non-stackable together with no stacking of groups.",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Fixed objective.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No user extension. The API is input/output only: 'The load planning calculation cannot be executed through the API.' (API reference).",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Switches are on/off (Respect/Ignore weight limits; Respect/Ignore group separation), not hard-versus-soft variants of one rule.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: rule, rule engine, condition, attribute, custom field, user-defined, script, plug-in, callback, matrix, class, objective, weight, priority, soft, hard, preference.",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "position | Coordinate | Item position inside CargoSpace. Center of the cargo item. Shipment zero point [0,0,0] is in the front-bottom-center of the used cargo space. | width | double | Actual item size in width respecting the item's rotation",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "GET /api/v1/shipment-output-placements/{id}: centre point per loaded item (in_width from centre, in_height from floor, in_length from front) plus placed dimensions. Orientation is implied by the placed dimensions; there is no orientation code. Excel export also carries loaded-item data.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "After pressing the button with the camera icon, an animation will be generated. This animation will show step-by-step how you can load the cargo",
       "url": "https://help.easycargo3d.com/article/1174/sharing-shipments-using-a-basic-report-or-a-stepby-step-report"
      },
      {
       "text": "with the new report, you will see the individual steps of the loading process, including a legend that shows the name and quantity of each item to be loaded.",
       "url": "https://www.easycargo3d.com/en/journal/step-by-step-loading-now-with-a-legend/"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Cargo Summary: Instantly see the total weight , total volume , and percentage of space utilized. Detailed Item List: A full table showing the description , quantity, and dimensions for every item.",
       "url": "https://www.easycargo3d.com/en/journal/what-load-plan-report-options-does-easycargo-offer-and-how-to-make-the-most-of-them/"
      },
      {
       "text": "total_weight double Weight of all loaded cargo items together total_volume double Volume of all loaded cargo items together",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "Per report (one per cargo space; overflow produces one report per space). A pallet planned as a cargo space gets the same report; no Hi/Ti figures.",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "As shown in the graphic, the purple number indicates the available loading meters.",
       "url": "https://help.easycargo3d.com/article/58/weight-distribution"
      },
      {
       "text": "free_distance | double | Free length from the last cargo item to the back of the cargo space",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "This number tells you how many items have been loaded (in this case, 2 out of 31 items of this type have been loaded).",
       "url": "https://bit.ly/ENhandbookver7 (EasyCargo Handbook v7, 15 Jan 2026, PDF) p.18"
      },
      {
       "text": "In the input list, you can see which items have or have not been loaded",
       "url": "https://bit.ly/ENhandbookver7 (EasyCargo Handbook v7, 15 Jan 2026, PDF) p.18"
      }
     ],
     "recipe": "",
     "note": "Per item type: all / some / none loaded icons plus the loaded count out of the entered count, so the unloaded quantity follows. There is no separate not-loaded report.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When nothing has been loaded because of oversized/overweight cargo items, warning message is displayed",
       "url": "https://www.easycargo3d.com/en/release-notes/page/5/"
      }
     ],
     "recipe": "",
     "note": "Only a warning when nothing at all could be loaded; per the definition note this fails. The cargo-space info panel turns red when the input exceeds capacity (help article 90), which is not a per-item reason.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: reason, why not loaded, warning, oversized, overweight, error.",
     "corrected": null
    },
    "output-cog": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Safety Data: Precise center of gravity (CoG) and axle weight distribution to ensure road stability.",
       "url": "https://www.easycargo3d.com/en/blog/how-to-optimize-pallet-loading/"
      },
      {
       "text": "The yellow number indicates the longitudinal offset. The green number represents the lateral offset in meters.",
       "url": "https://help.easycargo3d.com/article/58/weight-distribution"
      }
     ],
     "recipe": "",
     "note": "The documentation (help, handbook, API forward_shift/left_shift) gives the distance the load was shifted when centred on the mass centre, and the free metres, but no centre-of-gravity coordinates. Only a 2026 blog claims the report gives the CoG.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Each arrow can also display the minimum, current, and maximum possible load on each axle. You can see how much margin you have for a maximum load.",
       "url": "https://help.easycargo3d.com/article/1176/how-to-work-with-the-weight-of-a-shipment"
      },
      {
       "text": "In case the weight limit is not respected, the green weight distribution arrows turn into red ones",
       "url": "https://bit.ly/ENhandbookver7 (EasyCargo Handbook v7, 15 Jan 2026, PDF) p.25"
      }
     ],
     "recipe": "",
     "note": "Per axle: min (empty), current and max load, with margin; red for overload, blue for negative (lifting) load; left/right balance. In the app, public link, tablet viewer and print report. Not in the API report.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The weight view shows arrows 'at all important points of the cargo space' (axles, kingpin), not a distribution along the length.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: weight distribution along, per meter, load diagram, section weight.",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Axle arrows include the empty (tare) load per axle, but no documented gross or total-with-tare figure. The report and API give loaded cargo weight only. A sprinter blog claims alerts for exceeding GVWR, with no documentation.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: gross, VGM, total weight including tare, gross vehicle weight.",
     "corrected": null
    },
    "output-per-stop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We can also view individual groups separately in the load plan. Moreover, the groups remain colour-differentiated for clarity.",
       "url": "https://help.easycargo3d.com/article/96/determining-the-loading-order-through-priority-groups"
      },
      {
       "text": "groups array of shipment_report_group Groups with loaded items",
       "url": "https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm"
      }
     ],
     "recipe": "",
     "note": "Stops are priority groups: per-group views in the app and per-group loaded items in the report and API. No 'unit after stop n' view is documented.",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "please keep in mind that a box can be placed on non-stackable items as well, no constraints are applied when adjusting the load plan manually",
       "url": "https://help.easycargo3d.com/article/60/manual-adjustments-of-an-automatically-calculated-load-plan-"
      },
      {
       "text": "While changes to restrictions are immediately displayed on boxes i n the loaded cargo space, this still requires a manual recalculation of the entire loading plan.",
       "url": "https://www.easycargo3d.com/en/journal/enhanced-cargo-management-live-updates-and-flexible-box-movement/"
      }
     ],
     "recipe": "",
     "note": "The editor blocks collisions (red frame) and the weight arrows update, but item rules are neither enforced nor listed as violations after manual edits.",
     "searched": "",
     "corrected": null
    },
    "output-voids": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only free metres to the end of the space.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: void, empty space, dunnage, airbag, gap.",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The homepage lists 'How much will it cost?' among customer questions EasyCargo 'helps to answer', with no cost input or output documented.",
     "searched": "Full-text search (grep, case-insensitive) of a local copy of: all 89 help-centre articles (https://help.easycargo3d.com/, KB, FAQ and tutorial transcripts); Handbook v7 (15 Jan 2026, 53 pp., text extracted with pdf.js); REST API v1 reference (https://s1.easycargo3d.com/Content/Documentation/Api/v1/index.htm); homepage feature list (https://www.easycargo3d.com/en/); release notes pages 1-10 (Sep 2019 - Jul 2026); all 236 WordPress posts (journal, blog, release-note posts) listed via /en/wp-json/wp/v2/posts. Terms: cost, price, freight cost.",
     "corrected": null
    }
   }
  },
  {
   "id": "loadoptimizer-ai",
   "name": "LoadOptimizer.ai",
   "vendor": "LoadOptimizer.ai",
   "url": "https://www.loadoptimizer.ai/",
   "auditedOn": "2026-09-30",
   "caveat": "Much of this product's documentation describes capabilities marked beta ('not callable on every account yet') or in development. Only generally available capabilities count; the others are shown as such.",
   "scope": "API documentation set 'V0.5' for REST /v2 (OpenAPI 3.1, info.version 2.0.0).",
   "sources": [
    {
     "title": "Load Optimizer API - Overview",
     "url": "https://www.loadoptimizer.ai/docs/"
    },
    {
     "title": "OpenAPI 3.1 contract (raw YAML, 1019 lines)",
     "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
    },
    {
     "title": "Interactive API reference (Scalar, embeds the OpenAPI JSON)",
     "url": "https://www.loadoptimizer.ai/docs/api-reference.html"
    },
    {
     "title": "Core concepts",
     "url": "https://www.loadoptimizer.ai/docs/concepts.html"
    },
    {
     "title": "Constraints",
     "url": "https://www.loadoptimizer.ai/docs/constraints.html"
    },
    {
     "title": "Anatomy of a job",
     "url": "https://www.loadoptimizer.ai/docs/job-request.html"
    },
    {
     "title": "Optimization objectives",
     "url": "https://www.loadoptimizer.ai/docs/objectives.html"
    },
    {
     "title": "Units",
     "url": "https://www.loadoptimizer.ai/docs/units.html"
    },
    {
     "title": "Building load units",
     "url": "https://www.loadoptimizer.ai/docs/building-load-units.html"
    },
    {
     "title": "Quickstart",
     "url": "https://www.loadoptimizer.ai/docs/quickstart.html"
    },
    {
     "title": "Authentication",
     "url": "https://www.loadoptimizer.ai/docs/authentication.html"
    },
    {
     "title": "Async & validate",
     "url": "https://www.loadoptimizer.ai/docs/async-sync-validate.html"
    },
    {
     "title": "Errors & troubleshooting",
     "url": "https://www.loadoptimizer.ai/docs/errors.html"
    },
    {
     "title": "Instructions & sharing",
     "url": "https://www.loadoptimizer.ai/docs/exports-and-sharing.html"
    },
    {
     "title": "Axle-legal loading (Beta)",
     "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
    },
    {
     "title": "Containers & ULD (Beta)",
     "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
    },
    {
     "title": "Multi-stop loading (LIFO) (Beta)",
     "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
    },
    {
     "title": "Palletize then load a truck (Beta)",
     "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
    },
    {
     "title": "Mixed routing & leftovers (Beta)",
     "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
    },
    {
     "title": "Pre-loaded pallets & stacking (Beta)",
     "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
    },
    {
     "title": "Cost & mixed-fleet selection (In development)",
     "url": "https://www.loadoptimizer.ai/docs/cost-and-fleet.html"
    },
    {
     "title": "Partial loads & reserving space (In development)",
     "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
    },
    {
     "title": "Working with the library (In development)",
     "url": "https://www.loadoptimizer.ai/docs/libraries.html"
    },
    {
     "title": "Batch jobs (In development)",
     "url": "https://www.loadoptimizer.ai/docs/batch-jobs.html"
    },
    {
     "title": "Webhooks (In development)",
     "url": "https://www.loadoptimizer.ai/docs/webhooks.html"
    },
    {
     "title": "App Documentation - Overview",
     "url": "https://app.loadoptimizer.ai/docs/"
    },
    {
     "title": "App docs - How It Works",
     "url": "https://app.loadoptimizer.ai/docs/how-it-works"
    },
    {
     "title": "App docs - Load Optimization",
     "url": "https://app.loadoptimizer.ai/docs/order-creation"
    },
    {
     "title": "App docs - Mixed Palletizing",
     "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
    },
    {
     "title": "App docs - Boxes",
     "url": "https://app.loadoptimizer.ai/docs/boxes"
    },
    {
     "title": "App docs - Excel Import & Export",
     "url": "https://app.loadoptimizer.ai/docs/excel-format"
    },
    {
     "title": "App docs - 3D Viewer",
     "url": "https://app.loadoptimizer.ai/docs/3d-viewer"
    },
    {
     "title": "App docs - Viewer Edit Mode",
     "url": "https://app.loadoptimizer.ai/docs/edit-mode"
    },
    {
     "title": "App docs - Loady assistant",
     "url": "https://app.loadoptimizer.ai/docs/loady-assistant"
    },
    {
     "title": "App docs - API Keys",
     "url": "https://app.loadoptimizer.ai/docs/api-keys"
    },
    {
     "title": "FAQ",
     "url": "https://www.loadoptimizer.ai/faq/"
    },
    {
     "title": "Pricing (plan/feature comparison table)",
     "url": "https://www.loadoptimizer.ai/pricing/"
    },
    {
     "title": "Homepage",
     "url": "https://www.loadoptimizer.ai/"
    },
    {
     "title": "Features",
     "url": "https://www.loadoptimizer.ai/features/"
    },
    {
     "title": "Manual Edit Mode",
     "url": "https://www.loadoptimizer.ai/features/manual-edit/"
    },
    {
     "title": "How it works",
     "url": "https://www.loadoptimizer.ai/how-it-works/"
    },
    {
     "title": "Truck loading software",
     "url": "https://www.loadoptimizer.ai/truck-loading-software/"
    },
    {
     "title": "Container loading software",
     "url": "https://www.loadoptimizer.ai/container-loading-software/"
    },
    {
     "title": "Load building software",
     "url": "https://www.loadoptimizer.ai/load-building-software/"
    },
    {
     "title": "Multi-carrier load optimization",
     "url": "https://www.loadoptimizer.ai/multi-carrier-load-optimization-software/"
    },
    {
     "title": "Cylindrical load optimization",
     "url": "https://www.loadoptimizer.ai/cylindrical-load-optimization-software/"
    },
    {
     "title": "Tank and pipe loading",
     "url": "https://www.loadoptimizer.ai/tank-and-pipe-loading-optimization-software/"
    },
    {
     "title": "API documentation landing",
     "url": "https://www.loadoptimizer.ai/api-documentation/"
    },
    {
     "title": "API & integrations",
     "url": "https://www.loadoptimizer.ai/load-optimization-api-integrations/"
    },
    {
     "title": "Air cargo ULD planning",
     "url": "https://www.loadoptimizer.ai/air-cargo-uld/"
    },
    {
     "title": "Automotive load planning",
     "url": "https://www.loadoptimizer.ai/automotive-load-planning/"
    },
    {
     "title": "Container stuffing / pallet building / mixed palletizing / pallet loading / stacking rules / CoG / axle distribution / 3D bin packing / cartonization / scaffolding / container optimization / enterprise / load planning / load optimization / truck load planner / calculators pages",
     "url": "https://www.loadoptimizer.ai/container-stuffing-software/"
    }
   ],
   "passed": 29,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Inline box geometry on a request entry (carrier or cargo). X = length, Y = width, Z = height, in units.length. Box is the only geometry this API implements; any other `type` is rejected with 400.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Choose from 20 pre-configured containers across these categories.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      }
     ],
     "recipe": "",
     "note": "V0.5 API and the web app both define a carrier by three dimensions (app dimensionZ is 'The maximum stacking height'). 20 app presets (ISO containers incl. reefer/open top, EU and US trailers, Sprinter van); ULD is modelled only on a Beta page. Plan ceilings on items and carriers per job apply (422).",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "announced",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A hold can list reservedRegions , boxes the solver must keep empty.",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      },
      {
       "text": "Reserve along any axis: a rear/front slab (X), one side (Y), headroom (a region spanning the top, high Z), or an interior pocket.",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      }
     ],
     "recipe": "",
     "note": "In-development page (\"Documented so you can design around it, not callable yet\"). reservedRegions[] take an offset (min corner in the hold frame) and dimensionX/Y/Z; nothing is placed inside, 'not even overhang from neighbouring cargo', so nothing can be stacked on them either. The only GA advice is the FAQ's shrinking of internal dimensions, which the row excludes.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "announced",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A hold can list reservedRegions , boxes the solver must keep empty. Each is positioned in the hold frame (offset is the min corner; defaults to the hold origin) with its own dimensions and an optional label.",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      },
      {
       "text": "reservedRegions[] Hold Boxes kept clear of placement: offset (min corner in the hold frame), dimensionX/Y/Z, optional label.",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      }
     ],
     "recipe": "",
     "note": "In-development page (\"Documented so you can design around it, not callable yet\"). A list per hold, each with free position and size; the one worked example uses a single region. Must lie within the hold (rejected otherwise).",
     "searched": "",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "The maximum stacking height (Z-axis)",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "Custom heights — adjust for partial loads or stacking height restrictions",
       "url": "https://www.loadoptimizer.ai/faq/"
      }
     ],
     "recipe": "",
     "note": "GA route is editing the carrier's dimensionZ (a workaround per the row). A dedicated per-job build-height cap (overrides.maxStackHeight on a referenced library carrier) is documented only on an In-development page, so it is announced, not available. A reserved headroom region (also In development) is a second future route.",
     "searched": "",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Near miss: several holds with different offset.z per carrier (Beta), or a reserved region under a raised section (In development), are not documented for this purpose; the row requires vendor documentation of the composable route.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: step, deck, gooseneck, drop, split-level, floor height, raised floor, offset, holds, reservedRegions. Holds have an offset and a carrier may list several holds (Beta), and reservedRegions (In development) could block a step, but no page documents either for a stepped floor or ceiling, or says cargo may span holds.",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Each chamfer names the face cut back, the baseHeight up to which the hold is full, and the inset distance the face is cut in at the floor; the cut tapers from nothing at baseHeight down to inset at z = 0.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "an LD3 hold with the -Y lower corner chamfered to the fuselage contour.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. holds[].chamfers[] {face, baseHeight, inset}; the example cuts the lower -Y corner of an LD3. Only lower-corner cuts are described; no upper contour or curve.",
     "searched": "",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Chamfers per face could plausibly combine a cross-section cut with a lengthwise cut, but no documentation shows both in one unit, which the row requires.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: chamfer, contour, face, baseHeight, inset, slope, step, deck. chamfers[] is a list keyed by face, so a +X/-X chamfer could in principle cut the side view, but every example and description shows a single -Y chamfer.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "the cut tapers from nothing at baseHeight down to inset at z = 0.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "Air ULDs are carriers too , but their loadable shape has a cut corner to fit the fuselage. The hold's chamfers express that contour.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The chamfer is defined by two distances giving a linear taper (a slope), not steps.",
     "searched": "",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "If a carrier has more than one hold (e.g. a frozen + dry reefer container), a hold declares the capabilities it provides and an item declares what it requiresHold; matching cargo routes to the right compartment automatically.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "Each level positions its contents in its own frame , measured from that parent's origin corner (X = 0 closed end, floor), with the parent hold's offset included.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. holds[] each with own dimensionX/Y/Z, offset, walls, maxWeight. Multi-hold is described in one sentence with no multi-hold JSON example. The app lists a 'Double-Deck' trailer preset, but app carriers have only three dimensions, so no second deck is modelled there. Coupled tractor+trailer exists in the axle model (weight row).",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Height, overhang and door clearance checked while the build is still on screen.",
       "url": "https://www.loadoptimizer.ai/air-cargo-uld/"
      },
      {
       "text": "Knows Door And Hold Limits Checks access and clearance for the aircraft flying it, not only the hold volume.",
       "url": "https://www.loadoptimizer.ai/air-cargo-uld/"
      }
     ],
     "recipe": "",
     "note": "Marketing on the air-cargo page only. No documented door dimension input, and the same page says aircraft-side checks are for the airline.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: door, aperture, opening, clearance, accessFace. No door width/height input exists in the OpenAPI contract, the Beta/In-development pages or the app docs; accessFace names a face only.",
     "corrected": {
      "reason": "'Door clearance' means checking a finished ULD against the aircraft door, not a door limiting what enters the space."
     }
    },
    "equipment-access-side": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "accessFace is a carrier property , the physical door/unload side the load is reached from.",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      },
      {
       "text": "A carrier that's reached from more than one side , a curtain-sider open along both flanks , takes a list of faces: \"accessFace\": [\"+Y\", \"-Y\"].",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. One of six signed faces or a list (multi-side access); default +X; drives LIFO reachability. In the GA app only the loading direction (fill axis) can be set for side loading, which is scored under positioning-fill-direction.",
     "searched": "",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "announced",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "cost; accessFace (door/unload side); the hold's maxWeight (payload cap), maxStackHeight (build-height cap), and overhang (protrusion allowance)",
       "url": "https://www.loadoptimizer.ai/docs/libraries.html"
      },
      {
       "text": "A walled face may not exceed the outer geometry (wall_exceeds_outer_geometry, 400) , keep the hold envelope within the container's outer box.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      }
     ],
     "recipe": "",
     "note": "In-development page (\"Documented so you can design around it, not callable yet\"). A per-job 'overhang (protrusion allowance)' override on a hold, plus hold walls listed per face (Beta) so a face can be left open. No units, directions or placement behaviour are stated. The app's 'Open Top' container preset is a plain box.",
     "searched": "",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "How many instances are available. null/omitted = unlimited: the solver adds instances until the cargo runs out or the carrier fits nothing more, and only the carriers it used come back.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Omit a carrier's quantity and the solver decides how many instances of it to use.",
       "url": "https://www.loadoptimizer.ai/docs/"
      }
     ],
     "recipe": "",
     "note": "V0.5 API. In the web app the user sets a quantity per carrier entry and the optimizer fills them in list order; automatic adding of units is documented for the API only. Plan ceilings on carrier instances per job apply (422).",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "It fixes the cargo (every item must ship) and optimizes the number of carriers used: the solver looks for the fewest carriers, drawn from the types and quantities you offered, that can hold everything.",
       "url": "https://www.loadoptimizer.ai/docs/objectives.html"
      },
      {
       "text": "Offer several container types as separate carriers, each with its own availability. The solver mixes them to satisfy the objective:",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      }
     ],
     "recipe": "",
     "note": "V0.5 MinimizeCarriers draws from several offered types; an explicit mixed-type example appears only on the Beta containers page. In the app, several carriers are filled in list order (up to 5/25 carriers per optimisation by plan).",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "carriers[].quantity is the maximum number of that type available: never a fill target, and never a count the solver is asked to reach.",
       "url": "https://www.loadoptimizer.ai/docs/objectives.html"
      },
      {
       "text": "Leftovers in unplacedItems mean the cargo genuinely doesn't fit even using every carrier you made available.",
       "url": "https://www.loadoptimizer.ai/docs/objectives.html"
      }
     ],
     "recipe": "",
     "note": "V0.5 API; an explicit quantity N returns all N instances, unused ones with empty placements. App: quantity per carrier entry.",
     "searched": "",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "List more than one and the optimizer fills them in the order they appear.",
       "url": "https://app.loadoptimizer.ai/docs/how-it-works"
      },
      {
       "text": "The optimizer fills them in the order you list them, so you stay in control of which carrier gets loaded first.",
       "url": "https://app.loadoptimizer.ai/changelog/wizard-and-multi-carrier"
      }
     ],
     "recipe": "",
     "note": "Documented for the web app (load and pallet wizards). For the V0.5 API the docs do not say list order matters under MinimizeCarriers.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "announced",
     "flags": [
      "composable-auditor-built",
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When containers aren't equal , a 40HC costs more than a 20GP but holds more , switch to MinimizeCost and attach a per-carrier cost.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "MinimizeCost is the cost-weighted form of MinimizeCarriers: all cargo must ship, and the solver minimizes the total cost of the top-level carriers it uses.",
       "url": "https://www.loadoptimizer.ai/docs/cost-and-fleet.html"
      }
     ],
     "recipe": "1. Offer each candidate type as a carrier entry with quantity null and a cost that rises with its size (carriers[].cost / overrides.cost) [https://www.loadoptimizer.ai/docs/cost-and-fleet.html]. 2. Set configuration.objective to MinimizeCost [https://www.loadoptimizer.ai/docs/containers-and-uld.html]. 3. The solver ships everything at lowest total cost, so for a load that fits one unit it picks the cheapest, i.e. smallest, sufficient type [https://www.loadoptimizer.ai/docs/cost-and-fleet.html].",
     "note": "In development only (MinimizeCost is 'not callable yet'; pricing lists 'minimize costs' on Enterprise). V0.5 MinimizeCarriers minimises count, not size, and has no downsizing of a last unit. Pricing also lists a 'max first truck' method (Business+), undocumented.",
     "searched": "",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "announced",
     "flags": [
      "source-conflict",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Give each carrier type a cost, optimize for MinimizeCost, and let the solver pick the cheapest mix from several available carrier types.",
       "url": "https://www.loadoptimizer.ai/docs/cost-and-fleet.html"
      },
      {
       "text": "Loading method: minimize costs ✗ ✗ ✗ ✗ ✓",
       "url": "https://www.loadoptimizer.ai/pricing/"
      }
     ],
     "recipe": "",
     "note": "In-development page (\"not callable yet\"). Flat unitless cost per carrier, top-level carriers only; summary.totalCost in the result; no rate tables. Pricing restricts the method to Enterprise, while the features page markets it as current.",
     "searched": "",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No maximum fill-percentage input. hold maxWeight (Beta) is an absolute payload cap, scored under weight-payload.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: fill, percent, %, utilization, cap, maximum fill, air circulation, maxWeight, maxStackHeight. Only volumeUtilization as an output and hold maxWeight (a weight, Beta) were found.",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: minimum fill, min fill, under-filled, threshold, minimum, utilization.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "WM-01 has a single-candidate loadInto (the truck) , the only eligible parent, so it never palletizes",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      },
      {
       "text": "The solver never guesses what may go where , it only decides the arrangement within the candidates you allow.",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. loadInto lists eligible parent types (carrier libraryId or inline name, or a pre-loaded pallet id) per entry, per group or job default; hard. Also hold capabilities/requiresHold for compartments. The same mechanism chooses the pallet type an item goes on.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "loadInto is a list of candidate parents , each is a carrier type reference (or the id of a pre-loaded cargo pallet; see Pre-loaded pallets & stacking onto them).",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      },
      {
       "text": "Define several pre-loaded pallets and the loose SKUs, and point each SKU at the pallets it's eligible for.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Native for individual pre-loaded pallets (targeted by id). For vehicles, loadInto targets a type; tying cargo to one specific truck needs a separate inline carrier entry with quantity 1 and a unique name, which the docs do not show for this purpose.",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Carrier dimensions are always inputs.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: carton size, box size, dimension range, minimum/maximum dimensions, cartonization, custom size, sizing. The cost page says the API has 'no parcel-carton selection'.",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "How many identical units this line represents.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Per-unit weight, in units.weight.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      }
     ],
     "recipe": "",
     "note": "Scale: plan ceilings on total cargo units, carrier entries and carrier instances per job (422; example detail 'Order exceeds the maximum of 500 items'). FAQ says no specific box limit in the app; Free plan saves 2 items.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Box-only geometry. /v2 implements the box-packing subset of the target API; other geometry types are not implemented, so any geometry.type other than \"box\" is a 400.",
       "url": "https://www.loadoptimizer.ai/docs/building-load-units.html"
      },
      {
       "text": "Cylinders — measure the smallest rectangular box that contains the cylinder",
       "url": "https://www.loadoptimizer.ai/faq/"
      }
     ],
     "recipe": "",
     "note": "API and FAQ say box only, with bounding-box advice (fails the row). Marketing pages and the pricing table claim cylinders by diameter and real shape on all plans; no cylinder field is documented anywhere.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "which way up a drum must stand, whether a coil may be stacked or must sit on the floor, and how pipes may nest or be laid in rows.",
       "url": "https://www.loadoptimizer.ai/cylindrical-load-optimization-software/"
      }
     ],
     "recipe": "",
     "note": "One marketing sentence; cylinders themselves are documented as unsupported (box only).",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: nest, honeycomb, stagger, offset rows, pyramid, cylinder, drum, pipe.",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "All documented geometry is boxes.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: interlock, L-shape, nest, tapered, mesh, CAD, shape, geometry type. The FAQ advises splitting L-shaped items into boxes; marketing mentions CAD/mesh input but never interlocking.",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "beta",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A pre-loaded pallet you want stacked onto must be cargo with both an id and a hold.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "hold and contents are independent. Keep both to ship the pallet and let the engine keep filling it.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The recursive load-unit model lets a cargo entry carry a hold (free space, with offset) that other cargo is routed into via loadInto. Documented only for pre-loaded pallets being topped up, not for cavities, frames or the space under an overhang.",
     "searched": "",
     "corrected": {
      "reason": "Only documented use of a hold is topping up a pre-loaded pallet; no cavity inside an item's geometry."
     }
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Box is the only geometry this API implements; any other `type` is rejected with 400.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "LoadOptimizer is optimized for rectangular boxes (the standard for most shipping scenarios). For irregular items, use the bounding box method:",
       "url": "https://www.loadoptimizer.ai/faq/"
      }
     ],
     "recipe": "",
     "note": "Marketing claims CAD/mesh upload; the API rejects non-box geometry and no upload is documented.",
     "searched": "",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Volume is output-only in the API.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: bulk, liquid, loose, volume input, amorphous, grain. The units page says 'there is no place to submit a volume, an area or a loading-metre figure as input'.",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: compress, soft, squeeze, bulge, deform.",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Pack sizes are not modelled; every cargo line is one box size.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: pack level, case, inner, each, bundle, layer, pack size, unit of measure. Mixed routing splits a line between pallets and loose loading (pallet-split-routing), not between pack levels.",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Omitted → upright, free to spin about Z (equivalent to [\"Z\"]); [] explicitly locks the box in the submitted orientation with no rotation at all.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Z keeps the box upright and only gives it a quarter turn.",
       "url": "https://app.loadoptimizer.ai/docs/boxes"
      }
     ],
     "recipe": "",
     "note": "Per cargo line. API default is ['Z'] (upright); the app Excel import defaults to X,Y,Z. A Beta 'uprightFaces' field appears in examples only.",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "[] no rotation at all, placed exactly as submitted",
       "url": "https://www.loadoptimizer.ai/docs/constraints.html"
      },
      {
       "text": "Untick every option to keep the box exactly as entered.",
       "url": "https://app.loadoptimizer.ai/docs/boxes"
      }
     ],
     "recipe": "",
     "note": "An empty allowedRotations fixes the submitted orientation, including the horizontal direction relative to the carrier's X (length) axis.",
     "searched": "",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "X and Y lay the box onto a side; useful for long or flat items.",
       "url": "https://app.loadoptimizer.ai/docs/boxes"
      },
      {
       "text": "The algorithm tests all 6 possible orientations for each box to find the optimal placement.",
       "url": "https://www.loadoptimizer.ai/faq/"
      }
     ],
     "recipe": "",
     "note": "allowedRotations ['X','Y','Z'] (the Excel default 'X,Y,Z' 'allows every turn').",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Axes (case-insensitive on input) the box may be turned 90° about, relative to the submitted orientation.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "[\"X\"] or [\"Y\"] the box tips onto another face",
       "url": "https://www.loadoptimizer.ai/docs/constraints.html"
      }
     ],
     "recipe": "",
     "note": "Allowing X but not Y lets the box tip about its length axis (onto a side) while forbidding a tip about its width axis (onto an end).",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Three axis toggles (X, Y, Z) cannot express an arbitrary subset of the six orientations; no per-orientation list is documented. uprightFaces (Beta) appears only in examples.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: orientation, rotation, six, 6, allowedRotations, uprightFaces, mask. Rotation is controlled only by three axis tokens: 'This is the only rotation control'.",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: prefer, preferred orientation, soft, orientation. The only documented soft preference is loadInto list order (routing), not orientation.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: floor, bottom layer, orientation, rotation, tier.",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: orientation, on its side, per orientation, maxWeightOnTop, allowStackingOnTop. Stacking flags are per cargo line, not per orientation.",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Rotation in degrees, always a multiple of 90.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Because every angle is a multiple of 90°, a placed box is always axis-aligned, so this path needs no rotation maths",
       "url": "https://www.loadoptimizer.ai/docs/concepts.html"
      }
     ],
     "recipe": "",
     "note": "Placements are always axis-aligned, including in manual Edit Mode.",
     "searched": "",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You set which way up an item must travel and whether it can be stacked, so a drum stays upright and a coil that must sit on the floor is never buried under other cargo.",
       "url": "https://www.loadoptimizer.ai/cylindrical-load-optimization-software/"
      }
     ],
     "recipe": "",
     "note": "Cylinders are not a documented item type (box only), so the only documented attitude control is allowedRotations on a bounding box.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: cylinder, drum, upright, lying, roll, reel, coil.",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "allowStackingOnTop: false (the default) means nothing may be placed on top of this cargo line; true allows other items to be stacked on it.",
       "url": "https://www.loadoptimizer.ai/docs/constraints.html"
      },
      {
       "text": "When enabled, other boxes can be placed on top of this box",
       "url": "https://app.loadoptimizer.ai/docs/boxes"
      }
     ],
     "recipe": "",
     "note": "Per cargo line. Default false in the API, true in the app Excel import. Beta adds maxWeightOnTop (0 is equivalent).",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "beta",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "must stay on the floor (\"never on top of another pallet\") a directOn rule forbidding its class from resting on the pallet class",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "\"classRelations\": {\n \"directOn\": [ { \"upper\": \"std_pallet\", \"lower\": \"fragile_pallet\" } ]",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "1. Give the floor-only item a class and give every other cargo entry a class (cargo classes[]) [https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html]. 2. Add job-level constraints.classRelations.directOn entries with the floor-only class as upper and each other class as lower, so it may rest on nothing [https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html]. 3. The vendor documents this pattern for pallets ('must stay on the floor') in its pallet-on-pallet rule table [https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html].",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The vendor's own table maps 'must stay on the floor' to a directOn rule, shown for pallets only. The cylindrical page claims floor-only for coils.",
     "searched": "",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No must-not-be-on-floor rule; directOn only forbids resting on a class, so it cannot force an item off the floor.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: not on floor, on top, top layer, must stay on top, directOn, classRelations. Marketing's 'which must go on top' is not defined and reads as fragile/no-top, not as a ban on floor placement.",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No per-item stack-count field in the API, app or Beta pages.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: stack count, tiers, layers, max stack, stack height, how many high, double stacked. Marketing mentions 'maximum stack height' (a length, see stacking-max-height) and pallets 'single stacked or double stacked where the freight allows', but no count limit.",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: tier, level, layers, stack levels, max stack.",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "You set per-item properties such as the weight each item can bear, fragile or do-not-stack flags, required orientation, and maximum stack height, and the engine applies each one as a hard constraint.",
       "url": "https://www.loadoptimizer.ai/load-optimization-software-with-stacking-rules/"
      },
      {
       "text": "Custom stacking constraints ✗ ✗ ✗ ✗ ✓",
       "url": "https://www.loadoptimizer.ai/pricing/"
      }
     ],
     "recipe": "",
     "note": "Claimed on a solution page; pricing lists custom stacking constraints on Enterprise only; no per-item field is documented.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: max height, maximum stack height, maxStackHeight, height limit, per item. The only documented height cap is per hold (maxStackHeight override, In development), not per item.",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "constraints.allowStackingOnTop: false (≡ maxWeightOnTop: 0)",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "the lower pallet's constraints.maxWeightOnTop (what it can bear) and the upper pallet's constraints.minSupport (how much of its base must rest on the surface below) then govern load-bearing and stability.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. constraints.maxWeightOnTop per cargo entry (and library defaultConstraints). Not stated whether it counts the whole column or only direct contact. The V0.5 constraints page says its two fields 'are the whole model'.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "maxWeightOnTop is a plain weight.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: pressure, per area, kg/m2, contact area, surface load, maxWeightOnTop.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The docs do not say whether maxWeightOnTop is checked within a stack of identical units.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: maxWeightOnTop, same item, identical, like items, stack of.",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Heavy-to-bottom — heavier boxes are placed on the floor first, creating a stable base",
       "url": "https://www.loadoptimizer.ai/faq/"
      },
      {
       "text": "The engine places heavy cartons low and fragile ones high",
       "url": "https://www.loadoptimizer.ai/mixed-palletizing-software/"
      }
     ],
     "recipe": "",
     "note": "A built-in behaviour described in the FAQ and marketing, with no rule or parameter in the API or app docs.",
     "searched": "",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: strength, fragility, index, crush, class, rank.",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "the directOn rule above (a std_pallet may not rest on a fragile_pallet) governs pallet-on-pallet stacking in the container too",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "Stacking onto the existing load obeys the normal rules: minSupport, maxWeightOnTop, and the directOn/notAbove class relations (see Constraints).",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Cargo carries classes[]; job-level classRelations.directOn lists {upper, lower} pairs that may not rest directly on each other. Each item can be given its own class, so pairs can be item-specific.",
     "searched": "",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "minSupport (Beta) is a support percentage, scored under stacking-min-support.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: footprint, same size, column, aligned, corner, larger on smaller, square over the base. Marketing's 'keeps the stack square over the base' (mixed palletizing page) is a general stability claim, not a footprint rule.",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "with at least minSupport % of its base resting on the surface below",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "\"constraints\": { \"minSupport\": 80 }",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. constraints.minSupport per cargo entry (per item). The FAQ claims a support check for every box in the current engine, with no parameter.",
     "searched": "",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: height difference, bridging, gap, level surface, uneven, minSupport.",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Give the pallet its existing contents (the items already on it, each placed) so the engine knows the real loaded weight, centre of gravity and top surface , everything it needs to check support for anything stacked on top.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "the items are still shown in the viewer and its weight/CoG/top-surface are accurate (so anything stacked above rests on the real surface), but the engine adds nothing into it.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Documented only for pre-loaded pallets whose contents define an uneven top; no nesting height increment exists.",
     "searched": "",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Near miss: floor-by-floor building is documented, but with no complete-only rule or remainder handling.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: complete layer, full layer, complete stack, flat top, remainder, one complete floor. The pallet wizard and Bottom→Top direction build 'one complete floor at a time', a build order, not a rule that only complete layers are loaded.",
     "corrected": null
    },
    "between-identical-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "shared-mechanism",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Integer (0 or higher). Boxes with the same groupId are grouped together. If omitted, each row gets its own group.",
       "url": "https://app.loadoptimizer.ai/docs/excel-format"
      },
      {
       "text": "When enabled, each group is loaded as one block. Within a carrier the groups follow the order you set in the Boxes step. Leftover space in a section is not filled by another group.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      }
     ],
     "recipe": "1. Leave groupId empty in the Excel Boxes sheet so each box row (one item type) is its own group [https://app.loadoptimizer.ai/docs/excel-format]. 2. In the Configuration step turn on 'Grouping: Load groups as separate sections' so each group is loaded as one block [https://app.loadoptimizer.ai/docs/order-creation].",
     "note": "Web app only; at most 20 groups per order; forces Back→Front or Left→Right; each block's leftover space stays empty. V0.5 API groups have no solver behaviour.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When enabled, each group is loaded as one block. Within a carrier the groups follow the order you set in the Boxes step. Leftover space in a section is not filled by another group.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "Boxes that belong together, such as the goods for one customer or one stop, can now be loaded together.",
       "url": "https://app.loadoptimizer.ai/changelog/grouping-separate-sections"
      }
     ],
     "recipe": "",
     "note": "Web app (released 25 Sep 2026): groups set per box (Cards drag, Spreadsheet Group column, Excel groupId); up to 20 groups. In the V0.5 API groups carry no solver behaviour; Beta pages say named groups 'carry keep-together' without specifying it. Pricing lists 'Order grouping' on all plans.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Not stated whether a group section can continue in the next carrier.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: split, same carrier, one carrier, group, keep together, across carriers, cannot split. The app says groups follow their order 'within a carrier' but not whether a group may be split across carriers; marketing mentions 'Orders that cannot split' in a load-building explainer without a control.",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: all or nothing, complete, whole order, partial, leave out, unplaced, group.",
     "corrected": null
    },
    "between-sections": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Leftover space in a section is not filled by another group.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "Each stop is a contiguous block along the access axis , an invisible wall between drops, no interleaving. Add barrier for a real divider/buffer.",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      }
     ],
     "recipe": "",
     "note": "GA in the app ('Load groups as separate sections'), no divider thickness. The Beta stop mode 'segmented' adds an optional barrier thickness in units.length. The FAQ's older 'INVISIBLE WALL' priority mode is absent from the current app docs.",
     "searched": "",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When enabled, each group is loaded as one block. Within a carrier the groups follow the order you set in the Boxes step. Leftover space in a section is not filled by another group.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "noCrossStack Stops may mix on the floor (no wall), but no unit may rest on a unit bound for a different stop.",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      }
     ],
     "recipe": "1. Put each order/customer's boxes in its own group [https://app.loadoptimizer.ai/docs/order-creation]. 2. Turn on 'Load groups as separate sections': each group becomes its own block and no other group uses its leftover space, so no group is stacked on another [https://app.loadoptimizer.ai/docs/order-creation].",
     "note": "GA route is stronger than needed (full sections). A dedicated ban, stopSeparation.mode 'noCrossStack', exists for stops on a Beta page; class directOn rules (Beta) could also encode it.",
     "searched": "",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "beta",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For an inline carrier, target its name instead.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      },
      {
       "text": "Override for a named group via groups[name].loadInto, or for one entry via that entry's loadInto.",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      }
     ],
     "recipe": "1. Offer the vehicle type as two inline carrier entries with different names (e.g. 'truck-A', 'truck-B') [https://www.loadoptimizer.ai/docs/palletize-then-truck.html]. 2. Put the incompatible items in different groups and give each group a loadInto naming only its own carrier entry [https://www.loadoptimizer.ai/docs/mixed-routing.html]. 3. The solver only places cargo into the listed candidates, so the two groups never share a unit [https://www.loadoptimizer.ai/docs/mixed-routing.html].",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Works by fixing groups to separate carrier entries, so it also fixes which fleet each group may use. No compatibility matrix or dedicated not-together rule is documented.",
     "searched": "",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Stacking onto the existing load obeys the normal rules: minSupport, maxWeightOnTop, and the directOn/notAbove class relations (see Constraints).",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      },
      {
       "text": "it only lands somewhere it's allowed: within that pallet's maxWeightOnTop, with at least minSupport % of its base resting on the surface below, and obeying any separation/directOn/requiresHold rules;",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "'notAbove' class relations and 'separation' rules are named on Beta and In-development pages; the Constraints page they point to documents only the V0.5 fields. No distance parameter or field shape is shown. The FAQ's INVISIBLE WALL mode is not in the current app docs.",
     "searched": "",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No hazard-class attribute or built-in segregation; the vendor's own suggestion is manual repositioning.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: hazard, dangerous, DG, ADR, IMDG, IATA DGR, segregation, class. Only the FAQ's INVISIBLE WALL ('Use for hazardous materials') and the manual-edit page ('Hazardous goods need separation? ... Manually reposition items') mention hazardous goods.",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: value, declared value, piece count, points, cap, limit, sum, maximum per carrier.",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: distinct, SKU count, number of items types, orders per carrier, single SKU.",
     "corrected": null
    },
    "between-ratio": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: ratio, set, kit, proportion, per carrier.",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: multiple of, batch, lot, increments, per carrier.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When not all boxes of a type are placed, an amber warning icon is shown. Click the arrow button next to that box type to auto-place one box at the optimal position. Repeat to place additional boxes one at a time.",
       "url": "https://app.loadoptimizer.ai/docs/edit-mode"
      },
      {
       "text": "You can even add new boxes automatically (AI-placed) while keeping your manual adjustments intact.",
       "url": "https://www.loadoptimizer.ai/features/manual-edit/"
      }
     ],
     "recipe": "",
     "note": "GA: in Edit Mode, manually placed boxes stay where they are and remaining boxes are auto-placed one per click. Beta: pre-loaded pallet contents are locked while the engine loads around them; In development: carrier contents for continued loading.",
     "searched": "",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Give the pallet its existing contents (the items already on it, each placed) so the engine knows the real loaded weight, centre of gravity and top surface",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "contents cargo entry Items already loaded (each a PrePlacedUnit with a position); fixed by default.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Positions as input data exist for items on a pre-loaded pallet (Beta) and for items aboard a pre-filled vehicle (In development, carrier quantity must be 1). V0.5 has no position input.",
     "searched": "",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "a hold declares the capabilities it provides and an item declares what it requiresHold; matching cargo routes to the right compartment automatically.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Confinement to a hold (compartment) by capability matching; unplaced reason 'no_compatible_hold'. No front/rear/side region rule within one space.",
     "searched": "",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "announced",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The engine places nothing inside them and loads everything else into the remaining space.",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      },
      {
       "text": "Here a 13.6 m tautliner holds back its rear 4 m (the door end, high X) for a later stop:",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      }
     ],
     "recipe": "",
     "note": "In development (not callable yet). reservedRegions are set per job on the carrier's hold and exclude all items; no per-item exclusion.",
     "searched": "",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The packing axis to consolidate toward. Only these three values are supported: the solver fills outward from the carrier frame's zero position and cannot gather toward the opposite end, so +X/+Y are rejected with 400.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Back→Front packs against the closed front wall first and works toward the doors, the usual pattern for rear loading. Left→Right fills from one side wall to the other, for side loading. Bottom→Top builds complete floors and stacks upward.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      }
     ],
     "recipe": "",
     "note": "Cannot be switched off (default -X) and cannot gather toward +X/+Y. Bottom→Top is unavailable while group sections are on.",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Bottom→Top builds complete floors and stacks upward.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "-X holds them against the x = 0 end, -Y against the y = 0 side, Z on the floor.",
       "url": "https://www.loadoptimizer.ai/docs/objectives.html"
      }
     ],
     "recipe": "",
     "note": "Plan-wide only; not per item.",
     "searched": "",
     "corrected": null
    },
    "positioning-handling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: forklift, reach, block depth, turning, handling, pallet jack.",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Near miss: the Beta barrier leaves a set gap between stop blocks only.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: gap, clearance, spacing, buffer, margin, bulge. The only gap setting is stopSeparation.barrier (Beta), a buffer between stop blocks, not around items.",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: shift, secure, backed, against the wall, lateral support, lashing, stability. The FAQ's 'Stability verification — every box has proper support' concerns support from below.",
     "corrected": null
    },
    "weight-payload": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "holds[].maxWeight carrier Hold weight capacity (e.g. container payload).",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "There is no per-carrier weight limit: nothing in this API enforces a maximum load weight against a carrier's capacity",
       "url": "https://www.loadoptimizer.ai/docs/objectives.html"
      }
     ],
     "recipe": "",
     "note": "GA state is a documented limitation: the V0.5 API has no carrier weight limit, and the app docs list only three carrier dimensions (the mixed-pallet wizard has no weight field either). Beta: holds[].maxWeight (unplaced reason over_weight) and axle.grossCapacity (GVW/GCW). Marketing claims weight limits in the app.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "holds[].maxWeight carrier Hold weight capacity (e.g. container payload).",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "If a carrier has more than one hold (e.g. a frozen + dry reefer container), a hold declares the capabilities it provides",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. maxWeight is per hold, and a carrier may have several holds.",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No lengthwise section limits within one space.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: section, zone, front, rear, floor section, per metre, lengthwise, maxWeight. Separate holds along the length each with maxWeight (Beta) are not documented for this purpose.",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: per metre, kg/m, linear, running metre, density, concentrated load. Marketing mentions spreading concentrated weight over axles only.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The regulated unit is the axle group: each group sits at a longitudinal position (X, in units.length from the carrier's X = 0 end) and carries a structural maxLoad.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "This is a hard constraint, not an objective: legal limits are never knowingly exceeded.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Enforced while planning; cargo that would exceed an effective limit goes to unplacedItems with reason axle_limit.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "{ \"role\": \"trailer\", \"position\": 8200, \"maxLoad\": 24000 }",
       "url": "https://www.loadoptimizer.ai/docs/libraries.html"
      },
      {
       "text": "axle.axleGroups[] carrier The regulated axle groups.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. axleGroups[] is a list with no stated maximum; examples use two and three groups (steer, drive, trailer), used for both limits and reporting. Groups can be refined into inner axles[].",
     "searched": "",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "tareWeight + tareCoG , the empty weight and its center of gravity",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "tareWeight + emptyAxleLoads , a convenience: give the empty load measured on each axle group (in axleGroups order) and the engine derives the tare CoG for you",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. In V0.5, tareWeight is 'stored with the job' with no stated effect.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The solver resolves the statics across the coupling: a fifth wheel transfers a large kingpin load onto the towing unit , so loading the trailer changes the tractor's steer and drive loads , while a drawbar transfers little.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "the per-coupling vertical reaction (e.g. the kingpin load) is reported in the result as axle.couplingReactions[].",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. axle.couplings[] {type fifthWheel|drawbar, position, transmitsVertical}.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "jurisdiction derives the legal axle/group/gross/dimension limits (an unrecognised value is a 400).",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "Spacing-based frameworks (US bridge formula, EU tandem/tridem steps) use the carrier's inner-axle spacing against the job's jurisdiction.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The list of accepted jurisdiction values is not published.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "For dense or offset loads you can also clamp the load's center of gravity to an envelope, expressed as a max % offset from the carrier center. Like the axle limits, cogLimit is a hard constraint:",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "This keeps the load CoG within 10% of center longitudinally and 5% laterally.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. configuration.cogLimit.maxLongitudinalPct, symmetric around the carrier centre, job-level applied per carrier; unplaced reason cog_limit. An asymmetric window cannot be set.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "configuration.cogLimit.maxLateralPct caps how far the load's CoG may sit off the centreline.",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "axle.trackWidth and the load's lateral centre of gravity drive left/right balance and rollover assessment",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The FAQ's 'weight is distributed evenly across the carrier width' is a GA claim only.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Rollover assessment (Beta) is named with trackWidth but no vertical limit or output is specified.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: vertical, height of centre of gravity, cog z, maxVertical, cogLimit, rollover. cogLimit has only maxLongitudinalPct and maxLateralPct; the result reports centerOfGravity.z but no limit exists.",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "CenterLoadMass centres the load's mass after solving; consolidation picks the axis the solver packs along from the first step.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "When enabled, the algorithm will attempt to center the weight distribution for better stability during transport.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      }
     ],
     "recipe": "",
     "note": "Shift Mass to Center applies to the load wizard only, not pallets; no target or tolerance.",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Only drop contents too (give just geometry + weight, optionally centerOfGravity) when you don't have the item detail",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "sku entries add weight/centerOfGravity.",
       "url": "https://www.loadoptimizer.ai/docs/libraries.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. For pre-loaded pallets shipped as solid blocks (Beta) and SKU library entries (In development). Not available on an inline V0.5 cargo line; the field shape is not shown.",
     "searched": "",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Drag each group by its handle into the order you want them loaded. Group 1 goes in first, deepest in the carrier and farthest from the doors.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "Put them in the same group, choose the order of the groups, and each group is loaded as its own section of the carrier. Group 1 goes in first, deepest in the carrier.",
       "url": "https://app.loadoptimizer.ai/changelog/grouping-separate-sections"
      }
     ],
     "recipe": "",
     "note": "Web app, with 'Load groups as separate sections' on (up to 20 groups; Back→Front or Left→Right). Built-in FAQ rule: heavy boxes to the floor first. Beta: stops[].sequence with destination.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Use MaximizeFill when carriers are the constraint (limited quantity) and leftover cargo is acceptable , it lands in unplacedItems by priority.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "The reason is one of no_space, over_weight, axle_limit, no_compatible_hold, constraint_violation, cog_limit, or dropped_by_priority",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      }
     ],
     "recipe": "",
     "note": "Priority is named on Beta and In-development pages (a job-level property, an overridable ItemConstraint, and the dropped_by_priority reason) but its field and ordering direction are never defined. V0.5 explicitly has none. The FAQ tells app users to 'Remove lower-priority items' by hand.",
     "searched": "",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: optional, fill item, filler, nice to have, if space, top up. MinimizeCarriers 'fixes the cargo (every item must ship)'.",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "shared-mechanism",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Boxes that belong together, such as the goods for one customer or one stop, can now be loaded together. Put them in the same group, choose the order of the groups, and each group is loaded as its own section of the carrier. Group 1 goes in first, deepest in the carrier.",
       "url": "https://app.loadoptimizer.ai/changelog/grouping-separate-sections"
      },
      {
       "text": "Group 1 goes in first, deepest in the carrier and farthest from the doors.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      }
     ],
     "recipe": "1. Assign each stop's boxes to its own group (Cards drag, Spreadsheet Group column or Excel groupId) [https://app.loadoptimizer.ai/docs/order-creation, https://app.loadoptimizer.ai/docs/excel-format]. 2. Order the groups so the last stop is Group 1 (deepest, farthest from the doors) and the first stop is the last group [https://app.loadoptimizer.ai/docs/order-creation]. 3. Choose Back→Front (rear door) or Left→Right (side door) [https://app.loadoptimizer.ai/docs/order-creation]. 4. Turn on 'Grouping: Load groups as separate sections' [https://app.loadoptimizer.ai/docs/order-creation].",
     "note": "GA in the web app via ordered group sections; the changelog names 'one stop' as a use. Up to 20 stops; sections are not back-filled. A native stops[]/destination model with access face and four separation modes exists on a Beta page.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "ordered is soft (it bends under physics, like LIFO itself); segmented, layered and noCrossStack are hard , cargo that can't be placed within the rule comes back in unplacedItems rather than breaking it.",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      },
      {
       "text": "layered Stops may share the same floor footprint, but earlier-off cargo must sit on top , you reach down in unload order.",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The default 'ordered' mode is soft. The GA app sections (see sequence-multi-drop) keep groups in separate ordered blocks but the app docs do not state this as a no-blocking guarantee.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only zero overlap (segmented / app sections) or unbounded interleaving (ordered) are available.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: overlap, interleave, mix, look-ahead, stopSeparation, barrier. Stops either interleave freely ('ordered') or not at all ('segmented', with an optional gap), with no overlap distance.",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Near miss (In development): reservedRegions plus carrier contents allow a two-job leg-1/leg-2 workflow, not pickup-and-delivery stops per item.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: pickup, pick-up, origin, collection, milk-run, leg, reserve. The In-development partial-loads page reserves space for 'a pickup further along the route' and continues loading in a second job, but has no per-item origin stop.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated",
      "shared-mechanism"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When enabled, each group is loaded as one block. Within a carrier the groups follow the order you set in the Boxes step.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      },
      {
       "text": "You can define one or more carriers per order. When more than one is present, the optimizer fills them in the order they appear on the Carriers sheet.",
       "url": "https://app.loadoptimizer.ai/docs/order-creation"
      }
     ],
     "recipe": "1. Build multi-drop as ordered group sections (see sequence-multi-drop) [https://app.loadoptimizer.ai/docs/order-creation]. 2. List several carriers; the optimizer fills them in list order [https://app.loadoptimizer.ai/docs/order-creation]. 3. 'Within a carrier the groups follow the order you set', so the stop order holds inside each carrier [https://app.loadoptimizer.ai/docs/order-creation].",
     "note": "Inferred from the 'within a carrier' wording; the Beta LIFO page describes one vehicle only and says nothing about multi-unit plans.",
     "searched": "",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: all or nothing, whole stop, partial stop, complete, drop, unplaced, stop.",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "2. Group by ship date and lane first. Orders can only share a vehicle if they can share a departure and a direction.",
       "url": "https://www.loadoptimizer.ai/load-building-software/"
      },
      {
       "text": "Our load building software groups the open orders into loads, then plans how each vehicle is stacked.",
       "url": "https://www.loadoptimizer.ai/"
      }
     ],
     "recipe": "",
     "note": "Marketing only; no date, lane or order field exists in the API, Beta pages or app.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: date, ship date, due, lane, storage date, days.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The load height is the space above the pallet deck that your boxes may fill.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      },
      {
       "text": "You enter the space above the deck, and the wizard shows the height of the finished unit next to it, pallet included.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      }
     ],
     "recipe": "",
     "note": "App Mixed Palletizing (paid plans): 8 catalogue footprints plus custom; load height per entry. The deck height itself is not a user field. Beta API: a pallet carrier with a hold offset by the deck (offset z 144).",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Build mixed pallets from your box list. Pick the footprints you ship on, set the load height above the deck, and let the optimizer stack them.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      },
      {
       "text": "Boxes are stacked from the bottom up, one complete floor at a time, which is how a pallet gets built.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      }
     ],
     "recipe": "",
     "note": "The pallet wizard builds pallets automatically from any box list, including a single type; no Hi/Ti output or alternative patterns are documented. The V0.5 quickstart also packs one box type onto a pallet carrier.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The options step has nothing to set yet, and that is on purpose.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      },
      {
       "text": "EUR, US, and custom pallet footprints, with overhang and layer control for your cartons",
       "url": "https://www.loadoptimizer.ai/pallet-loading-software/"
      }
     ],
     "recipe": "",
     "note": "The app states the pallet options step has no settings. Marketing claims 'layer control' and pattern testing (column, interlocking, pinwheel) with no documented control.",
     "searched": "",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A second wizard, built around the pallet. Choose the footprints you ship on, set the load height above the deck, and let the optimizer stack your mixed boxes.",
       "url": "https://app.loadoptimizer.ai/changelog/mixed-palletizing"
      },
      {
       "text": "Boxes are stacked from the bottom up, one complete floor at a time, which is how a pallet gets built.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      }
     ],
     "recipe": "",
     "note": "Released 26 Aug 2026; paid plans only; no overhang, weight or stacking options on the pallet step.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "announced",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Letting boxes hang past the footprint by a margin you set is the next thing we are building here.",
       "url": "https://app.loadoptimizer.ai/docs/mixed-palletizing"
      },
      {
       "text": "cost; accessFace (door/unload side); the hold's maxWeight (payload cap), maxStackHeight (build-height cap), and overhang (protrusion allowance)",
       "url": "https://www.loadoptimizer.ai/docs/libraries.html"
      }
     ],
     "recipe": "",
     "note": "Not available in the app; announced as the next feature. An 'overhang (protrusion allowance)' override also appears on an In-development API page. Marketing pages claim overhang limits already.",
     "searched": "",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Marketing's 'keeps the stack square over the base' is not a setting.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: centre on pallet, center, underhang, inset, edge, square over the base, deck position.",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: slip sheet, interlayer, tier sheet, layer pad, cardboard. 'slip sheets' appears only in a load-building explainer about weight.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "beta",
     "flags": [
      "composable-auditor-built"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Override for a named group via groups[name].loadInto, or for one entry via that entry's loadInto.",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      },
      {
       "text": "For an inline carrier, target its name instead.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      }
     ],
     "recipe": "1. Define the pallet as two (or more) inline carrier entries with the same geometry but different names, each with quantity null and loadInto the truck [https://www.loadoptimizer.ai/docs/palletize-then-truck.html]. 2. Put each customer/order's cargo in its own group and set groups[name].loadInto to that group's own pallet entry [https://www.loadoptimizer.ai/docs/mixed-routing.html]. 3. Routing is explicit, so a group's boxes only go on its own pallet entries and groups never share a pallet [https://www.loadoptimizer.ai/docs/mixed-routing.html].",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Marketing claims 'product families that cannot mix'. The app pallet wizard has no grouping option.",
     "searched": "",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Pack boxes onto pallets and load those pallets into a truck , in a single job , using the recursive load-unit model.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      },
      {
       "text": "So a loaded pallet is not something you can place inside a truck in one job. Nesting carriers that way is planned for a future release.",
       "url": "https://www.loadoptimizer.ai/docs/concepts.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. In the V0.5 API and the web app (two separate wizards) palletising and vehicle loading are separate runs.",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Ship pallets a customer has already built, optionally let the optimizer keep stacking loose goods onto them, and load everything into containers , all in one job.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "The pallet's loaded weight and CoG are derived from its contents, so you don't restate weight.",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. A built pallet enters a vehicle plan as cargo with its contents (weight/CoG/envelope derived). Carrying a pallet result from the app pallet wizard into a load plan is not documented.",
     "searched": "",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "beta",
     "flags": [
      "composable-auditor-built",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The pallet is a carrier and an item. It appears in carriers[] (so the solver may spawn as many as it needs , quantity: null = unlimited), and its own loadInto: [\"carrier_eu_tautliner_3axle\"] declares the pallet→truck step. An intermediate carrier routes onward exactly as cargo does.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      },
      {
       "text": "You get accurate axle loads no matter how deep the cargo nests.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      }
     ],
     "recipe": "1. Define the carton as an intermediate carrier with loadInto the pallet [https://www.loadoptimizer.ai/docs/palletize-then-truck.html]. 2. Define the pallet as an intermediate carrier with loadInto the truck, and leave the truck without loadInto (terminal) [https://www.loadoptimizer.ai/docs/palletize-then-truck.html]. 3. Give the items loadInto the carton; the solver follows the chain and nests the result [https://www.loadoptimizer.ai/docs/palletize-then-truck.html].",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The worked example is box→pallet→truck (two packing steps); a third step follows from 'routes onward exactly as cargo does' and 'no matter how deep'.",
     "searched": "",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Line splitting , a single cargo line's amount may split across its candidates: some onto pallets, the remainder loose, when that packs better.",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      },
      {
       "text": "Boxes that don't fill a final pallet can be allowed to load loose in the truck instead , that's mixed routing.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract.",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "To forbid it, add a job-level directOn rule (the pallet class may not rest on the pallet class) or set the pallet's constraints.allowStackingOnTop: false.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      },
      {
       "text": "for a carrier, these govern it when it's itself stacked, e.g. a loaded pallet on a truck",
       "url": "https://www.loadoptimizer.ai/docs/libraries.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Built/pre-loaded pallets take allowStackingOnTop, maxWeightOnTop, minSupport and class relations in the vehicle; library defaultConstraints on carriers (In development).",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Heights are user-set, not adapted by the planner.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: pallet height, load height, top tier, double stack, adapt, maxStackHeight. The app tells the user to take the load height from 'the roof of the trailer the pallets travel in' (a manual input); the In-development maxStackHeight override is also user-set.",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Use MaximizeFill when carriers are the constraint (limited quantity) and leftover cargo is acceptable , it lands in unplacedItems by priority.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "Any other value is rejected with a 400, including \"MaximizeFill\", a primary objective in the target API that /v2 does not implement.",
       "url": "https://www.loadoptimizer.ai/docs/objectives.html"
      }
     ],
     "recipe": "",
     "note": "MaximizeFill is Beta; V0.5 rejects it. Under V0.5 MinimizeCarriers with a fixed quantity, leftovers are reported, but the docs do not say the given units are filled as fully as possible. Pricing lists a 'max first truck' method (Business+), undocumented.",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No weight-based objective among the documented primaries (MinimizeCarriers, MaximizeFill, BalanceCarriers, MinimizeCost).",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: weight utilization, maximize weight, weight objective, heavy, payload objective. weightUtilization appears only as a Beta output KPI.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "objective: BalanceCarriers configuration Spread the load evenly across the available carriers.",
       "url": "https://www.loadoptimizer.ai/docs/containers-and-uld.html"
      },
      {
       "text": "Two further packing strategies are coming soon: Minimize (use the fewest carriers) and Balance (spread boxes evenly across carriers).",
       "url": "https://app.loadoptimizer.ai/changelog/wizard-and-multi-carrier"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. 'Evenly' is not defined (volume, weight or count). The June 2026 changelog calls Balance 'coming soon' in the app; the pricing table lists 'balance fill' from Standard up.",
     "searched": "",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "workaround",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "workaround"
     ],
     "quotes": [
      {
       "text": "When all boxes of a type are placed, a green check icon is shown. Click the plus button to add an extra box beyond the original count.",
       "url": "https://app.loadoptimizer.ai/docs/edit-mode"
      },
      {
       "text": "If there is no space available for the box, a dialog will inform you.",
       "url": "https://app.loadoptimizer.ai/docs/edit-mode"
      }
     ],
     "recipe": "",
     "note": "No cube-out, maximum-sets or automatic top-up mode; the user adds extra boxes one at a time and each is auto-placed until a 'does not fit' dialog appears.",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Fast heuristic for instant results; AI-optimized runs for complex mixed loads.",
       "url": "https://www.loadoptimizer.ai/"
      },
      {
       "text": "Pick heuristic or AI-run, the load planning software returns optimized 3D plan in seconds.",
       "url": "https://www.loadoptimizer.ai/"
      }
     ],
     "recipe": "",
     "note": "Homepage only. The objectives page calls CenterLoadMass and consolidation 'deterministic switches'; nothing is said about run-to-run reproducibility.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: time limit, timeout, quality, fast, heuristic, depth, seed, deterministic. No run-time or quality control exists in the V0.5 contract or the app Configuration step.",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "One plan per job.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: alternative, several plans, compare, options, variants, batch. Batch jobs (In development) run several independent jobs; the truck page suggests the user 'compare the same order across two vehicle types' by planning twice.",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: rule, condition, if, where, threshold, over, attribute, filter, select. Rules attach to named entries, groups or classes only.",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "documented-limitation",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Free labels, no solver behaviour. Echoed back as the (singular) group array on placements and unplaced entries.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Optional display hint for the viewer (e.g. \"box\"), echoed on the result. Free text: presentation only, not a closed set.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      }
     ],
     "recipe": "",
     "note": "V0.5 labels (groups, category, externalId, description, color) are display-only. On Beta pages, free class labels (classes[]) drive classRelations and hold capability labels drive routing; those are scored under the class-matrix and compartment rows. No general user-defined attribute a rule can select on.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "\"constraints\": {\n \"classRelations\": {\n \"directOn\": [ { \"upper\": \"std_pallet\", \"lower\": \"fragile_pallet\" } ]",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "the directOn rule above (a std_pallet may not rest on a fragile_pallet) governs pallet-on-pallet stacking in the container too",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Class codes per entry (classes[], several allowed) and a list of forbidden {upper, lower} pairs. No per-orientation exceptions; notAbove is named but unspecified.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: compatible, incompatible, same carrier, share, matrix, classes, requiresHold, capabilities. Hold capabilities route items to compartments within a unit; no class-to-class matrix for sharing a unit.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: sum, total, cap, limit, custom attribute, per group weight, per carrier.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No rule or optimiser profile per carrier.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: per carrier, per vehicle, profile, settings, configuration, defaultConstraints, accessFace. Configuration (objective, secondaries, cogLimit, stopSeparation) is job-level; carriers carry physical properties (holds, axles, accessFace) and, in the library, defaultConstraints for when the carrier itself is stacked.",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "it only lands somewhere it's allowed: within that pallet's maxWeightOnTop, with at least minSupport % of its base resting on the surface below, and obeying any separation/directOn/requiresHold rules;",
       "url": "https://www.loadoptimizer.ai/docs/preloaded-and-stacking.html"
      },
      {
       "text": "Stacking onto the existing load obeys the normal rules: minSupport, maxWeightOnTop, and the directOn/notAbove class relations (see Constraints).",
       "url": "https://www.loadoptimizer.ai/docs/partial-and-continued-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. In V0.5 the only stacking criterion is allowStackingOnTop.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Secondaries are applied lexicographically after the primary, so give the primary a tolerance band so the balancer has room to act:",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "Combination is lexicographic, never a weighted sum: the primary objective wins, then each entry in secondaryObjectives breaks ties in order.",
       "url": "https://www.loadoptimizer.ai/docs/cost-and-fleet.html"
      }
     ],
     "recipe": "",
     "note": "Beta (axle-legal page) and In development (cost page). V0.5 rejects tolerance with 400 and treats its two secondaries as unordered switches. Pricing lists 'multi objective' on Enterprise only.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Vendor-built customisation (Enterprise) only.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: script, plugin, plug-in, callback, custom rule, extension, webhook, custom functionality. Webhooks (In development) are job notifications; Enterprise pricing offers 'Custom functionality development' by the vendor, which fails as a user capability.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "ordered is soft (it bends under physics, like LIFO itself); segmented, layered and noCrossStack are hard",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      },
      {
       "text": "When you need a stricter discipline , a hard divide between stops, or a rule about stacking across stops , set configuration.stopSeparation.mode:",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The user picks soft (ordered) or hard (segmented/layered/noCrossStack) stop ordering. loadInto candidate order is a soft preference while a single candidate is hard. Axle and CoG limits are always hard, with separate soft objectives.",
     "searched": "",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A positioned unit in its carrier's frame. `x,y,z` is the min corner of the placed box's rotated bounding box; `sizeX/Y/Z` are that box's rotated extents; the rotation is already applied.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Rotation in degrees, always a multiple of 90.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      }
     ],
     "recipe": "",
     "note": "API result and app Excel/CSV export.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Generate a printable PDF document with step-by-step stacking instructions. Each page shows which box to place next with 3D visualizations.",
       "url": "https://app.loadoptimizer.ai/docs/excel-format"
      },
      {
       "text": "Creates a *derived* job that renders one loading-instruction PDF per packed carrier instance of the source job, which must have already succeeded.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      }
     ],
     "recipe": "",
     "note": "The API units page says its PDF 'shows lengths only; no weights or volumes', while the app docs and FAQ list box weights in the PDF.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "% of the carrier's geometry volume used by placements (0-100). Unit-free.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "Sum of placement weights, in units.weight.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      }
     ],
     "recipe": "",
     "note": "Per carrier: placements (contents), itemCount, volumeUtilization, loadedWeight, loadedVolume. Weight utilisation % and per-pallet KPIs appear only in Beta results (V0.5 has no weight limit to measure against).",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "\"kpis\": { \"volumeUtilization\": 71.0, \"weightUtilization\": 64.0, \"floorUtilization\": 88.0, \"ldm\": 9.6, \"loadedWeight\": 1225, \"itemCount\": 9 }",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      },
      {
       "text": "area and ldm are accepted and echoed but express nothing in the result today.",
       "url": "https://www.loadoptimizer.ai/docs/concepts.html"
      }
     ],
     "recipe": "",
     "note": "kpis.ldm and floorUtilization appear only in Beta/In-development result examples; the V0.5 contract states ldm expresses nothing in the result today. The site's LDM calculator is a separate free tool.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "A cargo line that could not be fully placed. Intentionally carries no category, geometry, weight or color: only what identifies the line and how much of it is missing.",
       "url": "https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml"
      },
      {
       "text": "the two columns an export adds to the Boxes sheet, unplaced and inputItemId, are ignored on the way back in.",
       "url": "https://app.loadoptimizer.ai/docs/excel-format"
      }
     ],
     "recipe": "",
     "note": "API unplacedItems[] with amount per line; app Excel Boxes sheet 'unplaced' column and Edit Mode box counts.",
     "searched": "",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The reason is one of no_space, over_weight, axle_limit, no_compatible_hold, constraint_violation, cog_limit, or dropped_by_priority (with constraintRef naming the rule for constraint_violation).",
       "url": "https://www.loadoptimizer.ai/docs/mixed-routing.html"
      },
      {
       "text": "The assistant looks at the calculation, tells you which boxes did not fit and why, and offers a fix like 'add_more_carriers' or 'reduce_box_count'.",
       "url": "https://app.loadoptimizer.ai/docs/loady-assistant"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. V0.5 UnplacedItem has no reason field. In the GA app the Loady assistant explains a partial fit and suggests one of a few common fixes.",
     "searched": "",
     "corrected": null
    },
    "output-cog": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "centerOfGravity gives the load CoG in the carrier frame",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "\"centerOfGravity\": { \"x\": 3.35, \"y\": 0, \"z\": 1.18 }",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. The V0.5 result has no CoG figure. Marketing and pricing claim a CoG check on every plan, including Free; no CoG output appears in the app docs.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "source-conflict"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Per group you get load, the effective maxLoad, utilization %, and withinLimit; the combination reports gross (weight / limit / withinLimit)",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "In LoadOptimizer the axle weight and center of gravity check runs on every plan, including the Free plan.",
       "url": "https://www.loadoptimizer.ai/truck-loading-software/"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. Limits and margins (utilization, withinLimit) are shown. No axle output appears in the V0.5 result or the app docs, although marketing says axle loads are shown in the app.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Claimed heatmaps only; axle loads (Beta) are the only documented weight-position output.",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: distribution, along the length, per metre, section, heatmap, floor weight. The features page claims 'visual weight distribution heatmaps for every load plan', with no documented output.",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "\"gross\": { \"weight\": 25400, \"limit\": 26000, \"withinLimit\": true }",
       "url": "https://www.loadoptimizer.ai/docs/axle-legal-loading.html"
      },
      {
       "text": "placements[].weight result Effective weight = tare + contents for a loaded carrier.",
       "url": "https://www.loadoptimizer.ai/docs/palletize-then-truck.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. axle.gross.weight includes the vehicle tare (example: 16400 kg load + 9000 kg tare = 25400). For containers without an axle block, V0.5 reports only cargo weight (loadedWeight excludes tare); the VGM claim is marketing.",
     "searched": "",
     "corrected": null
    },
    "output-per-stop": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "beta",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The result adds a top-level stops[] rollup , per stop you get itemCount and weight. Each placement also carries its own stop id, so you can colour or filter the 3D layout by drop:",
       "url": "https://www.loadoptimizer.ai/docs/multi-drop-lifo.html"
      }
     ],
     "recipe": "",
     "note": "Beta page (\"not callable on every account yet\"); not part of the V0.5 contract. No per-stop view or per-stop instructions are documented.",
     "searched": "",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "When you know something the data does not, such as a drop that must come off first, you can drag pallets to new positions and the software keeps the fit, weight, and axle checks live as you adjust.",
       "url": "https://www.loadoptimizer.ai/truck-loading-software/"
      },
      {
       "text": "A red warning appears when a box exceeds the container height. Reposition the box to resolve the violation.",
       "url": "https://app.loadoptimizer.ai/docs/edit-mode"
      }
     ],
     "recipe": "",
     "note": "The app docs document only a container-height warning in Edit Mode (noted as insufficient by the row). POST /jobs/validate checks request syntax, not a plan.",
     "searched": "",
     "corrected": null
    },
    "output-voids": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "Full text of: OpenAPI contract (loadoptimizer-openapi.yaml, all schemas); API docs concepts, constraints, job-request, objectives, units, building-load-units, quickstart, errors, exports-and-sharing; all Beta pages (axle-legal-loading, containers-and-uld, multi-drop-lifo, palletize-then-truck, mixed-routing, preloaded-and-stacking); In-development pages (cost-and-fleet, partial-and-continued-loading, libraries, batch-jobs, webhooks); app help centre app.loadoptimizer.ai/docs (overview, how-it-works, order-creation, mixed-palletizing, boxes, excel-format, 3d-viewer, edit-mode, loady-assistant) and app.loadoptimizer.ai/changelog with all 8 entries; FAQ, pricing, features, features/manual-edit, how-it-works, homepage and 15 solution pages (truck, container, container-stuffing, load-building, multi-carrier, cylindrical, tank-and-pipe, pallet-loading, mixed-palletizing, stacking-rules, air-cargo-uld, automotive, api-documentation, api-integrations). Keyword search (regex, case-insensitive) for: void, empty space, gap, dunnage, airbag, free space. 'dunnage' appears only in explainer text about weight.",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "announced",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "The result's summary.totalCost is the sum of the used top-level carriers' costs; per-carrier the chosen type is identifiable by libraryId/name.",
       "url": "https://www.loadoptimizer.ai/docs/cost-and-fleet.html"
      }
     ],
     "recipe": "",
     "note": "In development (not callable yet). No per-item cost allocation; cost is unitless with a display-only currency.",
     "searched": "",
     "corrected": null
    }
   }
  },
  {
   "id": "searates-load-calculator",
   "name": "SeaRates Load Calculator",
   "vendor": "SeaRates",
   "url": "https://www.searates.com/load-calculator/",
   "auditedOn": "2026-09-30",
   "caveat": "Release notes before 2024 were not searched: the site could not be reached when the re-check was run. Pricing tiers require a sign-in and were not read.",
   "scope": "Load Calculator API v2 (OpenAPI spec version 02.1.1, retrieved 2026-09-30).",
   "sources": [
    {
     "title": "Load Calculator API v2 - Get packing result (docs.searates.com)",
     "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
    },
    {
     "title": "load-calculator-v2-openapi.json",
     "url": "https://docs.searates.com/spec/load-calculator-v2-openapi.json"
    },
    {
     "title": "Load Calculator Web integration",
     "url": "https://docs.searates.com/guides/integrations/load-calculator"
    },
    {
     "title": "Help: Load Calculator category",
     "url": "https://www.searates.com/help/tools/load-calculator"
    },
    {
     "title": "How To Use the Load Calculator? Smart Stuffing of Containers & Trucks (Apr 2025)",
     "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
    },
    {
     "title": "Load Calculator Tool for Optimizing Cargo Space (May 2023)",
     "url": "https://www.searates.com/blog/post/load-calculator-tool-for-optimizing-cargo-space"
    },
    {
     "title": "Discover Load Calculator Capabilities for Your Logistics (May 2024)",
     "url": "https://www.searates.com/blog/post/discover-load-calculator-capabilities-for-your-logistics"
    },
    {
     "title": "How to Optimize Your Container Load Planning (Jun 2024)",
     "url": "https://www.searates.com/blog/post/how-to-optimize-your-shipping-goods-stuffing"
    },
    {
     "title": "Pallets Usage for Loading Containers and Trucks in the Load Calculator (Jun 2019)",
     "url": "https://www.searates.com/blog/post/pallets-usage-for-loading-containers-and-trucks-in-the-load-calculator"
    },
    {
     "title": "Load Calculator Video Guide",
     "url": "https://www.searates.com/blog/post/load-calculator-video-guide-searates-youtube"
    },
    {
     "title": "SeaRates Updates weekly posts",
     "url": "https://www.searates.com/blog/post/searates-updates-week-{1..52}-{2024,2025,2026}"
    },
    {
     "title": "Load Calculator web integration / features",
     "url": "https://www.searates.com/integrations/load-calculator/"
    },
    {
     "title": "Load Calculator API marketing page",
     "url": "https://www.searates.com/integrations/api-load-calculator/"
    },
    {
     "title": "Load Calculator app landing page",
     "url": "https://www.searates.com/load-calculator/"
    },
    {
     "title": "About Load Calculator Tool",
     "url": "https://www.searates.com/reference/stuffing/"
    }
   ],
   "passed": 26,
   "cells": {
    "equipment-box-space": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "length REQUIRED number ... width REQUIRED number ... height REQUIRED number ... maxWeight REQUIRED number",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Yes. You can customize container or truck dimensions by entering your own values in the corresponding fields during the calculation process.",
       "url": "https://www.searates.com/help/tools/load-calculator/is-it-possible-to-change-truck-or-container-sizes-in-the-load-calculator"
      }
     ],
     "recipe": "",
     "note": "Each container/truck is one or more rectangular spaces (length, width, height, maxWeight, all required). Web tool adds preset container and truck types.",
     "searched": "",
     "corrected": null
    },
    "equipment-obstruction": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The containerSpace schema has only length, width, height and maxWeight; no field for a blocked region.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: obstruction, wheel arch, reefer unit, cooling unit, blocked, unusable, dead space, corner casting; container/containerSpace schema fields.",
     "corrected": null
    },
    "equipment-obstruction-arbitrary": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No obstruction input of any kind is documented.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: blocked region, keep clear, obstruction, dummy item, forbidden zone.",
     "corrected": null
    },
    "equipment-height-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only routes: edit the space height (workaround) or set per-item stacking.maxHeight (scored under stacking-max-height). No plan- or equipment-level ceiling clearance.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: ceiling clearance, height limit, loading height, gap below roof, usable height.",
     "corrected": null
    },
    "equipment-step-lengthwise": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Multi-section spaces exist (ULD 2-3 sections) but no offsets or spatial relation between sections are documented, so a step cannot be modelled.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: drop deck, step deck, gooseneck, split level, floor step, mega trailer.",
     "corrected": null
    },
    "equipment-contour-crosswise": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "ULDs are described only as 2 or 3 rectangular sections with no stated spatial relation; the definition note says this does not pass.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: contour, ULD shape, cut-back, sloped, profile, curved roof.",
     "corrected": null
    },
    "equipment-contour-both-views": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No contour input of any kind.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: contour, ULD, profile, step, slope.",
     "corrected": null
    },
    "equipment-contour-sloped": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No contour input of any kind.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: slope, angle, chamfer, contour points.",
     "corrected": null
    },
    "equipment-compartments": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "spaces ... An array of container spaces. Standard containers have only 1 section, but ULD containers can contain 2 or 3 sections.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "length REQUIRED number ... width REQUIRED number ... height REQUIRED number ... maxWeight REQUIRED number",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per container definition (fixed and auto). The docs name only ULDs as the use case; the response does not identify which section an item is in.",
     "searched": "",
     "corrected": null
    },
    "equipment-door-aperture": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Door width/height appear only as descriptive data for preset containers in the web tool; no engine effect is stated and the API has no door fields. Fails per definition note.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: door width, door height, door opening, aperture; API containerSpace fields.",
     "corrected": null
    },
    "equipment-access-side": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No loading-face setting. loadType (auto/wallLength/wallWidth/floor) is a fill pattern with no concept of a door; scored under positioning-fill-direction.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: loading face, door side, side loading, top loading, rear door, access.",
     "corrected": null
    },
    "equipment-open-equipment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Marketing mentions \"trailer\" and \"oversized goods\" but no open-equipment behaviour or envelope setting is documented.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: open top, flat rack, flatbed, overhang, over-height, over-width, out of gauge.",
     "corrected": null
    },
    "fleet-auto-count": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "autoContainers REQUIRED array[object] The algorithm determines which type will be used for loading automatically.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Our team has added an Auto count checkbox to the tool for selecting one or more container types for automatic calculation of the number of containers.",
       "url": "https://www.searates.com/blog/post/searates-updates-week-44-2025"
      }
     ],
     "recipe": "",
     "note": "API: autoContainers (required) are added as needed; result[].qty groups identical containers. Web: \"Auto count\" checkbox (Nov 2025). No documented upper limit on units added.",
     "searched": "",
     "corrected": null
    },
    "fleet-mixed-types": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "autoContainers REQUIRED array[object] The algorithm determines which type will be used for loading automatically.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Auto count checkbox to the tool for selecting one or more container types for automatic calculation of the number of containers.",
       "url": "https://www.searates.com/blog/post/searates-updates-week-44-2025"
      }
     ],
     "recipe": "",
     "note": "The spec example offers 20st, 40st and 40hq together in autoContainers; result is a list of containers, each with qty.",
     "searched": "",
     "corrected": null
    },
    "fleet-quantity-limit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Fixed containers carry a qty, but they are only filled before auto containers; autoContainers is a required field, and no source says what happens to cargo that does not fit when only fixed quantities are wanted.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: qty, available quantity, maximum containers, limit units, leftover, remainder not loaded.",
     "corrected": null
    },
    "fleet-preference-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "containers ... fixed quantity of containers that fill up earlier than auto containers",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "qty ... Quantity of containers. The option is not taken into account for autocontainers",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "No ranking among several auto container types is documented.",
     "searched": "",
     "corrected": null
    },
    "fleet-smallest-fit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Automatic type selection is documented, but the criterion (\"optimal\") is never defined, so selection of the smallest sufficient type is not shown.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: smallest, best fit, cheapest, recommended container, optimal container type, selection criterion.",
     "corrected": null
    },
    "fleet-min-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No cost input on containers in the API or web tool; freight rates live in separate SeaRates products.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: cost, price, rate, cheapest, freight cost per container.",
     "corrected": null
    },
    "fleet-fill-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only fill parameter is pallets.stacking.fill (minimum top-layer fill for stacking pallets), which is not a unit fill cap.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: maximum fill, fill percentage, utilisation cap, air circulation, volume limit.",
     "corrected": null
    },
    "fleet-min-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No minimum-fill input for containers or trucks.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: minimum fill, minimum utilisation, underfilled, min load.",
     "corrected": null
    },
    "fleet-item-to-type": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "groups Optional array List of groups allowed for loading into this container. The option is not taken into account for autocontainers.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "pallets Optional object Pallet settings for a group. If the field is undefined || null, then the pallets will not be used when loading",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Container restriction applies to fixed containers only; auto containers ignore it.",
     "searched": "",
     "corrected": null
    },
    "fleet-item-to-unit": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "groups Optional array List of groups allowed for loading into this container. The option is not taken into account for autocontainers.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "you can choose a container or truck for each of them separately with the ‘Load only specific groups’ option.",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      }
     ],
     "recipe": "",
     "note": "A fixed container entry with qty 1 is an individual unit; its groups list ties groups to it. Restriction is on the container side (an allow-list).",
     "searched": "",
     "corrected": null
    },
    "fleet-container-sizing": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Container dimensions are always inputs.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: determine container dimensions, carton sizing, custom box size range, min/max dimensions.",
     "corrected": null
    },
    "cargo-box-items": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "type REQUIRED string Type of cargo Allowed values: box sacks bigbags",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "qty REQUIRED integer Quantity of boxes >= 1 <= 1000000",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per item line: length, width, height, weight per unit, qty 1 to 1,000,000. No documented cap on the number of item lines. Sacks and bigbags share the box schema.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinders": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "type REQUIRED string Type of cargo Allowed values: roll barrels pipes",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "size REQUIRED object One roll size. ... radius REQUIRED number ... height REQUIRED number",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "API takes radius (equivalent to diameter); web tool asks for diameter.",
     "searched": "",
     "corrected": null
    },
    "cargo-cylinder-nesting": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Hexagonal positioning of round objects Load your pipes and barrels for secure and profitable shipping. Save much space on hexagonal placement",
       "url": "https://www.searates.com/integrations/load-calculator/"
      }
     ],
     "recipe": "",
     "note": "Marketing feature page only; no parameter or documentation of the arrangement.",
     "searched": "",
     "corrected": null
    },
    "cargo-shape-interlock": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only box and cylinder schemas exist.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: L-shape, irregular shape, interlock, nest, tapered, shaped items.",
     "corrected": null
    },
    "cargo-cavity-fill": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: cavity, inside item, under overhang, frame, free space in item.",
     "corrected": null
    },
    "cargo-free-shapes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The blog names irregular shapes as a challenge, but no arbitrary-shape input exists.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: CAD, mesh, 3D model, irregular shape, custom shape, STL.",
     "corrected": null
    },
    "cargo-bulk": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "cargo type — box, big bags, sacks, barrels, rolls, pipes, or bulk",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      },
      {
       "text": "Specialized stuffing for pipes, barrels and bulk commodities",
       "url": "https://www.searates.com/integrations/api-load-calculator/"
      }
     ],
     "recipe": "",
     "note": "Web tool lists bulk as a cargo type; the API enums do not include it. No description of how bulk occupies space.",
     "searched": "",
     "corrected": null
    },
    "cargo-compressible": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Compressing/squeezing for soft cargoes In the cubic weight calculator for shipping, simply select default measurement and weight units. Enhanced loading estimation by adding the needed margin to your loads if it allows flexible processing.",
       "url": "https://www.searates.com/integrations/load-calculator/"
      },
      {
       "text": "Compression & allowance feature",
       "url": "https://www.searates.com/integrations/api-load-calculator/"
      }
     ],
     "recipe": "",
     "note": "No field in the API schema; no percentage or limit documented.",
     "searched": "",
     "corrected": null
    },
    "cargo-pack-levels": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Each item line is a single package type with a quantity.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: pack level, inner, case, each, bundle, packaging configuration, units per carton.",
     "corrected": null
    },
    "orientation-upright": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "tiltX Optional boolean Allow tilting the box along the width Default: true",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "tiltY Optional boolean Allow tilting the box along the length Default: true",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per item line: set tiltX and tiltY to false and the height axis stays vertical.",
     "searched": "",
     "corrected": null
    },
    "orientation-no-turn": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No setting for rotation about the vertical axis; the tilt flags only govern tipping.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: rotate, rotation, turn, lengthwise, widthwise, forklift direction, fixed orientation.",
     "corrected": null
    },
    "orientation-all-six": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "tiltX Optional boolean Allow tilting the box along the width Default: true",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "tiltY Optional boolean Allow tilting the box along the length Default: true",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Both tilt flags default to true, so tipping along width and length is allowed by default.",
     "searched": "",
     "corrected": null
    },
    "orientation-side-not-end": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "tiltX Optional boolean Allow tilting the box along the width Default: true",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "tiltY Optional boolean Allow tilting the box along the length Default: true",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per item line: enabling one tilt flag and not the other allows only one of the two tipped attitudes.",
     "searched": "",
     "corrected": null
    },
    "orientation-any-subset": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Two tilt toggles plus no control of rotation about the vertical axis cannot express every subset of the six orientations.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: six orientations, orientation mask, allowed orientations, rotation.",
     "corrected": null
    },
    "orientation-preferred": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: preferred orientation, prefer, default orientation.",
     "corrected": null
    },
    "orientation-floor-dependent": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: floor only orientation, bottom layer, tipped above floor.",
     "corrected": null
    },
    "orientation-stacking-by-orientation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Stacking fields (layers, topWeight, maxHeight) are per item, not per orientation.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: stack on side, per orientation, layers by orientation.",
     "corrected": null
    },
    "orientation-angled": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: angle, lean, diagonal, non-orthogonal.",
     "corrected": null
    },
    "orientation-cylinder-attitude": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "arrange Optional string Allowed values: vertical horizontal Default: vertical",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "In the case of the transportation of goods in rolls, you will be offered two options for loading them",
       "url": "https://www.searates.com/blog/post/load-calculator-tool-for-optimizing-cargo-space"
      }
     ],
     "recipe": "",
     "note": "Per roll/barrel/pipe item (stacking.arrange). A separate roll tilt flag exists whose description is copied from the box schema.",
     "searched": "",
     "corrected": null
    },
    "stacking-no-top": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "adding the \"Disable stacking\" checkbox on the \"Stuffing settings\" section for all cargo types (boxes, big bags, sacks, barrels, rolls, etc.). This way you can adjust online stuffing by mentioning the requirement to place cargo in only one layer if nothing can be placed on top.",
       "url": "https://www.searates.com/blog/post/searates-updates-week-36-2024"
      },
      {
       "text": "topWeight Optional number Allowed weight on top",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Web: \"Disable stacking\" checkbox per cargo line (Sep 2024). API: topWeight per item (0 would pass per definition note, though a zero value is not shown in the docs).",
     "searched": "",
     "corrected": null
    },
    "stacking-floor-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "\"Disable stacking\" places cargo \"in only one layer\", framed as nothing on top of it; it is not stated to force the item onto the floor.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: floor only, bottom, must be on floor, ground layer.",
     "corrected": null
    },
    "stacking-not-floor": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: not on floor, top only, must be stacked, upper layer.",
     "corrected": null
    },
    "stacking-max-count-same": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "layers Optional integer Allowable quantity of boxes in a vertical stack",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "stuffing settings — layers count, mass, and height",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      }
     ],
     "recipe": "",
     "note": "Per item line (box and roll).",
     "searched": "",
     "corrected": null
    },
    "stacking-max-tier-any": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "layers is per item line; whether it counts other items in the same stack is not stated. No container-wide tier cap.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: tier, level, total stack levels, mixed stack.",
     "corrected": null
    },
    "stacking-max-height": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "source-conflict",
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "maxHeight Optional number Maximum stacking height with boxes",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "You can also change the number of allowed layers or set a weight or height limit, entering the appropriate values in the “Mass” or “Height” fields.",
       "url": "https://www.searates.com/blog/post/searates-updates-week-36-2024"
      }
     ],
     "recipe": "",
     "note": "Per item line, in length units. The request example uses an undocumented key \"height\" instead of maxHeight.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "topWeight Optional number Allowed weight on top",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Next, specify the parameters of the allowable load that can be placed on top.",
       "url": "https://www.searates.com/blog/post/discover-load-calculator-capabilities-for-your-logistics"
      }
     ],
     "recipe": "",
     "note": "Per item line, in weight units. Whether it counts the whole column above or only the item directly on top is not stated; no scale limit documented.",
     "searched": "",
     "corrected": null
    },
    "stacking-bearing-pressure": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "topWeight is a plain weight; no area-based evaluation is documented.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: pressure, per area, kg/m2, contact area, bearing strength.",
     "corrected": null
    },
    "stacking-bearing-same-item": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The docs do not say whether topWeight is checked within stacks of identical units.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: same item, identical, like-item stack, topWeight.",
     "corrected": null
    },
    "stacking-heavier-below": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The 2023 blog lists industry rules (quoted) as general advice, not as a product behaviour; no weight-ordering rule is documented for the planner.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: heavy at bottom, heavier below, weight order, light on top.",
     "corrected": null
    },
    "stacking-strength-index": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: strength, fragility index, crush, stack index, class.",
     "corrected": null
    },
    "stacking-item-pair": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: stack on, stackable with, matrix, compatibility, allowed below.",
     "corrected": null
    },
    "stacking-footprint": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: footprint, same size, column, aligned, larger on top.",
     "corrected": null
    },
    "stacking-min-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: support, overhang, supported area, percentage support, stability.",
     "corrected": null
    },
    "stacking-bridging": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: bridging, height difference, gap, level surface.",
     "corrected": null
    },
    "stacking-shape-aware": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: nesting, nestable, open top, top shape.",
     "corrected": null
    },
    "stacking-complete-only": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "pallets.stacking.fill gates stacking a pallet on another by top-layer fill; it does not restrict loading to complete stacks or layers or route remainders (scored under pallet-rules-in-vehicle).",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: complete layers, full stacks, flat top, full layers only, remainder.",
     "corrected": null
    },
    "between-identical-together": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "Explore safe cargo loading calculator for efficient unloading and grouping of the same items",
       "url": "https://www.searates.com/integrations/api-load-calculator/"
      },
      {
       "text": "\"options\": { \"lengthUnits\": \"mm\", \"weightUnits\": \"kg\", \"lengthAccuracy\": 5, \"remainsNear\": true }",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "API marketing claims grouping of the same items; options.remainsNear appears only in the request example, undescribed. Block output (complex counts per axis) shows identical units placed as blocks but is not a user setting.",
     "searched": "",
     "corrected": null
    },
    "between-group-together": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Groups are an array of JSON objects arranged in a strict order, which is taken into account when stuffing containers. The closer to the beginning of the array the group, the earlier it will be stuffed.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "And your goods can be loaded in groups. This is necessary to ensure that the unloading of goods is predictable and does not cause any delays or difficulties.",
       "url": "https://www.searates.com/blog/post/load-calculator-tool-for-optimizing-cargo-space"
      }
     ],
     "recipe": "",
     "note": "Groups are documented (uid, order, pallet settings), but no source states a keep-together rule; group contiguity is implied only by sequential stuffing and a marketing blog.",
     "searched": "",
     "corrected": null
    },
    "between-group-one-unit": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "containers[].groups restricts where a group may go but does not forbid splitting a group across units.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: do not split group, one container per group, keep order in one unit.",
     "corrected": null
    },
    "between-group-all-or-none": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: all or nothing, whole order, complete group, leave out group.",
     "corrected": null
    },
    "between-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: section, wall, barrier, separator, divider, zone per group.",
     "corrected": null
    },
    "between-no-cross-stack": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: stack across groups, group stacking, not on top of other order.",
     "corrected": null
    },
    "between-not-same-unit": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown",
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "groups Optional array List of groups allowed for loading into this container. The option is not taken into account for autocontainers.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "containers ... fixed quantity of containers that fill up earlier than auto containers",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "1. Put each set of goods that must be kept apart in its own group (groups[]; https://docs.searates.com/reference/load-calculator/get-packing-result). 2. Define fixed containers (containers[], \"fixed quantity of containers that fill up earlier than auto containers\"; https://docs.searates.com/reference/load-calculator/get-packing-result). 3. On each fixed container list only the group uid(s) allowed in it (containers[].groups, \"List of groups allowed for loading into this container\"; https://docs.searates.com/reference/load-calculator/get-packing-result).",
     "note": "Whole-container separation only, and only for fixed containers; auto containers ignore the groups option, so overflow into auto containers could mix groups.",
     "searched": "",
     "corrected": null
    },
    "between-spatial-separation": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: separation distance, keep apart, not above, segregation within container.",
     "corrected": null
    },
    "between-dg-classes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Dangerous goods appear only as general advice in a blog; no hazard-class attribute exists.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: dangerous goods, hazardous, IMO class, IMDG, hazmat, segregation.",
     "corrected": null
    },
    "between-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: value cap, declared value, piece count limit, Q-value.",
     "corrected": null
    },
    "between-distinct-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Restricting a fixed container to one group via containers[].groups limits which groups, not how many distinct items.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: distinct items, SKU limit, orders per container.",
     "corrected": null
    },
    "between-ratio": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: ratio, set, kit, proportion.",
     "corrected": null
    },
    "between-batch": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: multiple of, batch, lot size.",
     "corrected": null
    },
    "positioning-lock-and-complete": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Results can be exported and re-imported for viewing; no locking or completion around fixed placements is documented.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: fix, lock, pin, pre-loaded, re-plan, manual placement, edit result.",
     "corrected": null
    },
    "positioning-fixed-coordinates": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "location {x,y,z} exists only in the response schema.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: position, coordinates, location input, fixed position.",
     "corrected": null
    },
    "positioning-confine-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: front, rear, zone, region, position in container, near door.",
     "corrected": null
    },
    "positioning-exclude-region": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: keep out, exclude, aisle, door area, free zone.",
     "corrected": null
    },
    "positioning-fill-direction": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "loadType Optional string Allowed values: auto wallLength wallWidth floor Default: auto",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Customized loading is also available, so you can choose how each cargo group should be loaded in the queue.",
       "url": "https://www.searates.com/blog/post/load-calculator-tool-for-optimizing-cargo-space"
      }
     ],
     "recipe": "",
     "note": "Four named fill patterns per container; none is described.",
     "searched": "",
     "corrected": null
    },
    "positioning-floor-first": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [],
     "recipe": "",
     "note": "The loadType value \"floor\" may be a floor-first strategy, but it is undescribed.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: floor first, spread, cover floor, single layer strategy.",
     "corrected": null
    },
    "positioning-handling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: forklift, reach, block depth, turning, handling equipment.",
     "corrected": null
    },
    "positioning-clearance": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The web tool's \"Spacing settings\" section holds tilt checkboxes, not gaps. The marketing \"margin\" wording is scored under cargo-compressible.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: gap, clearance, spacing, margin, allowance, bulge.",
     "corrected": null
    },
    "positioning-shift-support": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "An API page calls it a \"cargo lashing calculator\" as SEO wording; no shift or support check is documented.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: shift, secure, backed, lateral support, load securing, lashing.",
     "corrected": null
    },
    "weight-payload": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "maxWeight REQUIRED number Example: 26460",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "maxWeight REQUIRED number Maximum permissible pallet load",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per container space (required) and per pallet. No documented switch-off or scale limit.",
     "searched": "",
     "corrected": null
    },
    "weight-compartment-cap": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "enforcement-unclear",
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "spaces ... An array of container spaces. Standard containers have only 1 section, but ULD containers can contain 2 or 3 sections.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "maxWeight REQUIRED number",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Each section of a multi-section (ULD) container has its own maxWeight.",
     "searched": "",
     "corrected": null
    },
    "weight-length-sections": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: floor section, front/middle/rear weight, segment limit.",
     "corrected": null
    },
    "weight-linear-density": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: weight per metre, linear load, kg/m, concentrated load.",
     "corrected": null
    },
    "weight-axle-limits": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [
      "enforcement-unclear"
     ],
     "quotes": [
      {
       "text": "For trucks, you can customize the axle load: “The location of the truck wheels relative to the container and the weight allowed for each axle. F - Front max weight (kg), F - Front offset (cm), R - Rear max weight (kg), R - Rear offset (cm).”",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      },
      {
       "text": "If you need to plan loading properly for the road transport and intermodal delivery, either this is container or truck, distribute the loading settings with help of built-in axle weight calculator to get the perfect result in means of safety on road and penalty avoidance.",
       "url": "https://www.searates.com/integrations/load-calculator/"
      }
     ],
     "recipe": "",
     "note": "Web tool, trucks only, exactly two axles (front and rear: max weight in kg and offset in cm). Not in the API schema. No source states that the planner keeps axle loads within the limits while building the plan.",
     "searched": "",
     "corrected": null
    },
    "weight-axle-three-plus": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The only documented axle input has exactly two positions.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: axle groups, three axles, tandem, tridem, add axle.",
     "corrected": null
    },
    "weight-axle-tare": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Axle input covers max weight and offset only; truck presets list no tare.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: tare per axle, empty axle load, vehicle weight distribution.",
     "corrected": null
    },
    "weight-axle-coupling": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: kingpin, fifth wheel, tractor, semi-trailer, drawbar.",
     "corrected": null
    },
    "weight-axle-legal": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Different regions have their own load limits and transport safety rules. The tool contains these regulations in the planning process, helping you to avoid penalties and legal issues.",
       "url": "https://www.searates.com/blog/post/how-to-optimize-your-shipping-goods-stuffing"
      }
     ],
     "recipe": "",
     "note": "No region or jurisdiction setting, rule list or parameter is documented.",
     "searched": "",
     "corrected": null
    },
    "weight-cog-longitudinal": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Central-axis distribution and a \"center of gravity calculator\" are claimed, but no user-set CoG range is documented (see weight-balance-soft).",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: centre of gravity range, CoG limit, longitudinal balance, tolerance.",
     "corrected": null
    },
    "weight-cog-lateral": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "No lateral range or left/right difference input.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: left/right balance, lateral, side-to-side, transverse CoG.",
     "corrected": null
    },
    "weight-cog-vertical": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: CoG height, vertical centre of gravity.",
     "corrected": null
    },
    "weight-balance-soft": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "restricted-scope"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "We've upgraded load distribution along the central axis of the container to the web tool for more precise stuffing calculations.",
       "url": "https://www.searates.com/blog/post/searates-updates-week-25-2026"
      },
      {
       "text": "Make it easy to handle bulk cargo via our center of gravity calculator for trucks and containers.",
       "url": "https://www.searates.com/integrations/load-calculator/"
      }
     ],
     "recipe": "",
     "note": "Web tool only; no parameters; not in the API schema.",
     "searched": "",
     "corrected": null
    },
    "weight-item-cog": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: item centre of gravity, off-centre, CoG offset.",
     "corrected": null
    },
    "sequence-load-order": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Groups are an array of JSON objects arranged in a strict order, which is taken into account when stuffing containers. The closer to the beginning of the array the group, the earlier it will be stuffed.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "The sequence in which you enter product groups is the queue for loading them.",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      }
     ],
     "recipe": "",
     "note": "Group-level only (no per-item sequence number). Direction: earlier groups are stuffed earlier; the docs do not state explicitly that \"earlier\" means further from the door.",
     "searched": "",
     "corrected": null
    },
    "sequence-priority-selection": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Group order sets stuffing order, but no source says which cargo is left out when not everything fits (auto containers are always added, and no unplaced list is documented).",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: priority, must load, drop items, what fits first, optional.",
     "corrected": null
    },
    "sequence-optional-items": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: optional, fill items, filler, if space.",
     "corrected": null
    },
    "sequence-multi-drop": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "composable",
     "availability": "generally-available",
     "flags": [
      "composable-vendor-shown"
     ],
     "notCountedBecause": [
      "concedes-gap"
     ],
     "quotes": [
      {
       "text": "Groups are an array of JSON objects arranged in a strict order, which is taken into account when stuffing containers. The closer to the beginning of the array the group, the earlier it will be stuffed.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "The container load calculator evaluates the maximum load for your cargo, taking the following factors into account: Item dimensions and weight Center of gravity Fragile items Delivery sequence.",
       "url": "https://www.searates.com/blog/post/how-to-optimize-your-shipping-goods-stuffing"
      }
     ],
     "recipe": "1. Create one group per delivery stop (groups[]; https://docs.searates.com/reference/load-calculator/get-packing-result). 2. Order the groups with the last stop first, because \"the closer to the beginning of the array the group, the earlier it will be stuffed\" (https://docs.searates.com/reference/load-calculator/get-packing-result). Step 2 is not documented as mapping to position along the unit.",
     "note": "No stop attribute. Marketing names \"Delivery sequence\"; the documented route (group order) does not say the order maps to position along the unit, which the definition note requires for a documented pass.",
     "searched": "",
     "corrected": null
    },
    "sequence-multi-drop-strict": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: no blocking, accessible, unload without moving, LIFO.",
     "corrected": null
    },
    "sequence-stop-overlap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: overlap, mixing distance, sequence overlap.",
     "corrected": null
    },
    "sequence-pickup-delivery": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: pickup, origin stop, collection.",
     "corrected": null
    },
    "sequence-multi-drop-units": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: multi-drop across containers, stops in several trucks.",
     "corrected": null
    },
    "sequence-stop-whole": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: whole stop, complete delivery, partial stop.",
     "corrected": null
    },
    "sequence-date-assignment": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: date, due date, ship date, days.",
     "corrected": null
    },
    "pallet-pallet-base": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "size REQUIRED object Area (volume) of the pallet allowed for loading",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "depth REQUIRED number Pallet thickness. Length and width are taken from the size field",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per group: deck thickness (depth) plus loadable height (size.height); the response example shows a built pallet of 2100 = 2000 load + 100 deck. Web presets: Euro, Euro 1/2, Euro plastic, US, custom.",
     "searched": "",
     "corrected": null
    },
    "pallet-single-item-pattern": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "pallets Optional object Pallet settings for a group. If the field is undefined || null, then the pallets will not be used when loading",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "For convenience and efficiency, Load Calculator contains the ability to palletize when planning a load.",
       "url": "https://www.searates.com/blog/post/pallets-usage-for-loading-containers-and-trucks-in-the-load-calculator"
      }
     ],
     "recipe": "",
     "note": "The response example shows 32 identical boxes built onto each pallet as a 2 x 4 x 4 block. One pattern per run; no alternative patterns offered.",
     "searched": "",
     "corrected": null
    },
    "pallet-pattern-control": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Only the item tilt flags and the pallet size affect the pattern.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: pattern, pinwheel, interlock, cases per pallet, layer rotation.",
     "corrected": null
    },
    "pallet-mixed-pallets": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Also, it is time to use the palletization option if you plan to freight different types of cargo at the same time.",
       "url": "https://www.searates.com/blog/post/load-calculator-tool-for-optimizing-cargo-space"
      },
      {
       "text": "items REQUIRED array (anyOf) List of metadata objects to stuff",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "A group may hold several item lines and one pallet setting, and pallet results carry a per-uid item count, which allows mixed pallets, but no source shows one.",
     "searched": "",
     "corrected": null
    },
    "pallet-overhang": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Web tool warns when cargo exceeds maximum pallet dimensions (week 9, 2024), which implies no overhang.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: overhang, pallet edge, beyond pallet.",
     "corrected": null
    },
    "pallet-deck-position": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: centre on pallet, inset, underhang.",
     "corrected": null
    },
    "pallet-interlayers": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: slip sheet, interlayer, tier sheet.",
     "corrected": null
    },
    "pallet-no-mix-groups": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [
      "implied-not-stated"
     ],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Pallet settings are defined per group, which suggests pallets are built per group, but no source says groups never share a pallet.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: separate pallets per order, no mixing groups on pallet.",
     "corrected": null
    },
    "pallet-build-then-load": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "pallets Optional object Pallet settings for a group. If the field is undefined || null, then the pallets will not be used when loading",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Knowing the size and type of packaging of your product, you specify them at the first stage in the program. Then select the pallet loading option.",
       "url": "https://www.searates.com/blog/post/pallets-usage-for-loading-containers-and-trucks-in-the-load-calculator"
      }
     ],
     "recipe": "",
     "note": "One request palletises groups and loads the pallets into containers/trucks; pallets appear in the result with their children.",
     "searched": "",
     "corrected": null
    },
    "pallet-carry-over": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Web import/export of \"Packages and Pallets\" (July 2026) is not described; it may concern item and pallet-type definitions rather than built pallets.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: save pallet, pallet as item, reuse result, export pallet.",
     "corrected": null
    },
    "pallet-three-stage": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: cartons, cartonisation, three levels, box into box.",
     "corrected": null
    },
    "pallet-split-routing": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "pallets Optional object Pallet settings for a group. If the field is undefined || null, then the pallets will not be used when loading",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Then select or deselect cargo palletising and click on \"Next\".",
       "url": "https://www.searates.com/help/tools/load-calculator/how-to-use-load-calculator"
      }
     ],
     "recipe": "",
     "note": "Per group only; an item line placed in its own group gets its own choice.",
     "searched": "",
     "corrected": null
    },
    "pallet-rules-in-vehicle": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "layers Optional integer Quantity of pallets stacked on top of each other",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "fill Optional number The minimum stuffing level of the top layer of cargo on a pallet for placing the pallet on top. Indicated in fractions of one, i.e. 80% is 0.8, 90% is 0.9, etc. >= 0 <= 1",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Per group pallet: pallet stack count and minimum top-layer fill. No orientation rule for built pallets. Example also has an undocumented pallet stacking.maxHeight.",
     "searched": "",
     "corrected": null
    },
    "pallet-height-to-vehicle": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The user-set maximum pallet load height decides whether tiers are possible; pallet height is not adapted by the planner.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: pallet height to container, top tier shorter, dynamic pallet height.",
     "corrected": null
    },
    "objective-max-fill": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Load Calculator is an application intended to compute and to place some goods into container and make their position to place some goods into a transport unit and make their position optimal.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "Save space The cargo lashing calculator allows you to fully optimize container space, saving your costs on every shipment",
       "url": "https://www.searates.com/integrations/api-load-calculator/"
      }
     ],
     "recipe": "",
     "note": "\"Optimal\" is undefined; no documented objective, and no source says excess cargo is left unloaded in fixed units (auto containers absorb it).",
     "searched": "",
     "corrected": null
    },
    "objective-weight-objective": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: maximise weight, weight utilisation, objective, strategy.",
     "corrected": null
    },
    "objective-balance-units": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: balance containers, even distribution across units, spread load.",
     "corrected": null
    },
    "objective-quantity-fit": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "our team has developed a revolutionary technology to easily calculate how many items with particular dimensions you can fit in a container.",
       "url": "https://www.searates.com/blog/post/discover-load-calculator-capabilities-for-your-logistics"
      },
      {
       "text": "Demonstrate how to calculate how many items fit in each container/truck, compare results, and choose the most efficient option.",
       "url": "https://www.searates.com/blog/post/discover-load-calculator-capabilities-for-your-logistics"
      }
     ],
     "recipe": "",
     "note": "qty is a required input (1 to 1,000,000); no cube-out mode is documented in the API.",
     "searched": "",
     "corrected": null
    },
    "objective-time-quality": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "lengthAccuracy rounds dimensions; it is not documented as a time/quality trade-off.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: time limit, quality, fast mode, iterations, seed.",
     "corrected": null
    },
    "objective-alternatives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "One result per request; the blog's \"compare results\" refers to running separate calculations.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: alternatives, several solutions, compare plans, options.",
     "corrected": null
    },
    "expressiveness-attribute-condition": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: rule, condition, if weight over, attribute filter, rule engine.",
     "corrected": null
    },
    "expressiveness-custom-attributes": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "attr on items and containers is documented only as copied into the results (display/passthrough), which fails per definition note.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: custom field, attribute, property, attr, label.",
     "corrected": null
    },
    "expressiveness-class-stack-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: class, stack code, matrix, stacking group.",
     "corrected": null
    },
    "expressiveness-class-unit-matrix": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Group-to-container allow-lists exist (fixed containers only), but no class-to-class compatibility matrix.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: compatibility matrix, class, combination, incompatible.",
     "corrected": null
    },
    "expressiveness-any-sum-cap": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: sum cap, custom limit, per container total.",
     "corrected": null
    },
    "expressiveness-rules-per-equipment": {
     "passes": false,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [
      "undescribed-field"
     ],
     "quotes": [
      {
       "text": "loadType Optional string Allowed values: auto wallLength wallWidth floor Default: auto",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      },
      {
       "text": "groups Optional array List of groups allowed for loading into this container. The option is not taken into account for autocontainers.",
       "url": "https://docs.searates.com/reference/load-calculator/get-packing-result"
      }
     ],
     "recipe": "",
     "note": "Each container entry, fixed or auto, carries its own loadType; group restriction applies to fixed containers only.",
     "searched": "",
     "corrected": null
    },
    "expressiveness-combine-stacking": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Adjust stacking levels for selected cargo by mass, height, and layer count.",
       "url": "https://www.searates.com/integrations/load-calculator/"
      },
      {
       "text": "stuffing settings — layers count, mass, and height",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      }
     ],
     "recipe": "",
     "note": "No footprint, weight-order or class criteria exist, so the combinable set is limited to these three per-item limits.",
     "searched": "",
     "corrected": {
      "reason": "Fields in one schema object are not documentation that they apply together; the release note says 'or'."
     }
    },
    "expressiveness-combine-objectives": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: objectives, weights, priority, tolerance.",
     "corrected": null
    },
    "expressiveness-custom-logic": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Customised versions are offered on request (\"get a customized solution\"), which is a vendor service, not a user mechanism.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: script, plug-in, callback, custom rule, extension.",
     "corrected": null
    },
    "expressiveness-hard-or-soft": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: soft constraint, preference, hard, strict.",
     "corrected": null
    },
    "output-positions": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "spaces array Information about the place of each of the items ... Pallet or Cargo item",
       "url": "https://docs.searates.com/spec/load-calculator-v2-openapi.json"
      },
      {
       "text": "complex object Number of adjoining units, by axes. For a single object, this indicator may not be available.",
       "url": "https://docs.searates.com/spec/load-calculator-v2-openapi.json"
      }
     ],
     "recipe": "",
     "note": "Per unit or block: location {x,y,z}, placed size {x,y,z} (orientation implied by placed dimensions, no code) and complex counts per axis; pallets carry children. Manual check #2 confirms the complex-objects page: a block of identical units is one object with counts per axis. Origin and axis directions are not documented.",
     "searched": "",
     "corrected": null
    },
    "output-steps": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Download a step-by-step stuffing plan and export results to PDF.",
       "url": "https://www.searates.com/blog/post/how-to-use-the-load-calculator-smart-stuffing-of-containers-trucks"
      },
      {
       "text": "We have implemented loading animation. You can adjust loading steps visualizing by the ‘Play’ and ‘Pause’ buttons.",
       "url": "https://www.searates.com/blog/post/searates-updates-week-35-2024"
      }
     ],
     "recipe": "",
     "note": "Web tool only; the API returns one image per container.",
     "searched": "",
     "corrected": null
    },
    "output-contents-utilisation": {
     "passes": true,
     "evidence": "documented",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "general object General statistics on the placed cargo ... itemQty ... cargoVolume ... cargoWeight ... volumeRatio ... weightRatio ... items Quantities each of items",
       "url": "https://docs.searates.com/spec/load-calculator-v2-openapi.json"
      },
      {
       "text": "Review the results of calculation with details of the capacity and volume utilization, as well as the number of required transport units.",
       "url": "https://www.searates.com/blog/post/pallets-usage-for-loading-containers-and-trucks-in-the-load-calculator"
      }
     ],
     "recipe": "",
     "note": "Per container: item counts per uid, volume, weight, volume and weight ratios. Per pallet: itemQty, volume, weight, counts per uid (ratios shown only in the example, not the pallet schema).",
     "searched": "",
     "corrected": null
    },
    "output-loading-metres": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: loading metres, LDM, length used, free length.",
     "corrected": null
    },
    "output-unplaced": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "The response schema (result, cargoAttributes, images, version) has no not-loaded list. An undocumented request key errorProducts appears only in the example. The Errors page concerns input settings (manual check #2).",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: not loaded, unplaced, leftover, remaining, errorProducts.",
     "corrected": null
    },
    "output-unplaced-reasons": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Errors are typed warning/ignore/break and concern input settings, not reasons per unplaced item (manual check #2). Week 12 2024 added an \"Allowed image size exceeded\" error.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: reason, why not loaded, too large, overweight.",
     "corrected": null
    },
    "output-cog": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Make it easy to handle bulk cargo via our center of gravity calculator for trucks and containers.",
       "url": "https://www.searates.com/integrations/load-calculator/"
      }
     ],
     "recipe": "",
     "note": "No CoG field in the API response; no description of a CoG figure in the web tool.",
     "searched": "",
     "corrected": null
    },
    "output-axle-loads": {
     "passes": false,
     "evidence": "claimed",
     "mechanism": "native",
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [
      {
       "text": "Save the calculation results to PDF and apply this comprehensive step-by-step loading plan from the axle weight calculator to streamline your warehouse operations",
       "url": "https://www.searates.com/integrations/load-calculator/"
      },
      {
       "text": "distribute the loading settings with help of built-in axle weight calculator",
       "url": "https://www.searates.com/integrations/load-calculator/"
      }
     ],
     "recipe": "",
     "note": "No axle fields in the API response; the web axle input (two axles) is documented, but not an axle-load readout.",
     "searched": "",
     "corrected": null
    },
    "output-length-distribution": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: weight distribution chart, per section weight, along length.",
     "corrected": null
    },
    "output-gross-mass": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Preset containers list a tare weight, but the output reports cargo weight only.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: gross weight, VGM, tare, total weight.",
     "corrected": null
    },
    "output-per-stop": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: per stop, per drop, per group report, unloading view.",
     "corrected": null
    },
    "output-rule-check": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "Input warnings exist (oversize for pallet, overweight); no validation of an edited or imported plan is documented.",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: validate, check plan, violations, manual edit, warnings.",
     "corrected": null
    },
    "output-voids": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: void, empty space, dunnage, airbag.",
     "corrected": null
    },
    "output-cost": {
     "passes": false,
     "evidence": "not-documented",
     "mechanism": null,
     "availability": "generally-available",
     "flags": [],
     "notCountedBecause": [],
     "quotes": [],
     "recipe": "",
     "note": "",
     "searched": "OpenAPI spec v02.1.1 (every field description, enum, required list and the request/response examples; https://docs.searates.com/spec/load-calculator-v2-openapi.json); docs.searates.com load-calculator reference (get-packing-result/introduction; complex-objects and errors pages via manual check #2); help centre category and all 5 FAQ answers; vendor blog posts: how-to-use (Apr 2025), discover capabilities (May 2024), optimizing cargo space (May 2023), optimize stuffing (Jun 2024), pallets usage (Jun 2019), video guide text (Sep 2025), how-to-effectively-use-pallets, mastering pallet shipping; feature pages integrations/load-calculator, integrations/api-load-calculator, load-calculator landing, reference/stuffing; all 133 reachable SeaRates Updates weekly posts 2024 wk1 to 2026 wk30 (Load Calculator items extracted); English sitemaps (index, blog, reference) searched for load/stuff/pallet/axle URLs. Row-specific terms searched in all of the above: cost, price, freight rate in result.",
     "corrected": null
    }
   }
  }
 ]
}