Docs · afterhours.fi

How afterhours.fi works, and how we know it does

Two parts. Part I is the story: how Hermee protects her weekend, how Kip earns by backing her, and what the protocol does underneath, with round numbers you can check in your head. Part II is the full research methodology behind every number: the journey, market research, 21 years of weekends, the backtest and its limits.

Part I

The story

No finance background needed. Two people, one weekend, and the sums behind it.

I.1

Friday, 4 pm: the problem

Every Friday at 4:00 pm New York the US stock market closes. It doesn’t reopen until Monday at 9:30 am. That’s 65 and a half hours every week when nobody can buy or sell a US stock on the exchange.

News doesn’t stop for the weekend. When something big happens on a Saturday, a war, a rate cut, a Chinese AI model that spooks the market, it all lands at once when the market reopens. The stock doesn’t slide down during the day where you could react; it simply opens lower. That jump is called a gap, and a stop-loss can’t protect you from it, because the first price it can sell at is already the low one.

Tokenized stocks, like Binance bStocks and Ondo Stocks, are digital versions of the same shares that live on a blockchain. They can move all weekend, but their value still depends on where the real stock opens on Monday. So the weekend risk is still there. Until now, there was simply no way to hand it to someone else.

I.2

How Hermee saves her weekend

Meet Hermee. She holds 50 shares of Nvidia as bStocks. At $200 a share, that’s $10,000. She isn’t selling, but she hates the feeling of waking up on Monday to a bad surprise.

Friday, 2:30 pm
She opens afterhours.fi and picks Nvidia, $10,000, and a 3% protection line. That means: if Nvidia opens more than 3% lower on Monday, she gets back everything below that 3%. The app shows her the price for this one weekend: $2. She pays it. Her shares stay in her wallet.
Saturday
Bad news breaks about AI chips. Nvidia’s token wobbles all weekend. Hermee doesn’t check. There’s nothing to do.
Monday, 9:30 am
Nvidia opens 12% lower, at $176 a share. Here is what happens to her money:
Without protection
Friday value (50 × $200)
$10,000
Monday value (50 × $176)
$8,800
Hermee loses
−$1,200
With protection (3% line)
Stock falls 12%
−$1,200
First 3% is hers (3% × $10,000)
−$300 of it
We pay the other 9%
+$900
Friday’s fee
−$2
Hermee loses only
−$302

The $900 arrives in her wallet automatically, in USDT, right after Monday’s opening price is published. She still owns her 50 shares, so if Nvidia recovers during the week she gets all of that back too.

And on the other 50 or so weekends of the year when nothing dramatic happens? She loses the $2 and keeps every dollar of whatever the stock did. If Nvidia opens 4% higher, she’s up $400 − $2 = $398. Protection never takes away the good weekends.

The whole rule, in one line
how far it fell, beyond the line
12% − 3% = 9%
times the amount protected
9% × $10,000
capped at 20% of the amount
most it can pay = $2,000
Payout
$900

Try it yourself. Drag Monday anywhere and watch the three numbers change:

What if NVDA opens on Monday at
−8.0%
on $10,000 of NVDA
protection line at −3%
−25%your line −3%0+10%
Your stock on Monday
−$800
Protection pays you
+$500
Total with protection
−$302
after the $2.00 fee

NVDA opens 8.0% lower. Your stock loses $800, and protection pays you $500. You only lose the first 3% plus the fee.

I.3

How Kip makes money

Someone has to pay Hermee the $900. That’s Kip. Kip has $10,000 in USDT sitting idle and would like it to earn something. He puts it into the protection pool together with nine other people, so the pool holds $100,000.

How the pool keeps itself safe
Half of the pool, $50,000, is a safety reserve that is never used to back protection. The other $50,000 is the working half. Every protection sold locks away its maximum possible payout (20% of the amount), so the working half can back at most $250,000 of stock (because 20% of $250,000 = $50,000). The pool can never promise more than it can pay.
A normal weekend for the pool
Stock protected this weekend
$250,000
Average fee ≈ $5 per $10,000
+$125
Payouts (usually none)
$0
Pool earns
+$125
A year for the pool (from 21 years of history)
Fees: $125 × 52 weekends
+$6,500
Paid back on bad Mondays (≈ 57%)
−$3,700
Interest on the idle USDT (≈ 4%)
+$4,000
Pool earns about
+$6,800 (≈ 7%)

Kip owns a tenth of the pool, so his share of a typical year is about $680 on his $10,000, or around 7%. Our 21-year backtest found 7.3% a year across all of 2005–2026 and about 10% since 2015. That’s the deal Kip is taking: collect a little every week, and pay out on the rare bad Monday.

The bad weekend
In March 2020 the US Federal Reserve cut rates to zero in an emergency on a Sunday evening, and most stocks opened 10–13% lower on Monday. For a pool like this one, that weekend’s payouts came to about 6.5% of everything it protected: roughly $16,000. Kip’s share of that is about $1,600, a real loss, and it comes out of the working half, never the reserve.

