diff --git a/src/main/java/net/tfminecraft/simplefactions/government/stability/BankruptcyMemo.java b/src/main/java/net/tfminecraft/simplefactions/government/stability/BankruptcyMemo.java
new file mode 100644
index 00000000..ad36cf19
--- /dev/null
+++ b/src/main/java/net/tfminecraft/simplefactions/government/stability/BankruptcyMemo.java
@@ -0,0 +1,77 @@
+package net.tfminecraft.simplefactions.government.stability;
+
+import java.util.IdentityHashMap;
+import java.util.Map;
+
+import org.bukkit.Bukkit;
+
+import net.tfminecraft.denareconomy.DenarEconomy;
+import net.tfminecraft.denareconomy.ledger.Ledger;
+import net.tfminecraft.simplefactions.guild.Guild;
+
+/**
+ * Whether each realm guild is bankrupt, read once per trade recalculation on the server thread.
+ * The flood asks for a province owner's stability once per foreign guild it reaches, and each ask
+ * reads the realm guild's treasury from the ledger. During a run on the server thread nothing
+ * else can post to a treasury or remove a bank, and nothing in a recalculation does, so every ask
+ * in that run gets the same answer. Everything else in stability, including unrest that decays
+ * over time, is still read live on every ask.
+ *
+ *
Runs off the server thread (async previews) read live as before: the server can change a
+ * guild's bank while they run. If the ledger is closed, every ask reads live too, because a
+ * closed ledger reads every balance as zero.
+ */
+public final class BankruptcyMemo {
+ private static final ThreadLocal