{"slug":"figma-lockup-expiration","qid":"unlock_ladder_volume","label":"unlock_ladder_volume","post_title":"figma-lockup-expiration","post_url":"/blog/figma-lockup-expiration#q-unlock_ladder_volume","columns":["session_offset","sep_2025_ratio","nov_2025_ratio","aug_2026_ratio"],"rows":[{"session_offset":-5,"sep_2025_ratio":0.2,"nov_2025_ratio":0.74,"aug_2026_ratio":1.13},{"session_offset":-4,"sep_2025_ratio":0.27,"nov_2025_ratio":0.79,"aug_2026_ratio":1.57},{"session_offset":-3,"sep_2025_ratio":0.78,"nov_2025_ratio":0.77,"aug_2026_ratio":1.17},{"session_offset":-2,"sep_2025_ratio":1.42,"nov_2025_ratio":1.57,"aug_2026_ratio":1.99},{"session_offset":-1,"sep_2025_ratio":3.66,"nov_2025_ratio":2.48,"aug_2026_ratio":2.26},{"session_offset":0,"sep_2025_ratio":2.59,"nov_2025_ratio":3.6,"aug_2026_ratio":1.29},{"session_offset":1,"sep_2025_ratio":1.16,"nov_2025_ratio":1.33,"aug_2026_ratio":1.02},{"session_offset":2,"sep_2025_ratio":0.93,"nov_2025_ratio":0.97,"aug_2026_ratio":0.7},{"session_offset":3,"sep_2025_ratio":1.14,"nov_2025_ratio":0.53,"aug_2026_ratio":0.58},{"session_offset":4,"sep_2025_ratio":1.57,"nov_2025_ratio":1.07,"aug_2026_ratio":1},{"session_offset":5,"sep_2025_ratio":1,"nov_2025_ratio":0.91,"aug_2026_ratio":0.51}],"shape":"ranking","sql":"WITH bars AS\n(\n    SELECT\n        date,\n        volume,\n        close,\n        avg(volume) OVER (ORDER BY date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS avg_volume_20,\n        row_number() OVER (ORDER BY date)                                          AS seq\n    FROM\n    (\n        SELECT\n            date,\n            argMax(toFloat64(volume), _ingest_time) AS volume,\n            argMax(toFloat64(close), _ingest_time)  AS close\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'FIG'\n          AND date >= '2025-07-31'\n        GROUP BY date\n    )\n),\nanchors AS\n(\n    SELECT\n        anyIf(seq, date = '2025-09-05') AS employee_release,\n        anyIf(seq, date = '2025-11-07') AS ipo_lockup_end,\n        anyIf(seq, date = '2026-08-07') AS final_tranche\n    FROM bars\n),\noffsets AS\n(\n    SELECT arrayJoin(range(11)) - 5 AS session_offset\n)\nSELECT\n    o.session_offset AS session_offset,\n    round(anyIf(b.volume / b.avg_volume_20, toInt32(b.seq) = toInt32(a.employee_release) + o.session_offset), 2) AS sep_2025_ratio,\n    round(anyIf(b.volume / b.avg_volume_20, toInt32(b.seq) = toInt32(a.ipo_lockup_end)   + o.session_offset), 2) AS nov_2025_ratio,\n    round(anyIf(b.volume / b.avg_volume_20, toInt32(b.seq) = toInt32(a.final_tranche)    + o.session_offset), 2) AS aug_2026_ratio\nFROM offsets AS o\nCROSS JOIN bars AS b\nCROSS JOIN anchors AS a\nGROUP BY session_offset\nORDER BY session_offset","computed_at":"2026-09-25T15:02:34.137963+00:00","elapsed":0.099360093}