Afterwards the pool automatically sells less protection until it earns its way back, because its working half is smaller. That’s the rule that stopped the pool from being wiped out on any start date in 21 years of history, including starting in January 2020.

I.4

What happens underneath

Behind the one button there are five steps. None of them needs Hermee or Kip to do anything.

  1. 1. The price is worked out from real weekends

    Our engine has studied 61,815 real weekends across 50 stocks since 2005. It looks at how often weekends like this one (for a stock this jumpy right now) ended past Hermee’s line, and by how much. Say that in weeks like this, 1 weekend in 100 dropped 8%, which is 5% past a 3% line. On $10,000 that’s a $500 payout once every 100 weekends, so the fair price is $5 per weekend. We charge 1.5× that, $7.50, and the extra is what keeps the pool safe in years like 2020. (Hermee paid only $2 in our story because Nvidia was calm that week; jumpy weeks cost more.)

  2. 2. The price is signed

    Our server signs the price with a key, the way a bank stamps a quote. The contract on the blockchain only accepts prices that carry that signature and haven’t expired, so nobody can invent a cheaper one.

  3. 3. The payout money is locked

    When Hermee confirms, her fee goes into the pool and $2,000 (20% of her $10,000) is locked there for her. Kip can’t withdraw it until the weekend is over.

  4. 4. Friday 4 pm: sales close, the price is recorded

    At the bell, no more protection can be bought for that weekend: after the close, news starts to leak into futures markets, and it wouldn’t be fair to the pool. The official Friday closing price, $200, is recorded.

  5. 5. Monday 9:30 am: settle

    The official Monday opening price, $176, is recorded. The contract does the sum from section I.2 (fall of 12%, minus the 3% line, times $10,000 = $900), sends it to Hermee, and unlocks the remaining $1,100 back to the pool. If the stock had a split over the weekend, the weekend is cancelled and Hermee gets her fee back.

One detail matters more than it looks: we always use the official exchange price, never the token’s own weekend price. Weekend token markets are thin, and we measured that the token discovers almost none of Monday’s move until Monday morning. Using the official price means nobody can push the token around to trigger a payout.

I.5

The honest part

  • Most weekends Hermee pays a small fee and gets nothing back. Over years, on calm stocks like an S&P 500 fund, that costs a little more than it returns. It’s worth it mainly on jumpy stocks, and for the weekends that would really hurt.
  • The payout is capped at 20% of the amount. A 50% crash would still leave a loss beyond that.
  • It covers the gap to Monday’s opening price. A fall later on Monday isn’t covered.
  • Kip can lose money on a bad weekend, and a few times in 21 years the pool paid out more in a year than it collected.
  • Right now this runs on test networks with free test tokens. The admin can pause things and move funds.
That’s the whole idea. Hermee pays a little to never have a catastrophic Monday. Kip earns a little every week for carrying that risk across many people and many stocks. Part II explains how we know the numbers above are realistic: where the data came from, how we tested it, and where it could be wrong.
Part II

The methodology

For researchers and allocators: how the idea evolved, the evidence for demand, the data, the tests, the results for both sides, and how far to trust them.

§0

Abstract

US equities stop trading from Friday 16:00 to Monday 09:30 New York, yet tokenized versions of those stocks (Binance bStocks, Ondo Stocks) trade on-chain all weekend. A holder carries the full weekend gap and has no instrument to shed it. We propose a weekly, fully collateralised protection contract: the holder pays a small fee on Friday and is paid the part of any Monday-open drop beyond a chosen line (capped at 20% of the protected amount), funded by a pool of liquidity providers.

Using 61,815 ticker-weekends across 50 underlyings, we show that weekend gaps are extremely fat-tailed (excess kurtosis 198), that textbook option pricing is mis-calibrated for them, and that a pooled, volatility-scaled empirical engine prices them out of sample with a loss ratio of 0.57 (target 0.67), stable across volatility regimes. Buyers who are even moderately risk-averse are better off insured on volatile names; liquidity providers earn about 7.3% a year on capital with a weekly Sharpe of 0.90, at a one-year ruin probability of 0.4% under the capital rule we enforce.

0.85%
of weekends open 5%+ lower on Monday
137,318×
more 10% drops than a normal curve predicts
0.57
out-of-sample loss ratio of the shipped engine
7.3%
a year for the pool, 2005–2026
§1

The intuition, and how it changed

