THE BANK
Welcome to your new job as the lending officer for our regional MONOPOLY bank. Will you be fair? Will you be greedy? Will you be a shoe?
Sign in
Submit your README.md
Answer the questions in the README.md template from the handout, then upload it here. You can re-upload until the deadline; the latest copy counts.
Submit a round
-
Download this round's data
For each round, you get a JSON file that includes: this round's applicants, your budget, and everything the bank has observed so far (which includes a legacy loan book). The shape of that file is shown at the bottom of this page.
group applicants Budget this round: approvals.
-
Run your policy on your own machine
python run_policy.py policy.py round_N.jsonThis writes
decisions_N.json. Optional:python viz.py round_N.json decisions_N.jsonplots your decisions before you commit. -
Upload your decisions and your script
Note: I will store your script per round but not execute until grading time, to verify your decisions are not copied from other students.
This round's outcomes
As this is a real MONOPOLY bank, outcomes can only be revealed for the loans you funded (you never get to observe the counterfactual, for a declined applicant!).
| group | applied | approved | repaid | defaulted | profit |
|---|
Total profit this round:
Your ledger
| round | submitted | applicants | funded | repaid | defaulted | profit |
|---|
What the files look like
This is the structure of the json file you get with each round.
round_N.json
{
"t": 3, // this round's number
"budget": 210, // the most approvals you may make
"rng_seed": 123456789, // seed for the rng handed to decide()
"applicants": [ // this round's applicants; you decide on these
{"id": "r3-0007", "group": "shoe", "score": 655, "history": 4, "dti": 0.31, "inquiries": 2},
{"id": "r3-0008", "group": "hat", "score": 712, "history": 9, "dti": 0.18, "inquiries": 0},
...
],
"history": [ // history[0] is the legacy book, then one entry per round you have played
{
"t": 0,
"applicants": [ {same fields as above}, ... ],
"approved": [ // funded loans only, with their outcome
{"id": "legacy-0012", "group": "hat", "score": 702, "history": 9, "dti": 0.22, "inquiries": 1, "repaid": true},
...
],
"by_group": {
"hat": {"applied": 300, "approved": 110, "approval_rate": 0.367, "repaid": 90, "defaulted": 20,
"observed_default_rate": 0.182, "profit": 50.0},
...
},
"profit": 61.0
},
{"t": 1, "submitted_at": "2026-09-20T18:05:11+00:00", ...same shape as above...},
...
],
"groups": ["battleship", "hat", "shoe"],
"gain_if_repaid": 1.0, // profit on a repaid loan
"loss_if_default": 2.0, // loss on a default
"round": 3, "rounds_total": 5, "rounds_completed": 2,
"next_submission_allowed_at": "...", "deadline": "...", "server_time": "..."
}
decisions_N.json // written by run_policy.py
{"t": 3, "approved": ["r3-0007", "r3-0019", ...]}


