benikigai/ec-1Public
EC-1 Wireless Controller
SHA-256 91246d2b6498ada9eb529b954048270a72d352945174ffbb59deb363ef5b2da1
# SYNTHETIC. Same study as in opd.yaml.
objectives:
- metric: yield.rty
direction: max
- metric: cost.cost_per_good_unit
direction: min
- metric: throughput.cycle_time
direction: min
constraints:
- takt 36 s (2,000 units a day over two 10-hour shifts)
- headcount at most 12
- no single new tool over 25,000 USD
baseline:
scores:
yield:
fpy_by_station:
sta:a2:
value: 0.992
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
sta:a3:
value: 0.996
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
sta:a4:
value: 0.99
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
sta:t1:
value: 0.985
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
sta:t2:
value: 0.978
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
sta:t3:
value: 0.983
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
sta:t4:
value: 0.995
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
rty:
value: 0.922
origin: simulated
engine: monte-carlo
runs: 20000
interval:
- 0.905
- 0.935
confidence: low
top_failure_modes:
- failure_mode: ext:controller:stick-drift
share:
value: 0.24
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
issue: iss:stick-drift-flux
pfmea: fm:stick-flux
- failure_mode: connector-unseat
share:
value: 0.18
origin: simulated
engine: mujoco
runs: 2000
confidence: low
issue: iss:battery-unseat
pfmea: fm:battery-unseat
- failure_mode: gap-flush
share:
value: 0.16
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
issue: iss:shoulder-gap
pfmea: fm:gap-high
throughput:
cycle_time:
value: 30
unit: s
origin: estimated
engine: analytic
confidence: low
note: slowest station from time studies; needs the discrete-event simulator
takt:
value: 36
unit: s
origin: estimated
engine: analytic
confidence: high
bottleneck_station: sta:t1
headcount: 11
cost:
cost_per_good_unit:
value: 1.92
unit: USD
origin: estimated
engine: analytic
confidence: low
note: conversion cost per good unit, including scrap and rework
experience:
weight:
value: 69.4
unit: g
origin: measured
confidence: medium
evidence:
- src:caliper-run-1
gap_flush_consistency:
value: 0.0493
unit: mm, 1 sigma
origin: measured
confidence: medium
evidence:
- src:caliper-run-1
predicted_field_return_rate:
value: 0.031
origin: estimated
confidence: low
review_sentiment:
value: 0.42
unit: -1 to 1
origin: measured
engine: review-analysis
confidence: low
evidence:
- src:reviews
pareto:
on_frontier: true
candidates:
- id: var:split-t1
name: Second RF shield box at T1
kind: equipment
base: baseline
description: Two shield boxes so flashing and RF test run in parallel
changes:
- action: add
target:
- sta:t1
description: Second shield box and BLE tester
generated_by:
method: agent
engine: analytic
created: '2026-10-30'
scores:
yield:
rty:
value: 0.922
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
throughput:
cycle_time:
value: 25
unit: s
origin: estimated
engine: analytic
confidence: low
bottleneck_station: sta:t2
headcount: 11
cost:
cost_per_good_unit:
value: 1.98
unit: USD
origin: estimated
engine: analytic
confidence: low
capex:
value: 9800
unit: USD
origin: estimated
engine: analytic
confidence: medium
pareto:
on_frontier: true
- id: var:stick-connector
name: FPC connector for the stick instead of hand soldering
kind: design-change
base: baseline
description: Stick module ships with a flex tail; a ZIF connector replaces six hand-soldered pins
addresses:
- iss:stick-drift-flux
- fm:stick-flux
changes:
- action: replace
target:
- op:stick-solder
description: Solder step becomes a connector mate
- action: modify
target:
- part:stick-module
description: Module with flex tail, +0.12 USD
generated_by:
method: agent
engine: monte-carlo
created: '2026-10-30'
scores:
yield:
rty:
value: 0.936
origin: simulated
engine: monte-carlo
runs: 20000
interval:
- 0.92
- 0.95
confidence: low
throughput:
cycle_time:
value: 28
unit: s
origin: estimated
engine: analytic
confidence: low
headcount: 11
cost:
cost_per_good_unit:
value: 1.95
unit: USD
origin: estimated
engine: analytic
confidence: low
experience:
predicted_field_return_rate:
value: 0.019
origin: estimated
confidence: low
pareto:
on_frontier: true
- id: var:preload-close
name: Preload fixture and tug test for the battery connector
kind: fixture-sequence
base: baseline
description: Closing fixture holds the connector down; a 2 N tug test after mating
addresses:
- iss:battery-unseat
- fm:battery-unseat
changes:
- action: modify
target:
- op:close
description: Preload pad in the closing fixture
- action: modify
target:
- op:battery-mate
description: Add tug test
generated_by:
method: agent
engine: mujoco
created: '2026-10-30'
scores:
yield:
rty:
value: 0.932
origin: simulated
engine: monte-carlo
runs: 20000
interval:
- 0.915
- 0.945
confidence: low
throughput:
cycle_time:
value: 31
unit: s
origin: estimated
engine: analytic
confidence: low
headcount: 11
cost:
cost_per_good_unit:
value: 1.96
unit: USD
origin: estimated
engine: analytic
confidence: low
pareto:
on_frontier: false
dominated_by:
- var:stick-connector
- id: var:gap-tight
name: Tighten the shoulder gap to 0.10 mm
kind: design-change
base: baseline
description: Industrial design asks for a tighter, more premium seam
design_intent:
targets:
- characteristic: gap
where:
- part:top-shell
target:
value: 0.1
unit: mm
source: inferred
confidence: low
upper:
value: 0.15
unit: mm
source: inferred
confidence: low
priority: should
owner: industrial-design
changes:
- action: modify
target:
- part:top-shell
description: Tighter tool tolerance and a cooling change on the shoulder wall
generated_by:
method: agent
engine: monte-carlo
created: '2026-10-30'
scores:
yield:
rty:
value: 0.874
origin: simulated
engine: monte-carlo
runs: 20000
interval:
- 0.85
- 0.895
confidence: low
throughput:
cycle_time:
value: 30
unit: s
origin: estimated
engine: analytic
confidence: low
cost:
cost_per_good_unit:
value: 2.6
unit: USD
origin: estimated
engine: analytic
confidence: low
experience:
gap_flush_consistency:
value: 0.03
unit: mm, 1 sigma
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
cosmetic_defect_rate:
value: 0.061
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
pareto:
on_frontier: false
dominated_by:
- baseline
- var:split-t1
- var:stick-connector
- id: var:connector-and-preload
name: Stick connector plus battery preload
kind: mixed
base: baseline
description: Both fixes together
addresses:
- iss:stick-drift-flux
- iss:battery-unseat
changes:
- action: replace
target:
- op:stick-solder
description: As var:stick-connector
- action: modify
target:
- op:close
- op:battery-mate
description: As var:preload-close
generated_by:
method: agent
engine: monte-carlo
created: '2026-10-31'
scores:
yield:
rty:
value: 0.947
origin: simulated
engine: monte-carlo
runs: 20000
interval:
- 0.93
- 0.96
confidence: low
throughput:
cycle_time:
value: 31
unit: s
origin: estimated
engine: analytic
confidence: low
headcount: 11
cost:
cost_per_good_unit:
value: 1.99
unit: USD
origin: estimated
engine: analytic
confidence: low
ramp:
changes_needed:
value: 3
origin: estimated
confidence: medium
pareto:
on_frontier: true
recommended:
variant: var:connector-and-preload
rationale: Highest simulated yield, and it closes the two largest failure modes, which together make up 42% of fallout
tradeoffs: 0.07 USD more per good unit and 1 s slower than baseline, still inside the 36 s takt; T1 stays the bottleneck
tradeoffs:
- id: tr:gap-tighten
characteristic: gap
from:
value: 0.2
unit: mm
source: inferred
confidence: low
to:
value: 0.1
unit: mm
source: inferred
confidence: low
variant: var:gap-tight
against: baseline
yield_delta:
value: -0.048
unit: RTY
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
cost_per_unit_delta:
value: 0.68
unit: USD
origin: estimated
engine: analytic
confidence: low
other_deltas:
experience.cosmetic_defect_rate:
value: 0.044
origin: simulated
engine: monte-carlo
runs: 20000
confidence: low
experience_effect: A tighter seam that reads as more premium, for about 5 points of yield and 0.68 USD a unit
decision:
status: rejected
by: product (fictional)
'on': '2026-10-31'
note: Not worth the yield at this price point
engine_notes: Yield and failure shares come from Monte Carlo over the measured spreads and MuJoCo drop runs. Cycle time and
line balance are estimates until the discrete-event simulator exists.