We logged every belief, rejected idea and hard constraint as it happened, with the reason, in RecurOS (our research log). This section is that log, in order. The product we built is not the one we set out to build, and the differences are the point.

  1. Hunch
    Nobody trades time

    Commodity traders make money on three dimensions: space (the same barrel is worth more in Rotterdam), form (blending off-spec crude) and time (storing it and selling forward). For stocks, the time dimension has a hole in it every weekend. Tokenization is the first thing that makes that hole tradable. Our first spec, “Weekend Market”, put the idea in three steps: closed-session risk is universal and unpriced; tokenization makes it transferable; and the closed session is where equity returns are made, so whoever carries the risk is “paid twice”: the fee plus the overnight drift.

  2. First pricing
    A textbook formula

    We first priced protection with the at-the-money approximation P ≈ 0.4 · σ · S · √T. For Nvidia at 45% volatility over a 65-hour weekend that gives 1.55% of the position: too expensive to buy every week, which told us the product had to be out-of-the-money tail cover, not full hedging.

  3. Test 1
    The first backtest killed two ideas

    One stock (Apple), 2015–2017, 104 weekends. (a) A weekend carried 0.75 of a full trading day’s variance, not the ~0.2 the index literature suggested, so the “retail overestimates weekend risk and we pocket the difference” margin story shrank from 3× to 1.58×. (b) Weekend returns were slightly negative (−1.9% a year, t = −0.28), so “paid twice” was rejected. What survived was stronger: weekend gaps had excess kurtosis 43, and the lognormal model under-priced a 7% drop by a factor of thousands. We repositioned from “a carry trade on a quiet session” to “tail insurance on a risk textbook models cannot price”.

  4. Constraints
    Two rules we committed to

    From test 1 we wrote two hard constraints into the log: the price must come from data (empirical or extreme-value), never Black-Scholes; and the pool must hold capital of at least 10% of what it covers, with per-stock limits, because one weekend on one stock can exceed any thin buffer.

  5. Test 2
    The full backtest

    50 stocks and ETFs with bStock or Ondo wrappers, 61,815 weekends, four pricing engines, strictly out of sample. Section 5 and 6 describe it. It confirmed the tail, overturned test 1’s claim that Black-Scholes is uniformly too cheap (it is wrong by regime, not in one direction), and picked the engine we ship.

  6. Research
    Is it wanted, and is it new?

    A market and literature review (section 2) before any code: who carries weekend risk today, what they pay, what already exists, and what 58 academic papers say about pricing it.

  7. Structure
    Making both sides work

    Simulations of protection structures for buyers (fixed lines, spreads, yield-funded, fixed budgets) and capital structures for the pool (T-bill collateral, payout caps, junior/senior tranches, dynamic sizing). Tranches were rejected; dynamic sizing was adopted (section 4).

  8. Build
    Live on a test network

    Contracts, pricing server and app, with a full Friday-to-Monday cycle settled on-chain: a −7% Monday paid exactly the $40 the formula says on $1,000 protected at a 3% line.

What we believed at the startWhat the data saidStatus
The weekend is a quiet ~0.2 of a trading day0.19 to 0.69 of a day by stock (median 0.341)revised
Holders over-pay for weekend risk; that’s the marginOnly 1.58× in test 1; option markets do over-charge weekends, but not enough to be a business on its ownrevised
The pool is “paid twice” (fee + overnight drift)Not for single names; the index-level drift has faded since 2021rejected
Black-Scholes is good enough to price itMis-calibrated by regime; over-charges on average, under-charges in quiet periodsrejected
Weekend gaps have fat tailsExcess kurtosis 198; 10% drops 137,318× more common than normalconfirmed
A 10% capital pool is safe enoughYes if diversified (0.4% one-year ruin), not for one stock (4.6%)confirmed, with limits
§2

Does anyone want this?

Before building we asked three questions: is the risk real, who carries it today, and what do they use instead.

The risk is real, and it lives in the closed session

The most remembered equity losses of 2024–2025 were Monday gaps: Nvidia’s −17% on 27 Jan 2025 after DeepSeek news broke over the weekend (−$589 bn, the largest one-day loss in market value on record), the April 2025 tariff weekend (S&P futures limit-down, VIX 60), and the August 2024 yen carry unwind. The academic literature since French (1980) and Cooper, Cliff & Gulen (2008) finds that most of the equity premium and a large share of variance are realised while the market is closed.

Retail takes the hit; institutions pay, but not for weekends

  • In a sample of $15 bn of retail option trades (Bogousslavsky & Muravyev), protective puts are close to absent. Stop-loss orders cannot help against a gap: they execute at the first price after it.
  • Institutions spend heavily on downside protection: about $78–87 bn sits in buffer/defined-outcome ETFs, $79.5 bn of buffered annuities were sold in 2025, and roughly $225 bn of US structured notes were issued. All of it is annual and index-level. No listed product isolates Friday close to Monday open.
  • Option markets over-charge the weekend: selling Friday-to-Monday index puts earned about two-thirds of a one-day put-writing strategy’s profit (OptionMetrics), and Jones & Shemesh (2018) show equity options are systematically overpriced across non-trading periods. That over-pricing is the margin a well-priced pool can share with buyers.

On-chain, the weekend is where tokenized stocks actually trade

  • 92% of on-chain bStock volume in a July 2026 week happened while the US market was closed (Binance Research). Weekend liquidity falls 70–90% and spreads widen 19–33×, and Chainlink equity feeds publish nothing over the weekend by design.
  • The institutions already carrying this risk pay for it themselves: Venus keeps a $200,000 “bStock liquidation buffer” for weekends and listed bStocks with zero borrowing; Ethena’s framework for its bStock trade demands 10% extra margin over weekends or flattening before Friday’s close.
  • Ondo Stocks mostly cannot be minted or redeemed between Friday evening and Sunday evening, so a holder often has no way out at all. bStocks can be traded 24/7, but the token itself finds almost none of Monday’s move before Monday morning (section 6.6), so selling on Sunday doesn’t help either.
