Skip to content

Repository files navigation

BuyBloc infographic

BuyBloc

CI License: MIT

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.

The Insight

A three-step transform on the L9_Counterfactual that processors hold coercive leverage:

  • L1 direction 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.
  • L9 scale 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.
  • L17 constraint 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).

What Makes It Different (vs a two-sided exchange)

A clearing exchange matches supply offers ↔ demand bids pairwise. BuyBloc is one-sided collective leverage (monopsony bargaining):

  1. Buyers dictate terms — only refiners meeting the bloc's reservation terms are eligible; the rest win nothing.
  2. Dues gate the guarantee — pooled demand is allocated to dues-payers first, the cartel free-rider defense.
  3. Redesign is the escapeL17 substitution 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.

Quickstart

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

Batch Spec

{
  "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 }
  ]
}

How It Works

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.

MVP Scope

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.

Provenance

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.

License

MIT — see LICENSE.