diff --git a/building-financial-products-in-solana/figures/options-call-expires.svg b/building-financial-products-in-solana/figures/options-call-expires.svg
new file mode 100644
index 00000000..1aa824cf
--- /dev/null
+++ b/building-financial-products-in-solana/figures/options-call-expires.svg
@@ -0,0 +1,165 @@
+
diff --git a/building-financial-products-in-solana/figures/options-put-exercised.svg b/building-financial-products-in-solana/figures/options-put-exercised.svg
new file mode 100644
index 00000000..f077603e
--- /dev/null
+++ b/building-financial-products-in-solana/figures/options-put-exercised.svg
@@ -0,0 +1,169 @@
+
diff --git a/building-financial-products-in-solana/options.md b/building-financial-products-in-solana/options.md
index f7c512d6..6c22ad54 100644
--- a/building-financial-products-in-solana/options.md
+++ b/building-financial-products-in-solana/options.md
@@ -24,6 +24,8 @@ The two sides have different shapes, and the shapes are the whole subject:
- **The writer** keeps the premium whatever happens, and in exchange takes on an obligation: to sell the underlying at the strike (a call) or to buy it at the strike (a put) whenever the holder asks. The writer's gain is capped at the premium, and the writer's obligation is not.
- **The holder's** loss is capped at the premium whatever happens, and the holder's gain is open-ended.
+Every option has exactly two endings, and the price at expiry decides which: the holder exercises, or the option expires and the writer takes the collateral back. Where the price lands inside each ending decides how much each side made.
+

Traditional options venues let a writer take on that obligation with only a fraction of it posted as **margin**, and then watch the position every day to make sure the fraction still covers it. This program does something simpler. **A writer posts the whole obligation, up front, into the vault.**
@@ -134,7 +136,9 @@ NVIDIA reports earnings and NVDAx moves to $200. Bob calls `exercise_option()` b

-Bob now holds 5 NVDAx worth $1,000 and has spent 925 USDC to get them, 25 of premium and 900 of strike. His 1,000 USDC is 75 USDC. Had NVDAx stayed at $165, he would not have exercised (paying 900 for shares the market sells for 825), and the 25 USDC would have been his whole loss.
+Bob now holds 5 NVDAx worth $1,000 and has spent 925 USDC to get them, 25 of premium and 900 of strike. His 1,000 USDC is 75 USDC. Had NVDAx stayed at $165, he would not have exercised (paying 900 for shares the market sells for 825), and the 25 USDC would have been his whole loss. The call would have expired, and once the week was out Alice would have called `reclaim_collateral()` for her 5 NVDAx, keeping the premium and the shares.
+
+
The strike payment stays in the vault, owed to Alice, rather than being sent to her directly. Paying the writer inside the exercise would mean requiring the writer's token account to exist at that moment, and a writer who closed it could then block the holder from ever exercising. The vault holds it instead, and the writer comes to get it.
@@ -168,6 +172,10 @@ The week passes with NVDAx above $150, and Dave does nothing: selling at 150 whe
Carol's return is the 19.80 USDC premium on a purchase that never happened. Dave's insurance cost him 20 USDC and paid nothing. Both got what they paid for.
+Had NVDAx fallen below $150, Dave would have exercised instead: his 5 NVDAx into the underlying vault, the 750 USDC out to him, and the shares owed to Carol, who would have bought at $150 what the market then sold for less.
+
+
+
## The Operator Collects the Fees
Maria calls `collect_fees()`. The handler pays her `fees_owed`, 0.45 USDC across the two sales, zeroes the counter, and refuses to run when there is nothing to collect (`NothingToCollect`). The vaults are empty: every token that entered has left to the party it was owed to.
diff --git a/scripts/check-figure-geometry.mjs b/scripts/check-figure-geometry.mjs
index 845a07a2..385295fe 100644
--- a/scripts/check-figure-geometry.mjs
+++ b/scripts/check-figure-geometry.mjs
@@ -461,6 +461,7 @@ for (const file of selected) {
"building-financial-products-in-solana/figures/options-buy-call.svg 462,523 slides",
"building-financial-products-in-solana/figures/options-buy-put.svg 462,522 slides",
"building-financial-products-in-solana/figures/options-exercise.svg 462,522 slides",
+ "building-financial-products-in-solana/figures/options-put-exercised.svg 462,431 slides",
"building-financial-products-in-solana/figures/options-write-put.svg start 316,171 corner",
// the base vault's payout to Bob runs up his column with 3 units between stem and box; it slides along Bob's NVDAx
"building-financial-products-in-solana/figures/order-book-settle.svg 229,148 slides",