What a token holder could use todayWhy it doesn’t solve the weekend
Listed put on the stockNeeds a US brokerage; can’t settle against a token; also covers all of Monday
Buffer ETF / structured noteAnnual, index-level, off-chain
Stop-lossFills after the gap, at Monday’s price
Short perpetual futureNeeds margin and funding; weekend perp prices got Monday’s direction right only 13 of 25 times
Sell the token on SundayWidest spreads of the week, and the token hasn’t priced the news yet
Competition
As of September 2026 we found three hackathon prototypes on other chains (Arbitrum and Solana), priced with textbook models. Nothing on BNB Chain, where bStocks and Ondo Stocks make up the only tokenized-equity market above $1 bn.
Honest caveat on demand
The median weekend is uneventful: bStocks finish within about 0.2% of Monday’s open on a typical weekend. The product is for the 1 weekend in 118 that drops more than 5%, and for the holder who doesn’t want to find out which one it is. Demand for weekend-specific cover is inferred from crisis-week hedging surges, not from a survey.
§3

The history of bad weekends

We priced 29 famous weekends exactly as the engine would have on the Friday before, using only data available at the time, for a $10,000 position with protection starting at a 5% drop.

WeekendEventStockMonday openFee paid FridayLoss withoutLoss with
2008-09-12Lehman weekendAIG-41.3%$50.52−$4,135−$551
2008-09-12Lehman weekendBAC-16.3%$9.04−$1,633−$509
2011-08-05S&P downgrades the USABAC-9.4%$3.10−$942−$503
2015-08-21China Black MondayAAPL-10.3%$1.49−$1,030−$501
2015-08-21China Black MondayNFLX-14.6%$5.67−$1,463−$506
2020-03-06Oil war + COVIDXOM-12.5%$4.91−$1,254−$505
2020-03-13Fed emergency cut SundaySPY-10.4%$14.55−$1,045−$515
2020-03-13Fed emergency cut SundayAAPL-13.0%$25.96−$1,296−$526
2020-03-13Fed emergency cut SundayTQQQ-28.8%$151.38−$2,882−$651
2020-11-06Pfizer vaccine MondayZM-13.4%$12.06−$1,342−$512
2022-06-10CPI + Celsius freezeCOIN-21.3%$69.64−$2,134−$570
2022-06-10CPI + Celsius freezeMSTR-26.6%$77.72−$2,658−$578
2023-03-10SVB weekendKRE-12.6%$2.38−$1,257−$502
2023-03-10SVB weekendWAL-73.9%$26.72−$7,388−$527
2024-08-02Yen carry unwindNVDA-14.2%$18.74−$1,418−$519
2024-08-02Yen carry unwindCOIN-20.8%$20.42−$2,075−$520
2025-01-24DeepSeek MondayNVDA-12.5%$5.51−$1,249−$506
2025-01-24DeepSeek MondayAVGO-12.8%$1.34−$1,279−$501
2025-04-04Tariff MondayNVDA-7.3%$11.09−$726−$511
2018-02-02VolmageddonSPY-0.7%$1.00−$73−$74
2021-01-22GameStop weekendGME48.8%$277.39$4,879$4,602
2025-10-03AMD-OpenAI dealAMD37.5%$1.00$3,752$3,751

Figures per $10,000 position. Monday open = Friday close to Monday opening price, split- and dividend-adjusted. SVB-weekend banks shown via listed proxies (the failed banks were delisted). Loss with protection = stock move − fee + payout.

Three patterns matter for design. First, the damage is concentrated: across the 99 stock-weekends we priced, the 43 that breached a 5% line account for nearly all of the losses. Second, the fee the engine asked the Friday before was usually small, because a quiet Friday looks quiet (DeepSeek: $5.50 per $10,000), which is exactly why protection has to be bought before you know you need it. Third, some crashes happen during Monday rather than at the open (Volmageddon, February 2018: SPY opened −0.7% and closed −4.2%), so a product that settles at the open must say so plainly.

Figure 3.1
backtest/scripts/30_famous_weekends.py
Every stock in our famous-weekend set: Friday close to Monday open
Every stock in our famous-weekend set: Friday close to Monday open
Filled dots are the gap to Monday’s opening price (what the product settles on); hollow dots are the gap to Monday’s close. Everything left of the dashed line would have been paid.
§4

The two-sided model

Two roles, one contract. We named them to keep the maths human: Hermee holds a stock and buys protection; Kip provides the money that pays for it.

Hermee · the protection buyer

Holds a tokenized stock. Before the Friday bell, pays a one-off fee for one weekend. If Monday opens more than her line below Friday’s close, she is paid the difference on the amount she protected, up to 20% of it. She keeps the stock and all of any gain.

