--- name: choosing-by-advantages description: Facilitate a Choosing By Advantages (CBA) decision with a project team - alternatives, factors, must and want criteria, attributes as facts, advantages, importance anchored on the paramount advantage, then cost weighed separately - and leave a decision record that explains why. Use for design or construction method decisions (structural system, facade, MEP option, site logistics, supplier), when the user mentions CBA, "elección por ventajas", "decisión por ventajas", Target Value Design trade-offs, or wants to replace a weighted scoring matrix. --- # Choosing By Advantages CBA (developed by Jim Suhr and used widely in lean project delivery) decides on the importance of the differences between alternatives, not on weighted factor scores. Cost is not a factor: it is weighed after the advantages. ## Inputs - The decision to make, the alternatives (2-5), who decides, and the data available on each alternative. - The team's "musts" (non-negotiable requirements) and the factors that matter to the stakeholders. ## Procedure 1. Frame the decision with the user in one sentence and list the alternatives. Screen the musts first: alternatives that fail one are out (record why). 2. Choose factors that differentiate the alternatives (schedule, safety, quality, operability, risk, carbon...). Cost is excluded here. 3. For each factor, write a criterion ("less is better", "fewer hours at height") and the attribute of each alternative as a fact with units and source. Missing data stays "to find", it is not estimated. 4. For each factor, mark the least-preferred attribute; every other attribute's advantage is the difference from it, in words ("4 days faster per floor"). 5. The team picks the paramount advantage (the most important one across all factors) = 100, then scores every other advantage against it and against each other. The agent proposes nothing here, it only asks and records. 6. Create the table: `python scripts/cba.py template --alternatives "A,B,C" --factors "F1,F2,F3"`, fill it, then `python scripts/cba.py score cba.csv --costs costs.csv`. 7. Fix what the checks flag (no zero in a factor, no 100 anchor, empty attributes) with the team. 8. With costs: ask "is the extra importance of B worth the extra money over A?" Record the answer and the reason. ## Output - `cba.md` (table, totals, cost comparison, checks), `cba.png`, and a decision record: decision, date, participants, alternatives, reason, data to verify. ## Never - Never assign importance for the team; ask and record. - Never turn CBA into weights x scores, and never include cost as a factor. - Never present a missing attribute as a fact.