How the matching works
When wants close, one program decides who ships what to whom. This page explains how it decides, in plain language. If you haven't read How the Swap-a-ton works yet, start there — this page picks up where it leaves off.
Nobody picks favorites, and nothing is decided by arrival order.
Everything is decided at once
The matching looks at every offering and every ranked list in the edition at the same time and picks the single best arrangement of the whole thing.
That's why:
- Signing up early gives you no advantage. Order of arrival isn't part of the math.
- You can't "lock in" a game. Nothing is reserved for anyone at any point.
- Nobody is manually paired. Admins release the results; they don't author them.
What the program actually decides is one question per copy in the pool: does this copy stay home, or does it go to somebody who ranked it? Every copy gets exactly one answer, and the trade chains fall out of those answers.
Why chains close on themselves
A copy only leaves your shelf inside a closed loop: you give, someone gives to the person after them, and eventually the loop comes back around to hand you something you ranked.
That loop can be two people long or twenty. You never see the whole loop — only your own legs — and it makes no difference to you how long it is: you ship one game to one person, and one game arrives from a different person.
The important consequence: the algorithm can never take your game without giving you one back. A loop that doesn't close isn't a loop — it's structural, not a rule.
The three priorities, in order
The program is trying to satisfy three goals, and they're ranked. A lower goal never overrules a higher one.
1. Trade as many games as possible
The first priority is the number of copies that find a home. This dominates everything else — the program will hand somebody their fourth choice instead of their first if that's what makes two more trades possible.
2. Respect your ranking as closely as it can
Within the arrangement that trades the most games, the program then makes the ordering of everyone's lists come out as well as possible. Higher up your list is genuinely better: your order is read literally.
Every copy you tick carries a priority number you type, under the tick. A new mark takes the worst number that column already holds, so ticking never pushes a copy above one you placed on purpose. From there the numbers are yours: put anything on any number, put several copies on the same number, leave gaps wherever you like. Nothing renumbers itself.
Only the order of your numbers reaches the matching, never the size of the gaps. A list of 1, 5 and 99 says exactly what a list of 1, 2 and 3 says: a first, a second and a third choice. So a big number never costs you anything, and neither does a tidy one.
3. Ship the shortest distance
Last, and only as a tiebreak: between copies you marked as equally acceptable, the program prefers the one closest to you — same city first, then same department, then anywhere in the country.
One step in your ranking outweighs any difference in distance, so location can never cost you a better-ranked copy or cost the pool a trade. It only ever decides which of several interchangeable copies travels.
This is what one shared number does. Ticks land on the same number by default, so copies you simply mark are interchangeable to you and the nearest one ships. Shift-clicking marks a whole run of cells at once — down a column, or across your games on one row — all on that same number. You state a strict preference by typing different numbers — and then your order wins again, and the nearest copy stops being the one that arrives.
It optimizes the whole pool
Priorities 1 and 2 are about the whole edition, not about you specifically. The program maximizes the total number of trades and then the overall quality of everyone's rankings.
- Your first choice is not guaranteed, even when the copy you wanted does end up trading. It can go to somebody else if that arrangement serves the pool better.
- You will never receive something you didn't mark. There is no "close enough" and no substitution.
What is guaranteed
- You never receive your own copy.
- You never receive a copy you didn't rank.
- You never give a game away without receiving one in return.
- Each game you offered is independent: some of your offerings can trade while others don't.
- Worst case: you trade nothing and keep your games.
Duplicate protection
Wants are per copy, not per title — condition, language and edition differ between two copies of the same game, so you rank the actual copies. That raises an obvious problem: if you mark copies of Wingspan across three of your own offerings, could you end up with three Wingspans?
No. Duplicate protection is on by default and guarantees that at most one copy of any given title reaches you, no matter how many of your lists ask for it.
Every request stays live — the one that's best for the arrangement is the one that fires. So:
Marking every acceptable copy of a game you want is safe, and it improves your odds.
This covers the normal case: the same title, the same BGG entry. Sometimes you need more control: two editions you consider the same game, unrelated games you'd take at most one of, or deliberately receiving more than one copy. For that, there's Custom protection, a separate, optional mode where you decide what's mutually exclusive.
Two directions on the grid
The wants grid has two directions, and the guarantee reads differently along each. Vertical is one column: one of your games collecting options. Horizontal is one game reached from several of your columns.
Vertical is always free. One of your games trades exactly once, so a column can mark ten copies of Wingspan, a box that contains it, and anything else — that column still receives a single thing. There is nothing to protect.
Horizontal is where two copies could sneak in. Two of your columns each trade on their own, so if both reach Wingspan, both could bring one home. This is exactly what duplicate protection handles: the matching keeps your better-ranked request and the other stands down. You never receive both.
Combos and this guarantee
A combo is an offering holding several games that trade together, as one box. The guarantee covers combos too, and it costs you nothing when you rank: mark any boxes and any loose copies you like, in any mix, from any of your lists. A box counts as a route to every game inside it, so a box with Wingspan through one column and a loose Wingspan through another is the horizontal case above — resolved the same way, your better-ranked request wins.
Try it against examples
| You mark | What can arrive |
|---|---|
| Ten loose copies of Wingspan, one column | One Wingspan — the best for the arrangement |
| Ten loose copies of Wingspan, spread over three columns | Still one Wingspan |
| A box containing Wingspan + a loose copy, same column | The box or the copy — one thing per column |
| A box containing Wingspan + a loose copy, different columns | At most one — if both would arrive, your better-ranked request wins |
| The same box marked from two of your columns | The box once, to one of the two — one box only goes to one place |
Fairness isn't part of the math
The matching never judges a trade. It doesn't balance one side against the other, and it won't stop a trade because one copy is worth more than the other.
Fairness is enforced at the point where you decide what to rank. If you consider a copy a bad trade for yours, don't mark it — that's the whole mechanism. The per-column bulk actions make that quick.
Condition, language and included items work the same way: the program doesn't read them either. That's why you rank individual copies — everything you care about goes into which copies you accept and in what order.
The same data always produces the same result
The matching has no randomness in it. Run it twice on the same pool and the identical arrangement comes out, down to the tiebreaks.
Before anything is released, the admin reviews the computed result — the same one that gets written when they release it. The review step can't edit results; it exists to catch a pool problem (too few participants, for instance) before an irreversible release.
Why you might not have matched
Getting nothing is a normal outcome, and it usually isn't about your game being unwanted. A trade needs a closed loop, so all of these have to line up at once:
- Somebody wants a copy you offered.
- You want a copy somebody else offered.
- And the chain between all of those people closes.
A popular game with a long list of wanters still doesn't trade if every path back to something you accepted is broken. Small pools break far more often than large ones — chains have fewer ways to close.
How to improve your odds
- Mark more copies. Every copy you add is another way a chain can close through you.
- Mark every copy of the games you want, not just the nicest one. Duplicate protection makes this free.
- Order your list honestly. There's no strategy to play — nobody sees your order, and the program reads it literally. Putting a game you don't really want at the top only risks getting it.
- Never mark a copy you'd resent receiving. Results are binding, and "I only ranked it as a long shot" isn't a way out.
- Offer more games. Each one is an independent 1-for-1 chance.
- Keep your city on your profile current — it's what the distance tiebreak reads.
Want the technical version?
This is a math trade, BGG's long-standing mechanism. Under the hood it's a minimum-cost assignment problem: each offering is a node, each want is an edge with a cost, the solver finds the cheapest perfect assignment, and the trade cycles are read off the result. The three priorities above are encoded as weights, heavy enough that a lower one can never outbid a higher one. Background reading: Math Trades on the BGG wiki.
Carry on to the FAQ, or read the binding version in the Swap-a-ton rules.
Ready? Head to Swap-a-ton to see the active edition.