Kip · the liquidity provider

Deposits USDT in a shared pool. Every fee flows to the pool. On a bad Monday the pool pays buyers. Before any protection is sold, its maximum payout is locked, so the pool is always able to pay what it has promised.

The payoff

per $1 protected, for line b and the realised Monday gap g
gap g = P_open(Monday) / P_close(Friday) − 1 (official exchange prints, per share) payout = min( max( −b − g, 0 ), 0.20 ) example b = 3%, g = −7% → payout = 4% of the amount protected

The price (the engine we ship)

Every historical weekend gap in the universe is divided by that stock’s daily volatility over the previous 20 trading days, which puts a quiet utility and a meme stock on the same scale. The resulting pool of 61,815 standardised moves is the engine’s picture of what a weekend can do. To price a stock this week, we rescale that picture by the stock’s current volatility and average the payoff:

pooled, volatility-scaled expected payout
z_i = g_i / σ_d,i (σ_d = 20-day daily volatility known on that Friday) fair(b) = mean over all prior weekends of max( −b − σ_d(today) · z_i , 0 ) fee = max( 1.5 × fair(b) , 0.01% ) refuse if fee > 2% of the amount

The 50% margin is not profit for its own sake: the backtest says the engine’s expected payout is right on average but noisy weekend to weekend, and the margin is what keeps the pool solvent through the bad years (section 6.3). This is the same idea as Kelly & Jiang’s (2014) pooled estimate of tail risk across stocks, applied to weekend gaps.

The rules that keep it fair

  • Sales close at the Friday bell. After 16:00 New York, futures and the overnight session start to reveal the weekend’s news; anyone buying later would be buying with information.
  • Settlement uses the official Monday opening price, never the thin weekend token price, which could be pushed around for less than a payout is worth.
  • You can only protect what you hold, and corporate actions (splits, halts) cancel the weekend and refund the fee.
  • The pool sizes itself. Half of it is a safety reserve that is never put at risk. It can only sell protection whose maximum payout fits inside the other half, so after a bad weekend it automatically sells less until it recovers (constant-proportion portfolio insurance).
§5

Backtest: data and method

Everything below runs from one script and uses only public data. The design goal was that no number could have been fitted to the outcome it is scored against.

DatasetCoverageUsed for
Daily open/high/low/close, split and dividend adjusted (Yahoo)50 underlyings, 1990 or IPO → 25 Sep 2026Weekend gaps, volatility, pricing, backtests
Binance RWA token list (public API)1,925 tokenized-stock tokens; 458 Ondo and 80 bStock tokens on BNB ChainChoosing the universe: every underlying with a live wrapper
Binance spot hourly candles15 bStocks, Jun–Sep 2026, 165 token-weekendsHow tokens behave while the market is shut
US 13-week Treasury bill yield1990 → 2026Yield on the pool’s idle capital
Famous-event list29 events, 1987–2025Case studies (section 3)

Construction

  • Universe. Every underlying that has an Ondo or bStock token on BNB Chain and enough price history: 50 names, 28 of them with a bStock wrapper, 10 ETFs.
  • Weekend definition. A closed session that spans a weekend (Friday close → Monday open, or a longer holiday weekend). 61,815 such ticker-weekends; 50,059 single names and 11,756 ETFs.
  • Data hygiene. Gaps below −75% were treated as unadjusted corporate actions in the vendor feed and removed (one case, a reverse split). Real distributions such as AMC’s APE units were kept and flagged.
  • Out of sample, walk-forward. Every price for a weekend in year Y uses only data from before 1 January of Y; models are refitted yearly. The backtest runs 2005–2026 so that every engine has at least 15 years of history behind its first quote.
  • Four engines. Textbook Black-Scholes (two clocks), each stock’s own history, an extreme-value (generalised Pareto) tail fitted per stock, and the pooled volatility-scaled engine.
  • Buyer utility. We score protection by the certainty-equivalent return of a buyer with constant relative risk aversion γ = 4: a moderately cautious person. Positive means they’d rather have the protected weekend, fee included.
  • Pool risk. 20,000 simulated years made of randomly drawn 4-week blocks of real history (block bootstrap, which keeps the clustering of bad weeks), for pools of different sizes and compositions.
certainty equivalent (CRRA, γ = 4)
CE = ( mean( (1 + r_w)^(1−γ) ) )^(1/(1−γ)) − 1 r_w = weekend return with or without protection
§6

Backtest: results

6.1 Weekend gaps are extremely fat-tailed

Pooled over all stocks, the typical weekend gap has a standard deviation of 1.8%. If gaps followed a normal curve with that spread, a 3% drop would be common and a 10% drop essentially impossible. Reality is the opposite at both ends: fewer small drops, far more large ones. Excess kurtosis is 198 (a normal curve has 0).

