BuyBloc makes buyers set the terms. Processors hold coercive leverage over fragmented buyers — so reverse it: a demand-side federation aggregates member volume into one bloc, dictates the terms a refiner must meet to win any volume, guarantees allocation to dues-paying members, and routes around coercion with magnet-free redesign capacity. For a batch of members and refiner offers it answers:
Which refiners win volume on the bloc's terms, who gets guaranteed allocation, how much demand is covered by redesign instead, and does the federation hold its leverage?
It aggregates demand, screens refiners against the bloc's reservation terms, allocates
guaranteed supply cheapest-first, covers shortfalls with redesign, and emits a posture
verdict: terms_set, held_by_substitution, or coerced.
A three-step transform on the L9_Counterfactual that processors hold coercive leverage:
L1direction reversal — reverse who sets the terms: a refiner wins volume only if it is governance-compliant and at or below the bloc's price ceiling. A coercive or price-gouging refiner wins zero volume.L9scale shift — scale from a single OEM to a thousand-firm bloc. Demand is pooled and dues-paying members get guaranteed allocation; non-dues members get only residual capacity.L17constraint substitution — swap the binding constraint from processing capacity to design-substitution capacity: members cover shortfalls with magnet-free redesign, so the bloc holds leverage even when no acceptable refiner can supply.
This is the EVX consensus + innovation winner (12 of 12 personas).
A clearing exchange matches supply offers ↔ demand bids pairwise. BuyBloc is one-sided collective leverage (monopsony bargaining):
- Buyers dictate terms — only refiners meeting the bloc's reservation terms are eligible; the rest win nothing.
- Dues gate the guarantee — pooled demand is allocated to dues-payers first, the cartel free-rider defense.
- Redesign is the escape —
L17substitution covers shortfall, so demand met "on bloc terms" includes magnet-free redesign, not just refiner supply.
The regulated audit surface (R2) is first-class: every allocation, substitution, and term decision emits an evidence line with the breakdown and reasons.
python -m buybloc sample --output examples/batch_sample.json
python -m buybloc run --input examples/batch_sample.json
python -m buybloc report --input examples/batch_sample.json --output examples/buybloc_report.md{
"policy": {
"price_ceiling": 100.0, "require_terms_compliance": true,
"min_set_fill_rate": 0.9, "guarantee_requires_dues": true
},
"members": [
{ "member_id": "m-mid", "demand_units": 3000.0, "dues_paid": true,
"redesign_capacity": 0.5, "reservation_price": 90.0 }
],
"refiners": [
{ "refiner_id": "r-compliant", "price_per_unit": 80.0, "available_units": 6000.0,
"terms_compliant": true }
]
}acceptable refiners = { r : (not require_compliance OR r.terms_compliant)
AND r.price_per_unit <= price_ceiling } # L1: buyers set terms
sorted by (price, refiner_id)
order members: dues-payers first, then by -demand # L9: guaranteed pool
for each member (cheapest acceptable refiner first, <= reservation):
allocated = greedy fill up to demand, deducting finite capacity
shortfall = demand - allocated
substituted = min(shortfall, redesign_capacity * demand) # L17: redesign escape
unmet = shortfall - substituted
status:
allocated >= demand -> secured
unmet <= 0 -> substituted
otherwise -> shorted
federation:
leverage_index = (Σ allocated + Σ substituted) / Σ demand
verdict:
leverage >= min_set_fill_rate AND allocated > 0 -> terms_set
leverage >= min_set_fill_rate AND allocated == 0 -> held_by_substitution
otherwise -> coerced (exit 1)
An unknown field, a negative magnitude, or a fraction outside [0, 1] is a blocking issue
with a nonzero exit, never a stack trace.
BuyBloc produces an allocation plan and a leverage posture under a declared policy, not a binding supply contract, a price-fixing agreement, an antitrust clearance, or a settlement of funds. It aggregates, screens, allocates, and flags; it does not reserve supply or move money.
BuyBloc is the concrete beachhead of IDEA-012 (Demand-Side Magnet Cartel: Buyers Set the
Terms — EVX-20260607-007 winner, 12 votes), reached via the
L1_DirectionReversal → L9_ScaleShift → L17_ConstraintSubstitute lens stack
(CIX-20260607-001 ← IDX-20260607-001 ← TCX-20260606-001). It is a sibling of
WasteStack,
FailureFutures,
PowerRoam,
CoverGate,
ColdMkh,
GenCert,
RoboTrace,
InferMesh,
CertMesh,
SettleMesh,
SpendMesh,
ReleaseMesh,
ClimateMesh,
SovMesh,
FlowMesh, and
SignalMesh.
MIT — see LICENSE.