Why a two-party matcher isn't a math trade.
barterama proposes two-party swaps. A math trade finds cycles of any length. Those are different problems with different answers, and the honest place to start is that the cycle finder is better at the job it was built for. This page is what each mechanism actually does, written for people who have already run one.
What a math trade does
Everyone submits a want list against a numbered pool: for each item I am offering, the items I would accept in exchange, in preference order. The moderator collects the lists at a deadline and runs TradeMaximizer over them. It finds the largest set of items that can trade simultaneously, in cycles of any length — each person sends their item to one member of their cycle and receives from another.
Two properties do most of the work. It is optimal: the maximum number of trades, not a good attempt at it. And it is ordinal: no item carries a price or a value anywhere in the input, so the algorithm never asserts what anything is worth. Where priorities are enabled they act as a tiebreak between valid solutions, not as a valuation. It is a genuinely good design, and it has been in use since 2007.
What it needs in return is a pool, a moderator, and a deadline. The round is the unit. Between rounds the mechanism does not exist.
What this design refuses to do
barterama cannot form a cycle. Not “does not yet” — it refuses. Every proposal is checked against a per-market party-count limit before it can be created, and that limit is two in every market in the table, including the ones that are not open yet. It is checked in the code that does the writing rather than left to convention, which is the only version of a constraint that holds.
Why it is two is a legal question rather than a product preference, and the reasoning is recorded against the constraint in our own source rather than argued out on a public page. The part that matters to you is the consequence: raising it is a decision somebody has to take and write down, not a setting anybody can flip, so you can plan on loops being absent rather than imminent. Bundles are a different thing and are not limited — many items, still two parties — which is why bundles carry the entire load of closing value gaps here.
Set that aside and the comparison still does not flatter us. On a fixed pool on a fixed day, an optimal cycle finder beats a pairwise matcher, and it is not close: a cycle can move an item to someone who has nothing its owner wants. This matcher requires that both people want something the other holds, which throws away every trade that only closes through a third person. Worse, its final packing step is greedy — proposals are scored, sorted, and accepted while their items are still free — so it is an approximation of its own objective, and its own objective is the weaker one.
So this is not a better math trade. If your pool is assembled and your round is open, run the round.
How the matching actually works here
A want is not a list of item numbers from this month's geeklist. It is a standing structured spec: a category, an optional brand, family and model at one of four specificity levels, a minimum condition, a floor on value band, and how far the seeker will go to collect something.
One predicate decides whether an item answers a want. It rejects your own items, the wrong category, anything below the condition floor, anything below the band floor, and a brand, family or model mismatch at whichever specificity level the want was written at. Then it checks the item can physically reach the seeker at all: a collect-only item cannot travel, so it needs both people inside a collection radius, and a seeker who will not post narrows that further. Running that predicate over every live listing gives the want-graph — edges from a want to the items that answer it.
Pairing then demands reciprocity in the same pass. A's want has to hit an item B holds, and some want of B's has to hit an item A holds. One-way interest produces nothing at all: there is no inbox of people asking for your things. That is the double coincidence of wants, taken seriously rather than routed around, and it is exactly the constraint a cycle finder is designed to dissolve.
Value, bundles and the balance meter
This is where the two designs part company hardest. A math trade models no value at all. This one does, and that is a cost as much as a feature: an ordinal want list can never be wrong about what something is worth, and a band can.
Every item that can be valued at all is placed in one of twelve logarithmic bands by the platform — never by its owner, and an item we can say nothing about gets no band and is excluded from matching rather than guessed at. Nothing is ever shown as a price; bands are all that reach the screen. When a straight swap leans more than about thirty per cent, and the side that would receive the bundle has said it will take one, the matcher searches the lighter owner's remaining listings for up to two small items to close the gap. Three items a side is the ceiling. The filler pool is narrowed before the search to items that do not break the handover, and any best bundle still missing by more than about forty-five per cent is discarded rather than offered.
The balance meter sums each side internally, takes the log of the ratio, and reports one of four verdicts — well balanced, leans slightly, leans clearly, strongly uneven. Only the verdict crosses to the screen, and it is symmetric and identical for both parties by mandate. Telling one side they did well tells the other side something about themselves, and they will read it too.
Handover is decided over the whole assembled trade, not per item. One collect-only item anywhere in a bundle pins the entire swap to one locality; mix a collect-only item with a post-only one and the proposal has no workable handover, so it is dropped rather than shown. A proposal you cannot physically perform is worse than no proposal.
What happens after a match, which is the part that bites
An offer holds nothing. Asking someone for their thing reserves none of their items and none of yours — otherwise locking up a stranger's inventory would cost nothing but the typing.
Accepting reserves both sides and opens a 48-hour window in which both people post or hand over. It is a symmetry device rather than a punishment: neither party is exposed for longer than the other. If a date does not work, either side can propose a later one, and proposing changes nothing until the other agrees — a deferral one person could impose unilaterally is a way to hold someone else's goods off the market indefinitely. Deferrals are capped at two, no further than a fortnight out, and every one of them is written into the conversation.
Pulling out before you post is always available, releases both sides' items immediately, is recorded, and suppresses that exact pairing from the matcher for a month — the pairing, not the items, which stay searchable. And the valuation graph is only written when both parties confirm receipt. An accepted trade is an intention; intentions are not evidence.
What we would get wrong on a board-game pool
Board games sit under Toys and Games, which has its own depreciation curve, and our seeded catalogue barely covers them: two archetypes, with no price feed behind either. Everything else in a real pool — editions, expansions, out-of-print printings — mints a new archetype with nothing at all behind it.
For those, the only source is what the owner says it cost new. That is capped so it can never outweigh a source we checked, it caps confidence low enough to force a three-band range on the page, and settlement deliberately refuses to learn anything from a swap that rests on it. So on that pool the band is close to noise, and what the matcher is really doing is a category, brand and condition match with a very loose fairness check bolted on.
Two more, since they are the ones a knowledgeable reader would find anyway. No price feed is ever called — the oracle values in the catalogue are seeded constants, and wiring a real feed is still outstanding. And nothing checks that a photo shows the thing in the title: there is no image verification at listing.
The only thing this is actually for
The UK maths trade runs on a roughly two-monthly cycle. If you decide in week three that a game should go, the mechanism is not available to you: you wait for the next round, or you post in a trading thread and negotiate one to one like it is 2004.
That gap is the whole claim. A want written here keeps working against everything that arrives, with no moderator, no deadline and no pool to assemble — and it works across categories, so the thing that answers it does not have to be another board game. In exchange you give up the cycles, which means you give up most of the matches. It is a worse clearing mechanism that is available on a Tuesday.
If that trade is not worth making for you, it genuinely is not, and the round is right there.
Where to check any of this
The matching predicate, the bundle search, the handover planner and the balance meter are all in one pure module with no database underneath them, which is why they can be unit-tested and why the page above can be specific. If something here is wrong, it is worth telling us: contact.
If you came here without already knowing what a math trade is, this is the wrong page and the practical one is swapping board games — what to photograph, how to describe completeness, and whether a big box is worth handing over in person. Plain-English version of the mechanism: swapping things without money. How this compares to the marketplaces people actually use: the honest comparison.