Figure 6.1
results/10_pooled_tail.csv
How often Monday opens this far down: actual vs a normal curve
Monday opens 3%+ lowerless often than a normal curve says
What actually happened
2.47%
Normal curve, same volatility
4.78%
Monday opens 5%+ lower3.1× more often than a normal curve says
What actually happened
0.850%
Normal curve, same volatility
0.274%
Monday opens 7%+ lower81.4× more often than a normal curve says
What actually happened
0.410%
Normal curve, same volatility
1 in 19,860
Monday opens 10%+ lower137,318× more often than a normal curve says
What actually happened
0.190%
Normal curve, same volatility
1 in 72,272,566
1 in 100 millionlog scale1 in 10
Pooled over 61,815 ticker-weekends, 1990–2026. A textbook model calibrated to the average weekend is not merely a little off in the tail; it is off by orders of magnitude, and in the direction that bankrupts an insurer.
Figure 6.2
backtest/scripts/10_universe_stats.py
Distribution of weekend gaps, log scale
Distribution of weekend gaps, log scale
Single names (blue) and ETFs (green) against a normal curve with the same standard deviation (dashed red). The left tail is where the product lives.

6.2 Which pricing engine survives out of sample

The loss ratio is what the pool paid out divided by what it charged. With a 50% margin, a perfectly calibrated engine lands at 1 / 1.5 = 0.67. Below that it over-charges (buyers overpay); above 1 the pool loses money.

Figure 6.3
results/21_version_scorecard.csv
Loss ratio by engine, 5% line, 2005–2026, all stocks
Black-Scholes, calendar clock
textbook, weekend = 65.5 h
0.09
Black-Scholes, trading clock
textbook, weekend = 1 day
0.22
Own-history empirical
each stock’s past weekends
0.83
Extreme-value (GPD) tail
peaks-over-threshold
0.73
Pooled, volatility-scaled
the engine we ship
0.57
target with 50% margin (0.67) break-even (1.0)
The textbook engines charge several times what is ever paid out, so no one would buy. The two per-stock empirical engines look close on average (0.83 and 0.73) but fail in turbulent periods (table below). The pooled engine lands at 0.57: slightly conservative, which is the right side to err on.
Volatility regimeBS calendarBS tradingOwn historyExtreme valuePooled ★
Calmest fifth0.020.030.020.020.03
2nd fifth0.200.450.250.220.54
Middle fifth0.080.280.220.200.56
4th fifth0.070.250.470.410.67
Wildest fifth0.100.211.461.260.58

Loss ratio by the stock’s volatility in the 20 days before the weekend (BS = Black-Scholes; ★ = the engine we ship). A per-stock history doesn’t know volatility just tripled, so in the wildest fifth of weeks it pays out 1.3–1.5× what it charged. The pooled engine is level from the second quintile up. (In the calmest fifth almost nothing breaches, so every engine’s ratio is near zero and the 1-cent-per-$100 minimum fee does the work.)

6.3 Is the shipped engine calibrated?

Figure 6.4
results/21_calibration.csv
Predicted fair price vs what was actually paid, by decile
00115510102020perfect calibrationpredicted fair price, basis points per weekend (√ scale)what was actually paid out
Each dot is one tenth of all 45,613 priced ticker-weekends, sorted by the price the engine quoted in advance. Points near the diagonal mean “when it said a weekend was risky, it was; when it said quiet, it was”. The top decile is slightly over-priced (26.1 bp predicted, 20.4 bp paid). Hover a dot for its numbers.
Figure 6.5
results/21_loss_ratio_by_year.csv
Loss ratio by year, shipped engine, 5% line
break-even
05060708091011121314151617181920212223242526
Dashed line: payouts equal premiums (loss ratio 1). Red bars are years the pool paid out more than it collected.
Most years the pool pays out a fraction of what it collects. Two years it paid out more: 2015 (2.28×, China’s Black Monday) and 2020 (1.77×, Covid). That lumpiness is why the pool needs capital and dynamic sizing, not just a margin.

6.4 The buyer: twelve people who held a stock

HolderPeriodFees paidPaid backWorst weekendWorst, protectedWorth it?
NVDA · $100k2024–2026$24,265$46,184−$36,306−$14,689yes
AAPL · $100k2015–2017$2,041$5,189−$10,087−$4,913yes
SPY · $100k2019–2021$3,367$8,866−$11,361−$6,030yes
COIN · $50k2021–2026$15,826$9,604−$6,203−$2,186yes
TSLA · $50k2020–2026$161,496$86,674−$40,800−$35,054yes
QQQ · $100k2007–2009$2,206$577−$5,764−$5,197no
ZM · $50k2020–2021$34,358$41,145−$49,874−$18,944yes
GLD · $100k2012–2013$1,021$479−$5,057−$4,588no
MSTR · $50k2024–2026$72,770$58,125−$31,402−$14,447yes
GME · $25k2020–2021$148,474$0−$123,490−$123,490no
SPY · $100k2005–2026$40,796$25,515−$32,095−$26,052no
SMCI · $50k2023–2026$166,267$75,833−$52,767−$31,574no

