unlock_price_path
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-25, from figma-lockup-expiration.
| session_offset | sep_2025_pct | nov_2025_pct | aug_2026_pct |
|---|---|---|---|
| -5 | 30.61 | 8.39 | 1.46 |
| -4 | 28.81 | 4.76 | 3.96 |
| -3 | 20.18 | -0.37 | 13.14 |
| -2 | 24.87 | -4.28 | 17.44 |
| -1 | 0 | 0 | 0 |
| 0 | 0.55 | -3.76 | -2.84 |
| 1 | -3.83 | -3.39 | 5.92 |
| 2 | -2.27 | -3.26 | 3.75 |
| 3 | -6.41 | -4.31 | -0.92 |
| 4 | 2.57 | -11.79 | 9.93 |
| 5 | -2.73 | -16.2 | 6.05 |
- Rows × columns
- 11 × 4
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
session_offset |
number | -5 to 5 | |
sep_2025_pct |
number | -6.41 to 30.61 | percent |
nov_2025_pct |
number | -16.2 to 8.39 | percent |
aug_2026_pct |
number | -2.84 to 17.44 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH bars AS
(
SELECT
date,
close,
row_number() OVER (ORDER BY date) AS seq
FROM
(
SELECT
date,
argMax(toFloat64(close), _ingest_time) AS close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'FIG'
AND date >= '2025-07-31'
GROUP BY date
)
),
anchors AS
(
SELECT
anyIf(seq, date = '2025-09-05') AS employee_release,
anyIf(seq, date = '2025-11-07') AS ipo_lockup_end,
anyIf(seq, date = '2026-08-07') AS final_tranche,
anyIf(close, date = '2025-09-04') AS employee_base,
anyIf(close, date = '2025-11-06') AS ipo_base,
anyIf(close, date = '2026-08-06') AS final_base
FROM bars
),
offsets AS
(
SELECT arrayJoin(range(11)) - 5 AS session_offset
)
SELECT
o.session_offset AS session_offset,
round(100 * (anyIf(b.close, toInt32(b.seq) = toInt32(a.employee_release) + o.session_offset) / any(a.employee_base) - 1), 2) AS sep_2025_pct,
round(100 * (anyIf(b.close, toInt32(b.seq) = toInt32(a.ipo_lockup_end) + o.session_offset) / any(a.ipo_base) - 1), 2) AS nov_2025_pct,
round(100 * (anyIf(b.close, toInt32(b.seq) = toInt32(a.final_tranche) + o.session_offset) / any(a.final_base) - 1), 2) AS aug_2026_pct
FROM offsets AS o
CROSS JOIN bars AS b
CROSS JOIN anchors AS a
GROUP BY session_offset
ORDER BY session_offset
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.