tip your local market-maker
Moontower #303
In this issue:
more AI use examples
options primer
how taxes can influence option trades
Friends,
When I was in NYC a week ago, a friend pushed back our meeting by 90 minutes. I got a text and the calendar update. Didn’t think anything of it.
When we’re hanging out, I mentioned I’ve been tinkering a bit with AI to get more use out of the largest repo in our lives — our email inbox. My friend pulls out his phone and show me this app Poke. It was poke that pushed our meeting back on his command.
When he wakes up in the morning, Poke which is integrated with his Google suite, sends him a brief. It includes a summary of any emails or action items he received that it judges he would prioritize. It shows his schedule for the day. He had to deal with something pressing that conflicted with our appointment so he simply told Poke to notify me that he’d need to push the meeting back. Poke then emailed and texted me. He just treated his SMS like a personal assistant and it handled the rest.
This isn’t an ad for Poke, but just another thing I saw in the wild that previews how automation creep is about to turn into a flood.
Fun aside: When you onboard with poke you negotiate your monthly price with the app! The friend is well-known in investing circles and very online so the app tried to extract a high price arguing that it knew he was a baller. He got the price down 90% and told me he knows people that have gotten it to $0.
Back to email. I was thinking about marketing-related stuff for moontower. Over the years, readers have emailed me saying my content helped them land trading jobs or their boss told them to subscribe, or my post was forwarded to their desk.
[It’s a peacocky thing to say, but in the past year, the feedback is blunt about this letter being read at every market-making shop. The audience I have in my brain when I do the Thursday posts is an experienced trader who probably has juniors that he or she would rather say “go read this” rather than explain the things themselves. They’re busy trading, and I’ve already invested in the words so they can save their breath.]
I wanted to collect all these emails, but keyword search is far too manual. The ultimate crux of the problem is semantic understanding:
“My PM told the desk to subscribe” and “I got the offer at Citadel” are both results of interest, but there are many variations of these phrases and the words that comprise them share a wide range of contexts (“offer”, “desk”)
I asked the Gemini in Gmail to find them. It returned 4 when I’d expect hundreds, so its method lacks depth.
I turned to Claude to build a pipeline. It took some back and forth, but ultimately it worked beautifully. Which is exciting because it’s a reusable workflow for semantic search on any body of work, of which, Gmail is just one instance.
The pipeline is quite simple. This is how it works:
Step 1: Multiple searches using narrow keyword queries
14 targeted Gmail API keyword searches instead of 1 semantic query
Each catches a different flavor: job language + “Moontower”, boss language + “newsletter”, forwarding language + “your post”
Result: ~4,200 candidates
Snag: First queries were too broad (13K results). Fix: anchor every query to “Moontower”
⚡AI Deliverable: Python script to push through Gmail API
Step 2 — Fetch the emails via API
Gmail API pulls full email bodies programmatically — no export needed
Result: 3,922 emails fetched
Snag: Rate-limited at email 2,850. Fix: retry logic + caching to disk
⚡AI Deliverable: I actually used Claude extension in the browser to set up my Gmail API access
Step 3 — LLM classifies each one
Claude Haiku reads each email: “Is this a finance professional affirming Kris’s work?”
Categorizes matches: job placement, boss recommendation, team sharing, praise
Result: 585 matches
Snags: Wrong model string (3,900 silent 404s), API overload, ran out of credits mid-run, Python exception mismatch. Fix: incremental saving + resume flag
⚡AI Deliverable: This is the main AI magic. Classifying the email as something I’m actually looking for based on the context
Results
44 team/desk sharing
24 job placements
8 boss recommendations
~$3 API cost, ~8 hours runtime, 370 lines of Python
Now if I could only have my Twitter DMs accessible via this pipeline :-)
Takeaway
Use each tool for what it’s good at. Search engines are good at retrieval, but LLMs are good at judgment.
Money Angle
It’s been interesting to re-share the evergreen investing/options posts via Twitter articles to see which one are getting lots of resonance now. Circumstances are different since the original publication date. I published quite a bit even when the blog was obscure so stuff that got lots of views or not were based on a smaller sample of readers.
Thus far in this re-publishing experiment, the most popular share has been about the levered ETF rebalance quantities.
On Friday, I re-published a guest post. It is already the most viral article I’ve put on X.
A Visual Primer For Understanding Options
Money Angle For Masochists
I bought June/Feb13 put calendar in SLV a few weeks ago when the vol spread inversion went nuclear.
That was a disaster.
SLV dumped 30% 2 days later.
The Feb puts I’m short are of course 100 delta, so the effective position is long a June OTM call synthetically.
💡If a stock is $80 and you own the 100 put for $25 and 100 deltas worth of the stock, then you are synthetically long the 100 call for $5. If you don’t believe me, look at your p/l payoff for the portfolio of long puts and stock at expiry for stock prices of $90, $103, and $120 vs what it would be if you just owned the 100 call.
We understand the position and the risk. But we don’t talk about taxes much here so I’ll use this example to introduce the complexity of the real-world.
Let’s say I roll my June puts.
Consider the tax implications.
I will realize a gain on the appreciated puts.
The puts I’m short that are now the risk equivalent of being long shares because they are so far ITM. I have a mark-to-market loss on these puts, but it’s not realized. This is a problem. The entire trade has been a loser, but if I roll my June put,s I crystallize a short-term tax gain. Ideally, I need to crystallize the short-term loss on the puts I’m short by buying them back.
If I don’t buy them back and get assigned, I don’t realize the loss. Instead, I acquire shares with a basis of the strike price minus the premium I collected when I sold them. If I sold the 100 put at $5, my cost basis is $95. The shares are $70, but my loss is still unrealized until I sell the shares.
The problem might not be immediately obvious, so let me break it down.
If I roll my June puts instead of closing the entire position out, I have a trade that has been a loser, but the tax accounting shows a short-term gain + an unrealized loss.
To crystallize the loss, I must buy my put back or sell the shares once I’m assigned. But, both of these trades sell lots of SLV delta. If my intention is to maintain a synthetic long call position (long stock + long ITM puts) I’m stuck with an accounting gain.
⛔Because of the wash sale rule I cannot sell my SLV shares then immediately buy them back.
You can envision a scenario where SLV rallies up again, my synthetic call position recovers the economic loss but I have a taxable gain on the rally. My p/l on all the activity is a wash BUT I have loads of short-term taxable income!
Not picking up your matched short-term loss is leaving a dead soldier behind.
(Ok, that was dramatic. I’m sorry enough to say so, but not enough to delete it. I want to imprint it.)
There are a few choices whereby you can roll the puts, achieve the desired risk exposure but I’m not an accountant and this is not advice. There’s no wink here. Talk to an accountant.
Goal: crystallize short-term loss without getting rid of your long silver delta
Possible solutions
Once you are assigned, sell your SLV shares and replace the long with a highly correlated silver proxy such as other ETFs or silver futures. From an IRS interpretation of the wash sale rule, the futures are probably safer since COMEX is NY silver and SLV is London deliverable. But again, not an accountant.
Replace your length with assets highly correlated to silver, like miner stocks. The basis risk is obvious.
Close your puts and buy the stock at the same time, effectively buying a worthless synthetic call.
Let’s talk about #3 a bit more.
If the stock is $70 and the 100 put is only worth intrinsic (ie there’s no time value left in the 100 call), then that package is worth $100. The stock price plus the $30 put. Now you wouldn’t expect a market-maker to fill you at fair value.
I figured a market-maker might fill me for a penny of edge. When I was looking at the quote montage, the 99 strike call was offered at a penny so by arbitrage the 100 call should be offered at $.01
I tried to pay $100.01 for the package.
No dice. Nobody wanted the free money. I didn’t raise my bid, figuring I would try again on expiration day since perhaps a seller didn’t want to bother with the inventory. If they traded it on expiration day, the whole position would offset at settlement, and they would collect their easy penny.
Well, what happened?
My short put got exercised early! I got stuck with the shares and now have to sell the shares to crystallize the loss.
The interesting thing to point out is that paying up a penny to lock in a short-term accounting loss is a type of trade that’s win-win. The market maker sells a worthless synthetic option, I get my tax situation aligned.
This is a screenshare constructing a synthetic call in IB’s strategy builder, then adding it to the quote panel so you can see the bid/ask for the structure.
Stay groovy
☮️
Moontower Weekly Recap
Posts:
Need help analyzing a business, investment or career decision?
Book a call with me.
It's $500 for 60 minutes. Let's work through your problem together. If you're not satisfied, you get a refund.
Let me know what you want to discuss and I’ll give you a straight answer on whether I can be helpful before we chat.
I started doing these in early 2022 by accident via inbound inquiries from readers. So I hung out a shingle through the Substack Meetings beta. You can see how I’ve helped others:
Moontower On The Web
📡All Moontower Meta Blog Posts
👤About Me
Specific Moontower Projects
🧀MoontowerMoney
👽MoontowerQuant
🌟Affirmations and North Stars
🧠Moontower Brain-Plug In
Curations
✒️Moontower’s Favorite Posts By Others
🔖Guides To Reading I Enjoyed
🤖Resources to Get More Out of AI
🛋️Investment Blogs I Read
📚Book Ideas for Kids
Fun
🎙️Moontower Music
🍸Moontower Cocktails
🎲Moontower Boardgaming





I don't know exactly how make / take fees work for option / stock combos, but I could imagine that if you're providing liquidity at 100.01, a market-maker taking that liquidity would have exchange take fees on both legs, and SEC and FINRA activity fees. (I just checked, and the SEC activity fee, which varies over time, is exactly $0 right now, so I guess we're talking about exchange take fees)