Fixed number of shares bought at the start, protection bought every weekend at the engine’s price, 5% line. “Worth it” = a moderately risk-averse holder (γ = 4) prefers the protected weekends, fees included. A holder refuses any weekend where the fee would exceed 2% of the position (this happened 14 times for GameStop in 2021).

Figure 6.6
backtest/scripts/40_hermee.py
Cumulative weekend profit and loss, protected vs not
Cumulative weekend profit and loss, protected vs not
Only the closed-session part of each holding. Protection costs a slow drip and pays in lumps; the shaded area is where the protected holder is ahead.

6.5 The pool: 22 years of underwriting

Pool composition (10% capital)Return / yrWeekly SharpeWorst weekend (% of capital)Max drawdown1-yr ruin
diversified (all 50)7.3%0.90-62%-32%0.4%
ETFs only6.5%0.95-39%-26%0.1%
single names only7.4%0.85-69%-33%0.9%
crypto/meme beta10.1%0.94-80%-35%2.4%
NVDA only4.0%0.15-97%-53%4.6%
bStocks on Binance spot (15)5.8%0.45-64%-39%1.4%

$10 M of protection sold every weekend across the pool’s stocks, capital = 10% of that, idle capital earning 4%. Ruin = capital exhausted within 52 weeks, from 20,000 bootstrapped years. Diversification, not capital, is what separates a safe pool from an unsafe one.

A static pool at 10% capital survives every historical start date, but 13 March 2020 (the Sunday emergency rate cut) cost it 62% of its capital in one weekend. With the dynamic sizing we enforce (sell at most 10× the cushion above a 50% reserve), the same pool’s value never fell below 100% of its starting capital in the historical run, the reserve held in all 20,000 simulated years, and the median year returned 10.6%. We also tested splitting the pool into senior and junior slices; the senior slice was still hit in about 4% of years at every split, because a 2020-type year exceeds any junior slice. We rejected it.

Figure 6.7
backtest/scripts/50_keeper.py
Pool value by composition, 2005–2026
Pool value by composition, 2005–2026
Multiple of starting capital (log scale). Bottom panel: the diversified pool’s weekly result as a percentage of capital. Many small gains, a few large losses: the signature of selling insurance.

6.6 What the token does while the market is shut

Across 165 bStock weekends, the token’s move by Monday 13:00 UTC (30 minutes before the open) explained Monday’s gap almost perfectly (slope 0.95, correlation 0.96), but its move by Sunday night explained essentially none of it (slope 0.02). Price discovery happens in Monday pre-market, when futures and the overnight session trade. Thirty minutes before the bell the token sat within 0.31% of the official open on a typical weekend and within 0.84% at the 90th percentile.

Figure 6.8
backtest/scripts/60_token_weekend.py
Token move before the open vs the actual Monday gap
Token move before the open vs the actual Monday gap
Blue: token move by Monday pre-market. Orange: by Sunday night. The blue dots sit on the diagonal; the orange ones don’t. Selling the token on Sunday does not protect you, and settling on the token price would invite manipulation.
§7

Conclusions for both sides

A two-sided market only works if both sides are better off. The backtest says they are, for a clear set of buyers and under a clear set of rules for the pool.

Why Hermee buys
  • On volatile names the protection is worth more than it costs to a cautious holder. Holding $100k of Nvidia 2024–2026 she paid $24,265 and was paid $46,184; her worst Monday went from −$36,306 to −$14,689.
  • Zoom through the vaccine Monday: worst weekend −$49,874 → −$18,944.
  • On calm index funds in calm periods it is a small tax for little relief (21 years of SPY: 0.20% a year). We say so in the app rather than hide it.
  • The shape that was worth it for every kind of stock was a fixed weekly budget that buys the tightest line it can afford that Friday.
Why Kip provides capital
  • The pool keeps what it doesn’t pay out: with a loss ratio of 0.57, about 43% of every fee is profit over time.
  • A diversified pool returned 7.3% a year on capital 2005–2026 (10% since 2015), with a weekly Sharpe of 0.90, losing money on about 6% of weekends.
  • The risk is real and named: one weekend in 2020 cost a static pool 62% of its capital. Dynamic sizing and a 50% reserve keep that from becoming ruin.
  • It prices below the alternatives buyers have (listed Monday puts, 10% extra weekend margin), so the pool is sharing the weekend over-pricing that already exists, not inventing a new one.
Where both sides agree
Buyers value the tail more than its average cost (they are risk-averse and the tail is fat); the pool, holding many uncorrelated weekends and a reserve, can carry that tail at its average cost plus a margin. The margin fits between the two. That gap is the product.
§8

Technology

Kept deliberately simple: research and production share the same model, and nothing in between is hand-tuned.

