{
  "opd": "benikigai/plus-one",
  "commit": 6,
  "opd_version": "0.5.0",
  "layer": "variants",
  "question": "What change would be better, and what does it cost?",
  "data": {
    "design_intent": {
      "targets": [
        {
          "characteristic": "size",
          "where": [
            "part:top-shell"
          ],
          "target": {
            "value": 55.4,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "upper": {
            "value": 55.4,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "must",
          "owner": "industrial-design",
          "rationale": "Approved exterior direction (2026-11-01): the diameter of a common magnetic phone charger, so the puck sits flush on one. Replaces the 57 mm concept. The CAD, the magnet ring, the lugs and plus-one-base@1 in this file are still sized for 57 mm and need rework"
        },
        {
          "characteristic": "thickness",
          "where": [
            "part:top-shell",
            "part:base"
          ],
          "target": {
            "value": 12,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "upper": {
            "value": 12,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "must",
          "owner": "industrial-design",
          "rationale": "Approved exterior direction (2026-11-01): 12.0 mm at most, including the button dome and the base. Replaces 9.5 mm. A 12 mm puck still needs a thinner cell than the stock one; the CAD in this file is still 9.5 mm"
        },
        {
          "characteristic": "weight",
          "where": [
            "part:base"
          ],
          "target": {
            "value": 28,
            "unit": "g",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "upper": {
            "value": 32,
            "unit": "g",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "should",
          "owner": "product",
          "rationale": "Light enough to hang on a phone or a bag"
        },
        {
          "characteristic": "button-travel",
          "where": [
            "part:plus-button"
          ],
          "target": {
            "value": 0.3,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "lower": {
            "value": 0.2,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "upper": {
            "value": 0.4,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "must",
          "owner": "product",
          "rationale": "Short, firm click you can find without looking"
        },
        {
          "characteristic": "other",
          "where": [
            "part:magnet-ring"
          ],
          "target": {
            "value": 8,
            "unit": "N",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "lower": {
            "value": 6,
            "unit": "N",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "must",
          "owner": "product",
          "rationale": "Magnetic hold on a phone mount. It stays put when a phone in a car mount hits a bump"
        },
        {
          "characteristic": "other",
          "where": [
            "part:base"
          ],
          "target": {
            "value": 30,
            "unit": "N",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "lower": {
            "value": 30,
            "unit": "N",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "must",
          "owner": "mechanical",
          "rationale": "Lug pull-out. The twist-lock lugs carry the load for clips, lanyards and bikes; the magnets only align"
        },
        {
          "characteristic": "other",
          "where": [
            "part:pogo-pad"
          ],
          "target": {
            "value": 300,
            "unit": "mA",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "upper": {
            "value": 300,
            "unit": "mA",
            "source": "inferred",
            "confidence": "low",
            "evidence": [
              "src:design-brief"
            ],
            "note": "design target"
          },
          "priority": "must",
          "owner": "electrical",
          "rationale": "Pogo pad current limit. A shorted module trips safely"
        }
      ]
    },
    "variants": {
      "objectives": [
        {
          "metric": "throughput.cycle_time",
          "direction": "min"
        },
        {
          "metric": "cost.cost_per_good_unit",
          "direction": "min"
        }
      ],
      "constraints": [
        "takt 60 s (design target)",
        "headcount at most 9",
        "no new station type beyond the brief"
      ],
      "baseline": {
        "scores": {
          "throughput": {
            "cycle_time": {
              "value": 56,
              "unit": "s",
              "origin": "estimated",
              "engine": "expert-estimate",
              "confidence": "low",
              "note": "slowest station from target cycle times; nothing built"
            },
            "takt": {
              "value": 60,
              "unit": "s",
              "origin": "estimated",
              "engine": "expert-estimate",
              "confidence": "medium",
              "note": "design target, about 480 units an 8-hour shift"
            },
            "bottleneck_station": "sta:s8",
            "headcount": 8
          }
        }
      },
      "candidates": [
        {
          "id": "var:bench-cell",
          "name": "Bench cell, for the first 100 builder units",
          "kind": "staffing",
          "base": "baseline",
          "description": "Decision 25's layout for the Q1 2027 bench builds. Three benches in a small U, no conveyor, at most three units in the cell. One technician carries each unit through: bench A does S1 to S4, bench B does S5 and S6, bench C does S7 and S8. 100 units in five build days. Layout: line/layouts/bench-cell.json.",
          "changes": [
            {
              "action": "merge",
              "target": [
                "sta:s1",
                "sta:s2",
                "sta:s3",
                "sta:s4"
              ],
              "description": "bench A"
            },
            {
              "action": "merge",
              "target": [
                "sta:s5",
                "sta:s6"
              ],
              "description": "bench B"
            },
            {
              "action": "merge",
              "target": [
                "sta:s7",
                "sta:s8"
              ],
              "description": "bench C"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "discrete-event",
            "run": "nplus1labs/factory 9bc6753 engine/examples/plus-one-demand",
            "created": "2026-11-02"
          },
          "scores": {
            "throughput": {
              "takt": {
                "value": 1215,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "medium",
                "note": "set by the assumed volume: one 8-hour shift less breaks, 21 working days a month"
              },
              "uph": {
                "value": 16.9,
                "unit": "good units/h",
                "origin": "simulated",
                "engine": "discrete-event",
                "confidence": "low",
                "note": "capacity, simulated from assumed values; uncalibrated; no unit built; the technician is the constraint, not a bench; about 17% busy at this volume",
                "runs": 2000,
                "evidence": [
                  "src:factory-engine",
                  "src:layout-study"
                ]
              },
              "headcount": 1
            }
          }
        },
        {
          "id": "var:u-cell",
          "name": "U cell, for about 2,000 to 4,500 a month",
          "kind": "staffing",
          "base": "baseline",
          "description": "Decision 25's bridge between the bench builds and volume. The eight stations as benches in a U with a 2 s hand pass. Two operators: one runs S1 to S6, the other runs S7 and S8. Layout: line/layouts/u-cell.json.",
          "changes": [
            {
              "action": "modify",
              "target": [
                "sta:s1",
                "sta:s2",
                "sta:s3",
                "sta:s4",
                "sta:s5",
                "sta:s6"
              ],
              "description": "one operator walks S1 to S6"
            },
            {
              "action": "modify",
              "target": [
                "sta:s7",
                "sta:s8"
              ],
              "description": "a second operator runs S7 and S8"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "discrete-event",
            "run": "nplus1labs/factory 9bc6753 engine/examples/plus-one-demand",
            "created": "2026-11-02"
          },
          "scores": {
            "throughput": {
              "takt": {
                "value": 255.15,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "medium",
                "note": "set by the assumed volume: one 8-hour shift less breaks, 21 working days a month"
              },
              "uph": {
                "value": 31.6,
                "unit": "good units/h",
                "origin": "simulated",
                "engine": "discrete-event",
                "confidence": "low",
                "note": "capacity, simulated from assumed values; uncalibrated; no unit built; the operator on S1 to S6 is the constraint",
                "runs": 2000,
                "evidence": [
                  "src:factory-engine",
                  "src:layout-study"
                ]
              },
              "headcount": 2
            }
          }
        },
        {
          "id": "var:madecell-balanced",
          "name": "Balanced MadeCell line, for about 10,000 a month",
          "kind": "mixed",
          "base": "baseline",
          "description": "Decision 24's MadeCell base (a 40 x 8 ft frame, four bays, stations facing out from a central conveyor, operators on the floor outside), balanced for decision 25's volume case. 16 pallets and an overhead restocking rail. S1 and S2 share a workstation, as do S3 and S4; S5 and S6 and S7 each run twice; S8 becomes a cell of three test fixtures. Seven people. Layout: line/layouts/madecell-balanced.json.",
          "changes": [
            {
              "action": "merge",
              "target": [
                "sta:s1",
                "sta:s2"
              ],
              "description": "workstation W1"
            },
            {
              "action": "merge",
              "target": [
                "sta:s3",
                "sta:s4"
              ],
              "description": "workstation W2"
            },
            {
              "action": "split",
              "target": [
                "sta:s5",
                "sta:s6"
              ],
              "description": "W3, built twice"
            },
            {
              "action": "split",
              "target": [
                "sta:s7"
              ],
              "description": "W4, built twice"
            },
            {
              "action": "split",
              "target": [
                "sta:s8"
              ],
              "description": "a test cell of three fixtures"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "discrete-event",
            "run": "nplus1labs/factory 9bc6753 engine/examples/plus-one-demand",
            "created": "2026-11-02"
          },
          "scores": {
            "throughput": {
              "takt": {
                "value": 51.03,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "medium",
                "note": "set by the assumed volume: one 8-hour shift less breaks, 21 working days a month"
              },
              "uph": {
                "value": 88.8,
                "unit": "good units/h",
                "origin": "simulated",
                "engine": "discrete-event",
                "confidence": "low",
                "note": "capacity, simulated from assumed values; uncalibrated; no unit built; W1 (S1 and S2) is the bottleneck, about 79% busy",
                "runs": 2000,
                "evidence": [
                  "src:factory-engine",
                  "src:layout-study"
                ]
              },
              "headcount": 7,
              "bottleneck_station": "sta:s1"
            }
          }
        },
        {
          "id": "var:split-s8",
          "name": "Split S8: test in one station, mark and pack in another",
          "kind": "station-layout",
          "base": "baseline",
          "description": "A ninth bench takes the laser mark and pack off S8. S7 and S8 then both sit at 40 s.",
          "changes": [
            {
              "action": "add",
              "target": [
                "sta:s8"
              ],
              "description": "mark and pack move to a new bench after S8"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "expert-estimate",
            "created": "2026-11-01"
          },
          "scores": {
            "throughput": {
              "cycle_time": {
                "value": 40,
                "unit": "s",
                "origin": "estimated",
                "engine": "expert-estimate",
                "confidence": "low"
              },
              "bottleneck_station": "sta:s7",
              "headcount": 9
            }
          }
        },
        {
          "id": "var:plus-one-plus",
          "name": "Plus One+ (coming next)",
          "kind": "design-change",
          "base": "baseline",
          "description": "Coming next. The same board with more parts fitted: light sensor, NFC tag, debug jumper; a clear shell option. No new station: a board-variant BOM at S2 and extra checks at S8, which push S8 past takt unless it is split.",
          "changes": [
            {
              "action": "add",
              "target": [
                "part:light-sensor",
                "part:nfc-tag",
                "part:debug-jumper"
              ],
              "description": "fit the empty footprints"
            },
            {
              "action": "modify",
              "target": [
                "sta:s8"
              ],
              "description": "add NFC and light-sensor checks"
            }
          ],
          "generated_by": {
            "method": "manual",
            "engine": "expert-estimate",
            "created": "2026-11-01"
          },
          "scores": {
            "throughput": {
              "cycle_time": {
                "value": 62,
                "unit": "s",
                "origin": "estimated",
                "engine": "expert-estimate",
                "confidence": "low",
                "note": "S8 gains about 6 s of checks"
              },
              "bottleneck_station": "sta:s8",
              "headcount": 8
            }
          }
        },
        {
          "id": "var:plus-one-plus-plus",
          "name": "Plus One++ (coming next)",
          "kind": "routing",
          "base": "var:plus-one-plus",
          "description": "Coming next. Plus One+ boxed with a set of backs. Adds S9 after S8, kitting the backs into the box.",
          "changes": [
            {
              "action": "add",
              "target": [
                "sta:s8"
              ],
              "description": "a new S9 after S8 kits the backs into a bigger box"
            }
          ],
          "generated_by": {
            "method": "manual",
            "engine": "expert-estimate",
            "created": "2026-11-01"
          },
          "scores": {
            "throughput": {
              "cycle_time": {
                "value": 62,
                "unit": "s",
                "origin": "estimated",
                "engine": "expert-estimate",
                "confidence": "low",
                "note": "S9 kitting runs in parallel; S8 stays the bottleneck"
              },
              "bottleneck_station": "sta:s8",
              "headcount": 9
            }
          }
        }
      ],
      "recommended": {
        "variant": "var:bench-cell",
        "rationale": "Decision 25: the layout follows volume. The first 100 builder units run on a one-technician bench cell; the U cell bridges to about 4,500 a month and the balanced MadeCell line takes about 10,000. On any fixed eight-station line, split S8 first: it sits at 56 s against a 60 s takt and the Plus One+ checks would push it to 62 s",
        "tradeoffs": "a bench cell is cheap to set up but tops out at about 2,400 a month on one shift"
      },
      "engine_notes": "The layout variants come from the N+1 factory engine (nplus1labs/factory 9bc6753), a discrete-event simulation that runs this OPD's routing with a ±30% spread on every target time. They are simulated from assumed values; uncalibrated; no unit built. The audio loopback, the RF check and wireless charging are outside the simulation. The other scores are expert estimates."
    }
  }
}