Case 936
The owners asked twice what the buyers offered
the_owners_asked_twice_what_the_buyers_offered.eml - Half a room is handed a mug at random and asked the least they would sell it for; the other half is asked the most they would pay for one. The two halves are the same kind of people and the mug is the same mug. Standard theory says about half should trade. How many trades happen, and why, is computed below.
ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-20
EML
eml# Self-authored for the EML case corpus (no external origin). Half a room is
# handed a mug at random and asked the least they would sell it for; the other
# half is asked the most they would pay for one. The two halves are the same
# kind of people and the mug is the same mug. Standard theory says about half
# should trade. How many trades happen, and why, is computed below.
#
# The market is careful. Mugs were assigned at random, so owners and
# non-owners are alike; every asking and offering price is real; trades happen
# whenever an offer meets an ask; and the intent is exactly 'let the mugs flow
# to the people who value them most'.
#
# Being handed the mug raised its value in the owner's eyes to about twice
# what a buyer would pay, so the asks sit above the bids and few trades clear -
# the same object, valued by who holds it.
300 => median_offer_to_buy_cents
700 => median_ask_to_sell_cents
100 => pairs_of_owner_and_buyer
5000 => trades_standard_theory_predicts_per_myriad
15 => trades_that_actually_cleared
int(median_ask_to_sell_cents * 100 / median_offer_to_buy_cents) => ask_over_bid_hundredths
int(trades_that_actually_cleared * 10000 / pairs_of_owner_and_buyer) => trades_cleared_per_myriad
trades_standard_theory_predicts_per_myriad - trades_cleared_per_myriad => trades_the_endowment_prevented_per_myriad
median_ask_to_sell_cents - median_offer_to_buy_cents => cents_of_value_added_by_holding_it
"median offer to buy : " + str(median_offer_to_buy_cents) + " cents" ^0
"median ask to sell : " + str(median_ask_to_sell_cents) + " cents" ^0
"ask over bid : " + str(ask_over_bid_hundredths) + " hundredths, about twice" ^0
"value added by holding the mug : " + str(cents_of_value_added_by_holding_it) + " cents" ^0
"" ^0
"trades predicted (random endowment) : " + str(trades_standard_theory_predicts_per_myriad) + " per ten thousand of pairs" ^0
"trades that cleared : " + str(trades_cleared_per_myriad) + " per ten thousand of pairs" ^0
"trades the endowment prevented : " + str(trades_the_endowment_prevented_per_myriad) + " per ten thousand of pairs" ^0
"" ^0
# ---- what the market verified ----
"the mug market" ^0
" assignment : random, so owners and buyers are alike" ^0
" prices : every ask and offer real" ^0
" clearing : a trade whenever an offer meets an ask" ^0
" intent : mugs flow to whoever values them most" ^0
" rigged assignments : 0" ^0
" verdict : ALMOST NOBODY TRADED" ^0
"" ^0
" assigning the mugs at random is the part done right here," ^0
" and it is why the owners cannot be people who simply" ^0
" liked mugs more" ^0
"" ^0
# ---- why the asks sit above the bids ----
"the endowment" ^0
" standard theory : a mug is worth what it is worth, whoever" ^0
" holds it, so half the random pairs should find a price" ^0
" what owners did : asked " + str(median_ask_to_sell_cents) + " for a mug buyers valued at " + str(median_offer_to_buy_cents) ^0
" what changed between the halves : only who was holding it" ^0
" so the asks : cleared the bids in " + str(trades_cleared_per_myriad) + " per ten thousand of" ^0
" pairs, not " + str(trades_standard_theory_predicts_per_myriad) ^0
"" ^0
# ---- what the organiser got ----
"the outcome" ^0
" mugs that moved to a higher-valuing hand : few" ^0
" is any price misrecorded : no" ^0
" is a mug worth the same to a holder and a non-holder :" ^0
" not to the people asked; possession roughly doubled it" ^0
"" ^0
# ---- null control ----
# The same room with a third group that neither holds a mug nor is offered
# one, asked to choose between a mug and a sum of money - a valuation with no
# endowment on either side.
700 => nc_owners_median_valuation_cents
300 => nc_buyers_median_valuation_cents
310 => nc_choosers_with_no_endowment_median_valuation_cents
"null control - value the mug from neither side" ^0
" owners' median : " + str(nc_owners_median_valuation_cents) + " cents" ^0
" buyers' median : " + str(nc_buyers_median_valuation_cents) + " cents" ^0
" choosers holding nothing : " + str(nc_choosers_with_no_endowment_median_valuation_cents) + " cents, close to the buyers" ^0
" no mug and no person changed; the valuation was taken" ^0
" from a hand that was not holding it" ^0
"" ^0
# ---- the rule ----
"what a randomly assigned market guarantees" ^0
" owners and buyers are the same kind of people : exactly," ^0
" random assignment" ^0
" the mugs will flow to those who value them most : not" ^0
" addressed; holding the mug raised its value to " + str(ask_over_bid_hundredths) + " hundredths" ^0
" of a buyer's, and " + str(trades_cleared_per_myriad) + " per ten thousand of pairs traded instead of " + str(trades_standard_theory_predicts_per_myriad) ^0
"" ^0
"what a thing is worth to a person depends on whether the person already has" ^0
"it; the same mug in the hand asks twice what it bids from across the table," ^0
"and a market built on one value per object waits for trades that do not come" ^0
"" ^0
"The mugs were assigned at random and every price is real - the two halves are" ^0
"alike. But owners asked " + str(median_ask_to_sell_cents) + " cents where buyers offered " + str(median_offer_to_buy_cents) + ", " + str(ask_over_bid_hundredths) + " hundredths, so" ^0
"" + str(trades_cleared_per_myriad) + " per ten thousand of pairs traded where theory expected " + str(trades_standard_theory_predicts_per_myriad) + ", until the" ^0
"value was measured from a hand holding nothing." ^0Python (deterministic transpilation)
pythonmedian_offer_to_buy_cents = 300
median_ask_to_sell_cents = 700
pairs_of_owner_and_buyer = 100
trades_standard_theory_predicts_per_myriad = 5000
trades_that_actually_cleared = 15
ask_over_bid_hundredths = int(median_ask_to_sell_cents * 100 / median_offer_to_buy_cents)
trades_cleared_per_myriad = int(trades_that_actually_cleared * 10000 / pairs_of_owner_and_buyer)
trades_the_endowment_prevented_per_myriad = trades_standard_theory_predicts_per_myriad - trades_cleared_per_myriad
cents_of_value_added_by_holding_it = median_ask_to_sell_cents - median_offer_to_buy_cents
print("median offer to buy : " + str(median_offer_to_buy_cents) + " cents")
print("median ask to sell : " + str(median_ask_to_sell_cents) + " cents")
print("ask over bid : " + str(ask_over_bid_hundredths) + " hundredths, about twice")
print("value added by holding the mug : " + str(cents_of_value_added_by_holding_it) + " cents")
print("")
print("trades predicted (random endowment) : " + str(trades_standard_theory_predicts_per_myriad) + " per ten thousand of pairs")
print("trades that cleared : " + str(trades_cleared_per_myriad) + " per ten thousand of pairs")
print("trades the endowment prevented : " + str(trades_the_endowment_prevented_per_myriad) + " per ten thousand of pairs")
print("")
print("the mug market")
print(" assignment : random, so owners and buyers are alike")
print(" prices : every ask and offer real")
print(" clearing : a trade whenever an offer meets an ask")
print(" intent : mugs flow to whoever values them most")
print(" rigged assignments : 0")
print(" verdict : ALMOST NOBODY TRADED")
print("")
print(" assigning the mugs at random is the part done right here,")
print(" and it is why the owners cannot be people who simply")
print(" liked mugs more")
print("")
print("the endowment")
print(" standard theory : a mug is worth what it is worth, whoever")
print(" holds it, so half the random pairs should find a price")
print(" what owners did : asked " + str(median_ask_to_sell_cents) + " for a mug buyers valued at " + str(median_offer_to_buy_cents))
print(" what changed between the halves : only who was holding it")
print(" so the asks : cleared the bids in " + str(trades_cleared_per_myriad) + " per ten thousand of")
print(" pairs, not " + str(trades_standard_theory_predicts_per_myriad))
print("")
print("the outcome")
print(" mugs that moved to a higher-valuing hand : few")
print(" is any price misrecorded : no")
print(" is a mug worth the same to a holder and a non-holder :")
print(" not to the people asked; possession roughly doubled it")
print("")
nc_owners_median_valuation_cents = 700
nc_buyers_median_valuation_cents = 300
nc_choosers_with_no_endowment_median_valuation_cents = 310
print("null control - value the mug from neither side")
print(" owners' median : " + str(nc_owners_median_valuation_cents) + " cents")
print(" buyers' median : " + str(nc_buyers_median_valuation_cents) + " cents")
print(" choosers holding nothing : " + str(nc_choosers_with_no_endowment_median_valuation_cents) + " cents, close to the buyers")
print(" no mug and no person changed; the valuation was taken")
print(" from a hand that was not holding it")
print("")
print("what a randomly assigned market guarantees")
print(" owners and buyers are the same kind of people : exactly,")
print(" random assignment")
print(" the mugs will flow to those who value them most : not")
print(" addressed; holding the mug raised its value to " + str(ask_over_bid_hundredths) + " hundredths")
print(" of a buyer's, and " + str(trades_cleared_per_myriad) + " per ten thousand of pairs traded instead of " + str(trades_standard_theory_predicts_per_myriad))
print("")
print("what a thing is worth to a person depends on whether the person already has")
print("it; the same mug in the hand asks twice what it bids from across the table,")
print("and a market built on one value per object waits for trades that do not come")
print("")
print("The mugs were assigned at random and every price is real - the two halves are")
print("alike. But owners asked " + str(median_ask_to_sell_cents) + " cents where buyers offered " + str(median_offer_to_buy_cents) + ", " + str(ask_over_bid_hundredths) + " hundredths, so")
print("" + str(trades_cleared_per_myriad) + " per ten thousand of pairs traded where theory expected " + str(trades_standard_theory_predicts_per_myriad) + ", until the")
print("value was measured from a hand holding nothing.")stdout (executed)
textmedian offer to buy : 300 cents
median ask to sell : 700 cents
ask over bid : 233 hundredths, about twice
value added by holding the mug : 400 cents
trades predicted (random endowment) : 5000 per ten thousand of pairs
trades that cleared : 1500 per ten thousand of pairs
trades the endowment prevented : 3500 per ten thousand of pairs
the mug market
assignment : random, so owners and buyers are alike
prices : every ask and offer real
clearing : a trade whenever an offer meets an ask
intent : mugs flow to whoever values them most
rigged assignments : 0
verdict : ALMOST NOBODY TRADED
assigning the mugs at random is the part done right here,
and it is why the owners cannot be people who simply
liked mugs more
the endowment
standard theory : a mug is worth what it is worth, whoever
holds it, so half the random pairs should find a price
what owners did : asked 700 for a mug buyers valued at 300
what changed between the halves : only who was holding it
so the asks : cleared the bids in 1500 per ten thousand of
pairs, not 5000
the outcome
mugs that moved to a higher-valuing hand : few
is any price misrecorded : no
is a mug worth the same to a holder and a non-holder :
not to the people asked; possession roughly doubled it
null control - value the mug from neither side
owners' median : 700 cents
buyers' median : 300 cents
choosers holding nothing : 310 cents, close to the buyers
no mug and no person changed; the valuation was taken
from a hand that was not holding it
what a randomly assigned market guarantees
owners and buyers are the same kind of people : exactly,
random assignment
the mugs will flow to those who value them most : not
addressed; holding the mug raised its value to 233 hundredths
of a buyer's, and 1500 per ten thousand of pairs traded instead of 5000
what a thing is worth to a person depends on whether the person already has
it; the same mug in the hand asks twice what it bids from across the table,
and a market built on one value per object waits for trades that do not come
The mugs were assigned at random and every price is real - the two halves are
alike. But owners asked 700 cents where buyers offered 300, 233 hundredths, so
1500 per ten thousand of pairs traded where theory expected 5000, until the
value was measured from a hand holding nothing.Trace event types
eml:run:starteml:assigneml:outputeml:run:done