PartBuilt withWhat it does
Research pipelinePython: pandas, NumPy, SciPy, MatplotlibData pulls, the four engines, backtests, bootstrap, all charts on this page
Market dataBinance Web3 RWA API, Binance spot API, Yahoo FinanceWhich tokens exist, live prices and volatility, market open/closed status
ContractsSolidity, OpenZeppelin, HardhatPool, protection market and price oracle; verified on BscScan
Pricing serverNode.js, TypeScript, viem, MongoDBRuns the shipped engine live, signs each price, posts Friday and Monday prices, settles
AppNext.js, wagmi, RainbowKitThe interface you’re reading
Research logRecurOSEvery decision and rejected idea, with its reason, in order
NetworksBSC Testnet (via Alchemy)Where it runs today

The server runs the same pooled, volatility-scaled formula as the backtest, from the same 61,815-weekend history, with this week’s volatility measured live from the bStock’s own trading. Each price is signed, so the contract accepts only prices the engine produced, and only before the Friday bell.

§9

How far to trust the numbers

What we validated, what we corrected, and what we know is biased.

Validated

  • Out of sample. No price in any table was fitted on the payouts it is scored against; every engine is refitted once a year on prior data only.
  • Calibration. The shipped engine’s predicted and realised payouts line up by decile (figure 6.4), and its loss ratio is level across volatility regimes from the second quintile up.
  • Stress. Pool results come from 20,000 bootstrapped years and from starting the pool on the worst historical dates (just before 2008, 2015, 2020 and 2024).
  • On-chain. A full cycle was run on the live contracts: $1,000 protected at a 3% line, Monday −7%, payout exactly $40.00 as the formula says.
  • Consistent with the literature. Pooling tails across stocks (Kelly & Jiang 2014), scaling by current volatility (McNeil & Frey 2000), treating the weekend as roughly one trading day of variance (French & Roll 1986), and the finding that weekend options are overpriced (Jones & Shemesh 2018) all match what we built.

Corrected along the way

While testing the live app we found the server was measuring a bStock’s volatility over all seven days of its 24/7 trading and annualising it as if every day were a trading day. Quiet Saturdays and Sundays pulled the estimate down (Nvidia read 21% against 46% on the exchange), which would have under-priced protection by up to half. The live estimate now uses weekday closes only, matching how the engine was calibrated. We report it because this is the kind of error a backtest cannot catch and only a live system can.

Known limitations

  • Survivorship. The universe is today’s tokenized list, so stocks that failed (SVB, First Republic, Lehman) are missing. The measured tail is therefore a lower bound on the real one.
  • Few extreme events. Most of the pool’s losses come from a handful of weekends; any figure that depends on them (worst weekend, ruin) has wide uncertainty even with 22 years of data.
  • Opening prints are noisy. The official open is the reference the market publishes, but opening auctions are noisier than closes. A 15-minute average is the next thing to test.
  • Scheduled events. Earnings weekends are known jumps, not tail risk; the production rules refuse or surcharge them rather than rely on the model.
  • Token history is short. bStocks launched in June 2026; the token-behaviour results rest on 165 weekends, and Ondo’s on-chain history could not be retrieved.
  • Vendor data. Daily prices come from a free vendor with occasional corporate-action errors; we removed the one we found and flagged the rest.
Reproduce it
The full pipeline, from data download to every chart, runs with one command in the repository (backtest/run_all.ps1). Results, charts and a longer technical report live alongside it.
§10

References

  1. French, K. (1980). Stock returns and the weekend effect. Journal of Financial Economics 8(1).
  2. French, K. & Roll, R. (1986). Stock return variances: the arrival of information and the reaction of traders. Journal of Financial Economics 17(1).
  3. Cooper, M., Cliff, M. & Gulen, H. (2008). Return differences between trading and non-trading hours: like night and day. SSRN 1004081.
  4. Lou, D., Polk, C. & Skouras, S. (2019). A tug of war: overnight versus intraday expected returns. Journal of Financial Economics 134(1).
  5. Boyarchenko, N., Larsen, L. & Whelan, P. (2023). The overnight drift. Review of Financial Studies 36(9); and (2026) The disappearing overnight drift, Liberty Street Economics.
  6. McNeil, A. & Frey, R. (2000). Estimation of tail-related risk measures for heteroscedastic financial time series: an extreme value approach. Journal of Empirical Finance 7.
  7. Kelly, B. & Jiang, H. (2014). Tail risk and asset prices. Review of Financial Studies 27(10).
  8. Jones, C. & Shemesh, J. (2018). Option mispricing around nontrading periods. Journal of Finance 73(2).
  9. Black, F. & Perold, A. (1992). Theory of constant proportion portfolio insurance. Journal of Economic Dynamics and Control 16.
  10. Balder, S., Brandl, M. & Mahayni, A. (2009). Effectiveness of CPPI strategies under discrete-time trading. Journal of Economic Dynamics and Control 33.
  11. Sydnor, J. (2010). (Over)insuring modest risks. American Economic Journal: Applied Economics 2(4).
  12. Bogousslavsky, V. & Muravyev, D. An anatomy of retail option trading. SSRN 4682388.
  13. Binance Research (2026). Tokenized stocks: weekend price discovery analysis.

Nothing here is investment advice. Figures are historical and hypothetical; the product runs on test networks. Back to the plain-English story.