-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
348 lines (313 loc) · 30.5 KB
/
Copy pathindex.html
File metadata and controls
348 lines (313 loc) · 30.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Causeum</title>
<link href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
:root {
--bg: #0c0f14;
--bg-card: #1a1f2a;
--border: #252b38;
--border-accent: #3d6b5e;
--text: #d4d8e0;
--text-dim: #7a8194;
--text-bright: #eef0f4;
--accent: #4ecba0;
--accent-dim: #2a7a5e;
--accent-glow: rgba(78, 203, 160, 0.08);
--warm: #e8c47a;
--red: #d4736e;
--serif: 'Instrument Serif', Georgia, serif;
--sans: 'DM Sans', system-ui, sans-serif;
--mono: 'JetBrains Mono', monospace;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--text); font-family: var(--sans); font-size: 17px; line-height: 1.7; font-weight: 300; -webkit-font-smoothing: antialiased; }
::selection { background: var(--accent-dim); color: var(--text-bright); }
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; padding: 1.2rem 2.5rem; display: flex; align-items: center; justify-content: space-between; background: rgba(12,15,20,0.85); backdrop-filter: blur(20px); border-bottom: 1px solid var(--border); }
.logo { font-family: var(--serif); font-size: 1.5rem; color: var(--text-bright); letter-spacing: -0.02em; }
.logo span { color: var(--accent); }
.nav-links { display: flex; gap: 2rem; }
.nav-links a { color: var(--text-dim); text-decoration: none; font-size: 0.82rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; transition: color 0.3s; }
.nav-links a:hover { color: var(--accent); }
.hero { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 8rem 2.5rem 6rem; max-width: 900px; margin: 0 auto; position: relative; }
.hero::before { content: ''; position: absolute; top: 15%; left: -20%; width: 500px; height: 500px; background: radial-gradient(circle, var(--accent-glow) 0%, transparent 70%); pointer-events: none; }
.hero-label { font-family: var(--mono); font-size: 0.78rem; color: var(--accent); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1.5rem; opacity: 0; animation: fadeUp 0.8s ease forwards 0.2s; }
.hero h1 { font-family: var(--serif); font-size: clamp(2.8rem,6vw,4.2rem); color: var(--text-bright); line-height: 1.15; letter-spacing: -0.02em; margin-bottom: 2rem; opacity: 0; animation: fadeUp 0.8s ease forwards 0.4s; }
.hero h1 em { font-style: italic; color: var(--accent); }
.hero-sub { font-size: 1.15rem; color: var(--text-dim); max-width: 620px; line-height: 1.8; opacity: 0; animation: fadeUp 0.8s ease forwards 0.6s; }
section { max-width: 780px; margin: 0 auto; padding: 5rem 2.5rem; }
section + section { border-top: 1px solid var(--border); }
.section-num { font-family: var(--mono); font-size: 0.72rem; color: var(--accent-dim); letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 0.8rem; }
section h2 { font-family: var(--serif); font-size: 2rem; color: var(--text-bright); letter-spacing: -0.01em; margin-bottom: 1.5rem; line-height: 1.25; }
section h2 em { font-style: italic; color: var(--accent); }
section p { margin-bottom: 1.3rem; color: var(--text); }
section p:last-child { margin-bottom: 0; }
strong { color: var(--text-bright); font-weight: 500; }
.example { background: var(--bg-card); border: 1px solid var(--border); border-left: 3px solid var(--accent-dim); border-radius: 6px; padding: 1.5rem 1.8rem; margin: 1.8rem 0; font-size: 0.95rem; }
.example-label { font-family: var(--mono); font-size: 0.7rem; color: var(--accent); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 0.8rem; }
.example p { margin-bottom: 0.8rem; }
.example p:last-child { margin-bottom: 0; }
.callout { background: var(--accent-glow); border: 1px solid var(--border-accent); border-radius: 8px; padding: 1.8rem 2rem; margin: 2rem 0; }
.callout p { color: var(--text-bright); font-size: 1.05rem; margin-bottom: 0; }
.callout-red { background: rgba(212,115,110,0.06); border-color: rgba(212,115,110,0.3); }
.val-table { width: 100%; border-collapse: collapse; margin: 1.8rem 0; font-size: 0.9rem; }
.val-table th { font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-dim); text-align: left; padding: 0.8rem 1rem; border-bottom: 2px solid var(--border); }
.val-table td { padding: 0.8rem 1rem; border-bottom: 1px solid rgba(37,43,56,0.5); color: var(--text); }
.val-table tr:last-child td { border-bottom: none; }
.val-table .num { font-family: var(--mono); color: var(--accent); font-weight: 500; }
.val-table .num-warm { font-family: var(--mono); color: var(--warm); }
.val-table .num-red { font-family: var(--mono); color: var(--red); }
.properties { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin: 2rem 0; }
.property { background: var(--bg-card); border: 1px solid var(--border); border-radius: 6px; padding: 1.3rem 1.5rem; }
.property h4 { font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); margin-bottom: 0.5rem; }
.property p { font-size: 0.88rem; color: var(--text-dim); margin-bottom: 0; line-height: 1.55; }
.notif { background: var(--bg-card); border: 1px solid var(--border-accent); border-radius: 8px; padding: 1.8rem 2rem; margin: 2rem 0; font-size: 0.92rem; }
.notif-header { font-family: var(--serif); font-size: 1.1rem; color: var(--accent); margin-bottom: 0.8rem; }
.notif p { margin-bottom: 0.6rem; color: var(--text-dim); }
.notif strong { color: var(--text-bright); }
details { margin-top: 1.5rem; }
details summary { font-family: var(--mono); font-size: 0.85rem; font-weight: 500; color: var(--accent); cursor: pointer; padding: 0.8rem 0; list-style: none; transition: color 0.3s; }
details summary::-webkit-details-marker { display: none; }
details summary::before { content: '▸ '; display: inline-block; }
details[open] summary::before { content: '▾ '; }
details summary:hover { color: var(--text-bright); }
.theory-content { padding-top: 1rem; }
.theory-content h3 { font-family: var(--serif); font-size: 1.25rem; color: var(--text-bright); margin-top: 2rem; margin-bottom: 0.8rem; line-height: 1.3; }
.theory-content h3:first-child { margin-top: 0.5rem; }
.theory-content p { font-size: 0.92rem; color: var(--text-dim); line-height: 1.7; margin-bottom: 1rem; }
.theory-content .val-table { font-size: 0.75rem; }
.theory-content .val-table td, .theory-content .val-table th { padding: 0.5rem 0.6rem; }
footer { max-width: 780px; margin: 0 auto; padding: 4rem 2.5rem; border-top: 1px solid var(--border); text-align: center; }
footer p { font-size: 0.82rem; color: var(--text-dim); }
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.reveal { opacity: 1; }
@media (max-width: 600px) {
nav { padding: 1rem 1.5rem; }
.nav-links { gap: 1rem; }
.nav-links a { font-size: 0.72rem; }
.hero { padding: 7rem 1.5rem 4rem; }
section { padding: 3.5rem 1.5rem; }
.properties { grid-template-columns: 1fr; }
.example, .notif { padding: 1.2rem; }
}
</style>
</head>
<body>
<nav>
<div class="logo">Cause<span>um</span></div>
<div class="nav-links">
<a href="#how">How It Works</a>
<a href="#trade">The Trade</a>
<a href="#safe">Why It's Safe</a>
<a href="#properties">Guarantees</a>
</div>
</nav>
<div class="hero">
<div class="hero-label">A donation optimizer for political and charitable giving</div>
<h1>I'll stop funding mine <em>if you stop funding yours.</em></h1>
<p class="hero-sub">Alice gives $100/month to the Democrats. Bob gives $100/month to the Republicans. They're just burning money fighting each other. They could both agree to stop and donate to a worthy cause like the Against Malaria Foundation instead. Causeum does this automatically—you just state how much you value different causes, and the platform routes your donation where it does the most good.</p>
</div>
<!-- ────── HOW IT WORKS ────── -->
<section id="how" class="reveal">
<div class="section-num">01 — How It Works</div>
<h2>Three steps</h2>
<p><strong>Set your monthly donation.</strong> Pick an amount. Your card is charged at the start of each cycle. If payment fails, you simply sit that round out.</p>
<p><strong>Rate every cause.</strong> Score each cause from $0.00 to $1.00—how much a dollar of funding there is worth to you. You can update these anytime.</p>
<p><strong>The optimizer does the rest.</strong> Everyone's payments go into escrow. The optimizer allocates the entire pool across causes to maximize total value—finding mutual compromises where donors on opposite sides both come out ahead. Money goes out to causes. Done. Each round is a fresh optimization.</p>
<p>You get a receipt showing exactly where your money went and how much more effective it was than donating directly.</p>
</section>
<!-- ────── THE TRADE ────── -->
<section id="trade" class="reveal">
<div class="section-num">02 — The Core Idea</div>
<h2>Mutual compromise</h2>
<p>Every trade is mutual. Both sides give something up. Both come out ahead.</p>
<div class="example">
<div class="example-label">How a trade works</div>
<p>Grace donates $100/month. Her top cause is <strong>Emily's List</strong> ($1.00). Sam donates $100/month. His top cause is <strong>Club for Growth</strong> ($1.00). They're on opposite sides. But they both moderately like <strong>VoteVets</strong>.</p>
<table class="val-table">
<thead><tr><th></th><th>Emily's List</th><th>Club for Growth</th><th>VoteVets</th></tr></thead>
<tbody>
<tr><td><strong>Grace</strong></td><td class="num">$1.00</td><td class="num-red">$0.10</td><td class="num-warm">$0.85</td></tr>
<tr><td><strong>Sam</strong></td><td class="num-red">$0.10</td><td class="num">$1.00</td><td class="num-warm">$0.90</td></tr>
</tbody>
</table>
<p>If both donate directly, Grace sends $100 to EL, Sam sends $100 to CFG. They cancel each other out. Pure waste.</p>
<p>The optimizer routes both to VoteVets instead. Both sacrifice. Both gain more than they lose.</p>
<p><strong>Grace's math:</strong> she gave up $0.15/dollar sending her $100 to VV instead of EL. Sacrifice: $15. But Sam's $100 also arrived at VV—a cause she values at $0.85. Gain: $85. <strong>Net: +$70.</strong></p>
<p><strong>Sam's math:</strong> he gave up $0.10/dollar sending his $100 to VV instead of CFG. Sacrifice: $10. But Grace's $100 also arrived at VV—a cause he values at $0.90. Gain: $90. <strong>Net: +$80.</strong></p>
</div>
<p>There's nothing to reverse because the money is already spent. Each round is a fresh pool. No positions, no liens, no lockups. Just optimally allocated donations.</p>
</section>
<!-- ────── THE DOUBLE EFFECT ────── -->
<section class="reveal">
<div class="section-num">03 — The Double Effect</div>
<h2>Defunding happens as a side effect</h2>
<p>The trade works because both sides value receiving money at VoteVets. But there's a bonus: $100 that would have gone to Club for Growth didn't. And $100 that would have gone to Emily's List didn't. Neither person targeted the other's cause. The defunding is a side effect of both people converging on common ground.</p>
<div class="callout">
<p>The trade is justified entirely by the subsidy—receiving the other person's money at a cause you value. Defunding what you hate is a bonus you don't have to factor in.</p>
</div>
</section>
<!-- ────── AT SCALE ────── -->
<section class="reveal">
<div class="section-num">04 — At Scale</div>
<h2>What happens with <em>50,000 donors</em></h2>
<p>We simulated 50,000 donors with 12 causes and realistic partisan starting preferences—40% of each side's money in their party flagship (DNC or RNC), the rest in aligned causes. The optimizer ran exhaustive bilateral trades using only the subsidy criterion: does receiving the other person's money at the compromise cause outweigh my sacrifice?</p>
<div class="callout">
<p>89% of donors found a mutually beneficial trade. 89% of all money was redirected. Subsidy surplus averaged $0.90 per dollar donated—meaning every dollar your trading partner put toward the compromise cause was worth $0.90 to you, while your sacrifice averaged $0.10.</p>
</div>
<p><strong>Where money flowed:</strong> the DNC collapsed from $9.3M to $945K. The RNC from $9.3M to $931K. Emily's List from $3.4M to $1.4M. NRA from $3.5M to $1.2M. The money went to causes both sides value: VoteVets surged from $3.5M to $22.8M. Conservation Voters grew to $5.9M. Americans for Prosperity to $4.6M. Against Malaria Foundation went from $0 to $608K. GiveWell from $0 to $587K.</p>
<p><strong>The surplus is real and concrete.</strong> When Grace's $100 arrives at VoteVets, Sam values that at $90 (he values VV at $0.90). Sam sacrificed $10 to be in VV instead of CFG. So Sam's net surplus is $80—he received $90 of value for a $10 sacrifice. That's real willingness-to-pay. Across 24,862 bilateral trades and 50,000 donors, the total subsidy surplus was $41.3 million from a $46.1 million pool.</p>
</section>
<!-- ────── THE FEE ────── -->
<section class="reveal">
<div class="section-num">05 — The Fee</div>
<h2>We only make money when you do</h2>
<p>Causeum takes a small percentage of the subsidy surplus it creates for you. If the optimizer can't find you a beneficial trade, your donation goes straight to your top cause and you pay nothing.</p>
<div class="example">
<div class="example-label">The math</div>
<p>You donate $100 to the DNC. The optimizer finds a trade: you and an RNC donor both move to VoteVets. You sacrificed $15 (VV is $0.85 to you vs DNC at $1.00). But the RNC donor's $100 arrived at VV—a cause you value at $0.85. Subsidy gain: $85. Net surplus: $70. Causeum takes a small share of that $70.</p>
<p>If no trade improves your situation, your $100 goes to the DNC unchanged. No fee.</p>
</div>
<p>In our 50,000-donor simulation, the average trader's subsidy surplus was $831 on a $927 donation (90%). At 5% of surplus, the fee is ~$42 per trader—about 4.5% of the donation. The trader keeps 95% of the value the system created for them. At that rate, total monthly revenue from 50,000 donors would be $2.1M.</p>
</section>
<!-- ────── WHAT YOU SEE ────── -->
<section class="reveal">
<div class="section-num">06 — What You See</div>
<h2>Your monthly receipt</h2>
<p>Every receipt shows two things: the subsidy surplus (why the trade was made) and the defunding effect (an informational bonus showing what else changed). The trade is justified entirely by the subsidy. The defunding is a side effect you can see but that doesn't drive the optimizer.</p>
<div class="notif">
<div class="notif-header">Your donation this month: $100.00</div>
<p><strong>Default:</strong> $100 to Emily's List (your top cause, $1.00)</p>
<p><strong>Optimized:</strong> $100 to VoteVets ($0.85 to you)</p>
<p style="border-top:1px solid var(--border); padding-top:0.6rem; margin-top:0.6rem;"><strong>Your sacrifice:</strong> −$15.00 ($100 × (1.00 − 0.85))</p>
<p><strong>Subsidy gain:</strong> +$85.00 (their $100 arrived at VV, which you value at $0.85)</p>
<p><strong>Net subsidy surplus: +$70.00</strong> ← this is why the trade happened</p>
<p style="border-top:1px solid var(--border); padding-top:0.6rem; margin-top:0.6rem; color:var(--text-dim);"><strong>Defunding effect:</strong> −$10.00 (their $100 left CFG, which you valued at $0.10—you lost that incidental value)</p>
<p style="color:var(--text-dim);"><strong>Combined surplus: +$60.00</strong></p>
</div>
<div class="notif">
<div class="notif-header">No trade found this month.</div>
<p>The optimizer couldn't find a mutually beneficial trade for your donation this round. Your $100 went directly to <strong>Emily's List</strong>, exactly as if you'd donated on your own.</p>
<p><strong>Fee: $0.00</strong></p>
</div>
<p style="font-size:0.88rem; color:var(--text-dim); margin-top:1.5rem;"><strong>A note on negative valuations:</strong> with positive valuations only ($0.00–$1.00), the defunding effect is always negative or zero—you lose whatever incidental value the other person's money was generating at their old cause. An advanced option may in the future allow negative valuations, which would flip the defunding line positive (expressing that funding a cause actively hurts you). This creates larger trades but introduces a cobra risk: someone could fake an extreme starting position to attract trade partners who overpay. Both components are always shown separately so you can evaluate the trade for yourself.</p>
</section>
<!-- ────── WHY IT'S SAFE ────── -->
<section id="safe" class="reveal">
<div class="section-num">07 — Why It's Safe</div>
<h2>No one can game this</h2>
<p><strong>There's nothing to extract.</strong> The money is spent every round. There are no positions to manipulate, no stock to resell, no funds to withdraw. Donations go out to causes the moment the optimizer finishes.</p>
<p><strong>You can only do better, never worse.</strong> The optimizer only moves your donation if the new allocation is more valuable to you than your default. If no improvement exists, your money goes straight to your top cause.</p>
<p><strong>Faking doesn't help.</strong> If you misstate your valuations, the optimizer routes your money to causes you don't actually like. You're the only one who suffers.</p>
<p><strong>Failed payments are excluded.</strong> If your card doesn't clear, you're simply not in that round's pool. No one else is affected.</p>
</section>
<!-- ────── COBRA ────── -->
<section class="reveal">
<div class="section-num">08 — The Cobra Problem</div>
<h2>Why most matching schemes fail—and why this doesn't</h2>
<p>The British colonial government in India once offered a bounty for dead cobras. Locals started breeding cobras to collect the bounty. When the government cancelled the program, the breeders released their stock. More cobras than ever.</p>
<p>If you pay people to move money <em>away</em> from a cause, you incentivize people to put money <em>into</em> that cause to collect the payment.</p>
<div class="callout-red callout">
<p>You can never pay people to stop funding something. You can only give them a reason to move somewhere they like better.</p>
</div>
<p>Causeum avoids this because trades are justified entirely by the subsidy—the value of receiving money at a compromise cause you like. The optimizer doesn't reward you for leaving a hated cause; it rewards you for arriving at a valued one. A faker who claims an extreme cause as their default gains nothing—their trading partner's surplus comes from receiving the faker's money at the compromise, not from defunding the fake cause.</p>
<p>A future advanced mode may allow negative valuations, where the defunding component actively drives trades. Participants who opt in would accept the cobra risk for potentially larger surplus.</p>
</section>
<!-- ────── PROPERTIES ────── -->
<section id="properties" class="reveal">
<div class="section-num">09 — Guarantees</div>
<h2>Properties of the system</h2>
<div class="properties">
<div class="property">
<h4>You Can Only Do Better</h4>
<p>The optimizer only moves your money if the result is more valuable to you. If no improvement exists, your donation goes to your top cause unchanged.</p>
</div>
<div class="property">
<h4>Nothing to Extract</h4>
<p>Money is spent every round. No positions, no stock, no funds on deposit. There's nothing for a bad actor to manipulate.</p>
</div>
<div class="property">
<h4>Pay Only for Value</h4>
<p>Causeum takes a small share of the bilateral surplus it creates for you. No trade found? No fee. Your donation goes to your top cause unchanged.</p>
</div>
<div class="property">
<h4>Atomic Execution</h4>
<p>All donations in a round are collected, optimized, and disbursed together. No partial fills.</p>
</div>
<div class="property">
<h4>Honest Pricing Is Approximately Optimal</h4>
<p>Misstating your values means the optimizer sends your money somewhere you don't actually want. Same dynamics as any real market.</p>
</div>
<div class="property">
<h4>Gets Better With Scale</h4>
<p>More donors means more ideological diversity, more common ground, and bigger gains. The optimizer finds improvements that grow with the square of the user count.</p>
</div>
</div>
</section>
<!-- ────── SUMMARY ────── -->
<section class="reveal">
<div class="section-num">10 — In Short</div>
<h2>The whole idea</h2>
<p>You donate monthly. You rate every cause. The optimizer pools everyone's donations and finds mutual compromises where donors on opposite sides both come out ahead. Your sacrifice is small—a slightly less preferred cause. Your gain is large—the other person's money also arrives at a cause you value. Causeum takes a small share of the surplus from each trade. No trade found? No fee. Donations to 501(c)(3) charities are tax-deductible.</p>
<p style="font-size:0.85rem;color:var(--text-dim);margin-top:2rem;">Causeum routes donations to designated political organizations (527) and tax-exempt charities (501(c)(3)). Donations to 501(c)(3) organizations may be tax-deductible.</p>
</section>
<!-- ────── WORKED EXAMPLE ────── -->
<section class="reveal">
<div class="section-num">11 — Worked Example</div>
<h2>Watch the optimizer run</h2>
<p>20 donors, 6 causes, one optimization round. Real numbers.</p>
<details>
<summary>Open the worked example</summary>
<div class="theory-content">
<h3>The pool</h3>
<p>Six causes: Emily's List (EL), Club for Growth (CFG), VoteVets (VV), Americans for Prosperity (AFP), League of Conservation Voters (LCV), Against Malaria Foundation (AMF). Twenty donors, each with a monthly donation and stated valuations. If they donated directly, each person's money would go to their top cause.</p>
<table class="val-table">
<thead><tr><th>Donor</th><th>Default</th><th>$/mo</th><th>EL</th><th>CFG</th><th>VV</th><th>AFP</th><th>LCV</th><th>AMF</th></tr></thead>
<tbody>
<tr><td><strong>Grace</strong></td><td>EL</td><td>$350</td><td class="num">1.00</td><td class="num-red">0.08</td><td class="num-warm">0.85</td><td class="num-red">0.05</td><td class="num-warm">0.80</td><td class="num-red">0.40</td></tr>
<tr><td><strong>Alice</strong></td><td>LCV</td><td>$500</td><td class="num-warm">0.60</td><td class="num-red">0.05</td><td class="num-warm">0.78</td><td class="num-red">0.04</td><td class="num">1.00</td><td class="num-red">0.30</td></tr>
<tr><td><strong>Nora</strong></td><td>VV</td><td>$400</td><td class="num-warm">0.82</td><td class="num-red">0.06</td><td class="num">1.00</td><td class="num-red">0.05</td><td class="num-warm">0.76</td><td class="num-red">0.35</td></tr>
<tr><td><strong>Eve</strong></td><td>EL</td><td>$250</td><td class="num-warm">0.75</td><td class="num-red">0.04</td><td class="num-warm">0.80</td><td class="num-red">0.03</td><td class="num">0.90</td><td class="num-red">0.25</td></tr>
<tr><td><strong>Rosa</strong></td><td>LCV</td><td>$500</td><td class="num-warm">0.70</td><td class="num-red">0.03</td><td class="num-warm">0.68</td><td class="num-red">0.03</td><td class="num">1.00</td><td class="num-warm">0.50</td></tr>
<tr><td><strong>Quinn</strong></td><td>VV</td><td>$150</td><td class="num">0.85</td><td class="num-red">0.06</td><td class="num-warm">0.72</td><td class="num-red">0.05</td><td class="num-warm">0.70</td><td class="num-red">0.20</td></tr>
<tr><td><strong>Kim</strong></td><td>VV</td><td>$200</td><td class="num-warm">0.80</td><td class="num-red">0.07</td><td class="num">1.00</td><td class="num-red">0.06</td><td class="num-warm">0.82</td><td class="num-red">0.30</td></tr>
<tr><td><strong>Sam</strong></td><td>CFG</td><td>$300</td><td class="num-red">0.08</td><td class="num">0.90</td><td class="num-warm">0.70</td><td class="num-warm">0.75</td><td class="num-red">0.10</td><td class="num-red">0.15</td></tr>
<tr><td><strong>Frank</strong></td><td>CFG</td><td>$600</td><td class="num-red">0.05</td><td class="num">1.00</td><td class="num-red">0.06</td><td class="num">0.85</td><td class="num-red">0.04</td><td class="num-red">0.10</td></tr>
<tr><td><strong>Jake</strong></td><td>AFP</td><td>$500</td><td class="num-red">0.06</td><td class="num-warm">0.82</td><td class="num-red">0.08</td><td class="num">1.00</td><td class="num-red">0.05</td><td class="num-red">0.12</td></tr>
<tr><td><strong>Dan</strong></td><td>AFP</td><td>$400</td><td class="num-red">0.07</td><td class="num-warm">0.80</td><td class="num-red">0.09</td><td class="num">0.95</td><td class="num-red">0.06</td><td class="num-red">0.15</td></tr>
<tr><td><strong>Hank</strong></td><td>CFG</td><td>$450</td><td class="num-red">0.04</td><td class="num">1.00</td><td class="num-red">0.07</td><td class="num-warm">0.72</td><td class="num-red">0.03</td><td class="num-red">0.08</td></tr>
<tr><td><strong>Pat</strong></td><td>AFP</td><td>$200</td><td class="num-red">0.05</td><td class="num-warm">0.70</td><td class="num-red">0.10</td><td class="num">0.92</td><td class="num-red">0.04</td><td class="num-red">0.18</td></tr>
<tr><td><strong>Tom</strong></td><td>CFG</td><td>$400</td><td class="num-red">0.04</td><td class="num">1.00</td><td class="num-red">0.06</td><td class="num">0.92</td><td class="num-red">0.05</td><td class="num-red">0.08</td></tr>
<tr><td><strong>Maya</strong></td><td>AMF</td><td>$350</td><td class="num-warm">0.55</td><td class="num-warm">0.50</td><td class="num-warm">0.70</td><td class="num-red">0.45</td><td class="num-warm">0.60</td><td class="num">1.00</td></tr>
<tr><td><strong>Leo</strong></td><td>AMF</td><td>$300</td><td class="num-warm">0.65</td><td class="num-red">0.40</td><td class="num-warm">0.75</td><td class="num-red">0.35</td><td class="num-warm">0.70</td><td class="num-warm">0.80</td></tr>
<tr><td><strong>Ivy</strong></td><td>VV</td><td>$250</td><td class="num-warm">0.50</td><td class="num-red">0.45</td><td class="num">1.00</td><td class="num-red">0.40</td><td class="num-warm">0.55</td><td class="num">0.85</td></tr>
<tr><td><strong>Omar</strong></td><td>AMF</td><td>$350</td><td class="num-red">0.30</td><td class="num-warm">0.65</td><td class="num-warm">0.55</td><td class="num-warm">0.60</td><td class="num-red">0.25</td><td class="num">0.90</td></tr>
<tr><td><strong>Zara</strong></td><td>LCV</td><td>$300</td><td class="num-warm">0.60</td><td class="num-red">0.15</td><td class="num-warm">0.65</td><td class="num-red">0.10</td><td class="num">1.00</td><td class="num-red">0.45</td></tr>
<tr><td><strong>Ben</strong></td><td>VV</td><td>$200</td><td class="num-red">0.20</td><td class="num-warm">0.55</td><td class="num-warm">0.80</td><td class="num-warm">0.60</td><td class="num-red">0.15</td><td class="num-red">0.40</td></tr>
</tbody>
</table>
<p><strong>If everyone donated directly:</strong> EL $600, CFG $1,750, VV $1,200, AFP $1,100, LCV $1,300, AMF $1,000.</p>
<h3>The optimizer runs</h3>
<p>The optimizer scans every pair of donors and every possible compromise cause. For each combination, it checks: does each side value receiving the other's money at the compromise cause more than their sacrifice? It executes the best trade, then scans again. Repeat until no more beneficial trades exist.</p>
<p><strong>Grace and Sam find common ground at VoteVets.</strong> Grace's $350 goes to VV instead of EL. Sam's $300 goes to VV instead of CFG. Grace's math: sacrifice = $350 × (1.00 − 0.85) = $52.50. Subsidy gain = $300 × 0.85 = $255 (Sam's money arriving at VV). Net: +$202.50. Sam's math: sacrifice = $300 × (0.90 − 0.70) = $60. Subsidy gain = $350 × 0.70 = $245. Net: +$185. Both come out ahead.</p>
<p><strong>Hank and Maya find common ground at Club for Growth.</strong> Maya's default is AMF ($1.00) and she values CFG at $0.50—a big sacrifice of $175. But she receives Hank's $450 at CFG ($0.50 to her) = $225 of subsidy gain. Net: +$50. Hank sacrifices $450 × (1.00 − 1.00) = $0 (he's already in CFG) and receives Maya's $350 at CFG ($1.00 to him) = $350. Net: +$350.</p>
<h3>At 50,000 donors</h3>
<p>With 50,000 donors, 12 causes, and realistic partisan preferences, using the subsidy-only trade criterion:</p>
<p><strong>89% of donors traded.</strong> 89% of all money redirected. The DNC collapsed from $9.3M to $945K. The RNC from $9.3M to $931K. VoteVets surged from $3.5M to $22.8M. Conservation Voters grew to $5.9M. AFP to $4.6M. Against Malaria went from $0 to $608K. GiveWell from $0 to $587K.</p>
<p><strong>$41.3 million in subsidy surplus</strong> from a $46.1 million pool ($0.90 per dollar donated). That's real willingness-to-pay—each dollar of surplus represents the value a trader placed on receiving their partner's money at the compromise cause, minus their own sacrifice.</p>
<p>Average trader surplus: $831 on a $927 donation (90%). Left-leaning: 99% traded. Right-leaning: 100%. Centrists: 100%.</p>
<h3>Technical notes</h3>
<p><strong>The optimizer</strong> searches for mutually beneficial trades—pairs or groups where all participants gain. It can be implemented as a linear program or bilateral matching algorithm. Runs on every donation cycle. With 50 causes and 10,000 donors, solvable in milliseconds.</p>
<p><strong>Multi-way matching.</strong> The optimizer finds n-way cycles (Shapley-Scarf Top Trading Cycles) where no pairwise trade exists. A→B, B→C, C→A—all atomic.</p>
<p><strong>Honest pricing</strong> is approximately optimal. Misstating your values sends your money where you don't want it. Same dynamics as any pay-as-bid market.</p>
<p><strong>Tax deductions.</strong> Each donor receives a receipt showing exactly which causes received their money and how much. Donations to 501(c)(3) organizations are tax-deductible in the normal way.</p>
</div>
</details>
</section>
<footer>
<p style="font-size:1rem;color:var(--text-bright);margin-bottom:0.5rem;">Interested?</p>
<p>Causeum is in early development. Reach out at <strong><a href="/cdn-cgi/l/email-protection" class="__cf_email__"