Live site: https://talgross-bu.github.io/static-pit-trading/
A browser-based classroom pit market. Open only your assigned participant card and keep its contents private while trading.
The site is static and does not transmit or aggregate classroom results. Session state remains in the spokesperson's browser.
Each group needs nine people: eight traders (four buyers, four sellers) and one spokesperson, who organizes and records but does not trade. Groups of seven or eight also work.
Run three rounds. Convergence toward the competitive price is something groups learn over repeated rounds, not something a single round shows. The first round runs 120 seconds and later rounds 75 seconds; the whole exercise takes about fifteen minutes.
Two conventions matter more than they look:
- Every completed price is announced. Public information about transactions is what separates a pit market from private bilateral haggling, and it is what makes prices converge.
- Bids and asks go in the breakout room's chat as well as aloud. On a video call the chat is the ticker tape, and it stops eight people from talking over one another. This is the breakout chat only — the site never asks anyone to post in the main session chat, which students cannot type into.
After each round the site shows the spokesperson a record sheet: the round, the transaction count, the mean price, and every individual price. Nothing is transmitted and the next round erases it, so spokespeople must screenshot it or copy it onto paper, then report the numbers aloud when the class reconvenes.
Values and costs are set in ROLES in js/market-core.js; the tests in
tests/market.test.js pin down the equilibrium those numbers imply.
Requires Node.js 20 or newer.
npm test
python3 -m http.server 8000Then open http://localhost:8000/. The exercise can also be opened directly from index.html.
Released under the MIT License.