Strasmore Research
শেখা Matt Connorদ্বারা Matt Connor

Lockup expiration date কীভাবে খুঁজবেন

IPO prospectus-এ lockup expiration date কোথায় লেখা থাকে, EDGAR-এ কোন 2টি অংশ পড়বেন এবং কেন প্রথম লেনদেন থেকে 180 দিন গুনলে ভুল হতে পারে।

একটি IPO prospectus-এ lockup expiration date লেখা থাকে। এটি খুঁজে পাওয়ার দ্রুততম উপায় হলো EDGAR-এ issuer-এর final prospectus খুলে 2টি জায়গা পড়া: "Shares Eligible for Future Sale" শিরোনামের অংশ এবং "Underwriting"-এর ভেতরের "Lock-Up Agreements" আলোচনা। এই 2টি অংশে কত শেয়ার বিক্রিযোগ্য হবে এবং কোন দিনে বিধিনিষেধ উঠবে, তা দেওয়া থাকে। নিচের গণনার নিয়মেই প্রকাশিত তারিখে সবচেয়ে বেশি ভুল হয়। এরপরের release conditions-এর কারণে মুদ্রিত তারিখটি কখনও কার্যকর তারিখ নাও হতে পারে।

আপনি যদি আগে ধারণাটি বুঝতে চান, IPO lockup কী-তে চুক্তিটি কী করে এবং কারা এতে সই করেন, তা ব্যাখ্যা করা হয়েছে। এই পৃষ্ঠাটি তারিখ খোঁজার জন্য।

Lockup expiration date কোথায় লেখা থাকে

প্রতিটি US IPO একই ধরনের নথিপত্রের রেকর্ড রেখে যায়। EDGAR full text search খুলুন, কোম্পানির নাম খুঁজুন এবং তার filing list খুলুন।

  • S-1 হলো registration statement। প্রথম public draft থেকেই এতে lockup-এর ভাষা থাকে। সংশোধিত নথি S-1/A হিসেবে আসে, এবং একটির সঙ্গে অন্যটির শর্ত বদলাতে পারে।
  • 424B4 হলো final prospectus, যা pricing-এর 2 business day-এর মধ্যে দাখিল হয়। বাস্তবে সম্পন্ন হওয়া deal-এর সঙ্গে এটিই মেলে। এটি পড়ুন।

নথির ভেতরে "lock-up" এবং "lockup"—দুই বানানেই খুঁজুন। Filing-এ hyphen ব্যবহারে একরূপতা নেই। 3টি section-এ উত্তরটি থাকে।

  • Shares Eligible for Future Sale হলো supply schedule। এতে কত শেয়ার restricted এবং প্রতিটি block কোন তারিখে বিক্রির জন্য eligible হবে, তা থাকে। আপনি যে বাক্যটি খুঁজছেন, তা সাধারণত এমন: "beginning 181 days after the date of this prospectus"।
  • Underwriting, যার শিরোনাম কখনও "No Sales of Similar Securities" হয়, হলো contract। এতে কারা সই করেছেন, তারা কী করতে পারবেন না, কোন carve-out আছে এবং কোন underwriter আগেভাগে শেয়ার release করার ক্ষমতা রাখে, তা বলা হয়।
  • Risk Factors-এ substantial future sales সম্পর্কিত risk factor-এর ভেতরে schedule-টি প্রায়ই আরও সহজ ভাষায় পুনরায় দেওয়া হয়।

একটি কোম্পানি যে filing দাখিল করে-তে form alphabet-এর বাকি অংশ ব্যাখ্যা করা হয়েছে।

প্রথম trading day নয়, pricing date থেকে গণনা করুন

ঘড়ি শুরু হয় "the date of this prospectus" থেকে। এটি হলো pricing date—যে সন্ধ্যায় underwriter-রা price নির্ধারণ করেন। Stock পরের session-এ open হয়। Chart-এর প্রথম bar থেকে 180 দিন গুনলে আপনি 1 দিন দেরিতে পৌঁছাবেন।

গণনাটি trading session নয়, calendar day ধরে করতে হয়। ফলে তারিখটি Saturday-এও পড়তে পারে। 9টি পরিচিত listing-এর ক্ষেত্রে, প্রতিটি deal-এর pricing date থেকে day 180 নেওয়া হয়েছে:

কুয়েরিপ্রাইসিং তারিখ থেকে গণনা করা 180তম দিন: 9টি US লিস্টিং
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH ipos AS (
    SELECT tupleElement(pair, 1) AS ticker,
           toDate(tupleElement(pair, 2)) AS pricing_date
    FROM (
        SELECT arrayJoin([('LYFT', '2019-03-28'), ('UBER', '2019-05-09'),
                          ('DASH', '2020-12-08'), ('ABNB', '2020-12-09'),
                          ('HOOD', '2021-07-28'), ('RIVN', '2021-11-09'),
                          ('CAVA', '2023-06-14'), ('BIRK', '2023-10-10'),
                          ('RDDT', '2024-03-20')]) AS pair
    )
),
sessions AS (
    SELECT DISTINCT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2019-03-01 00:00:00')
      AND window_start < toDateTime('2026-08-01 00:00:00')
)
SELECT i.ticker AS ticker,
       formatDateTimeInJodaSyntax(i.pricing_date, 'MMM d, yyyy') AS pricing_date_label,
       formatDateTimeInJodaSyntax(addDays(i.pricing_date, 180), 'MMM d, yyyy') AS day_180_label,
       formatDateTime(addDays(i.pricing_date, 180), '%W') AS day_180_weekday,
       countIf(s.session_date > i.pricing_date
               AND s.session_date <= addDays(i.pricing_date, 180)) AS market_opens,
       formatDateTimeInJodaSyntax(
           minIf(s.session_date, s.session_date >= addDays(i.pricing_date, 180)),
           'MMM d, yyyy') AS next_open_session_label
FROM ipos AS i
CROSS JOIN sessions AS s
GROUP BY i.ticker, i.pricing_date
ORDER BY (minIf(s.session_date, s.session_date >= addDays(i.pricing_date, 180))
          > addDays(i.pricing_date, 180)) DESC,
         i.pricing_date ASC
Run this yourself

180 calendar day-এ 122টি market open ছিল DASH এবং 123-এর জন্য RDDT। এর বদলে 180 trading day গুনলে প্রকৃত তারিখের প্রায় 2 মাস পরে পৌঁছাবেন। এটিই এই বিষয়ে ভুল করার আরেকটি প্রচলিত উপায়।

যে গণনার ফল closed market day-এ পড়ে, panel-এ সেগুলো আগে রাখা হয়েছে। DASH-এর pricing হয়েছিল Dec 8, 2020-এ। এর day 180 পড়েছিল Sunday-এ। তার পরের প্রথম session ছিল Jun 7, 2021। Contract date-এই শেয়ার বিক্রিযোগ্য হয়। তবে পরবর্তী open-এর আগে সেগুলো হাতবদল হতে পারে না।

180 দিন একটি প্রচলিত মেয়াদ, নিয়ম নয়

180 দিনের মেয়াদ market standard। এটি প্রথা, বাধ্যতামূলক নিয়ম নয়। Filing-এ আপনি যে ভিন্ন মেয়াদগুলো দেখতে পারেন:

  • 90 দিন, ছোট deal-এ যা বেশি দেখা যায়।
  • 365 দিন, কখনও founders বা control holders-এর ক্ষেত্রে প্রযোজ্য হয়, যখন একই deal-এ অন্য সবার জন্য মেয়াদ 180 দিন।
  • Staged releases, যেখানে একটি অংশ এক তারিখে এবং বাকি অংশ অন্য তারিখে মুক্ত হয়। Prospectus-এ প্রতিটি tranche-এর share count ও date লেখা থাকে।
  • Group অনুযায়ী আলাদা শর্ত। Officers and directors, pre-IPO funds এবং employees একই deal-এ আলাদা agreement-এ সই করতে পারেন। সেক্ষেত্রে একটিমাত্র lockup expiration date থাকে না।

Share count-ও date-এর মতোই গুরুত্বপূর্ণ। Restricted block-টির সঙ্গে stock-এর float তুলনা করে দেখুন, schedule অনুযায়ী কাগজে কতটা tradeable supply যুক্ত হবে।

মুদ্রিত তারিখের পরে তারিখ কীভাবে বদলে যায়

  • একটি waiver। Named underwriter-রা লিখিতভাবে holders-কে আগেভাগে release করতে পারেন। Marketed secondary offering-এর সঙ্গে তারা প্রায়ই এটি করেন। এতে original filing-এর কোনো পরিবর্তন হয় না।
  • Early release conditions। অনেক সাম্প্রতিক agreement-এ বলা থাকে, একটি নির্দিষ্ট সময়সীমার মধ্যে নির্দিষ্ট সংখ্যক দিন stock IPO price-এর ওপর নির্ধারিত premium-এ বা তার বেশি দরে trade করলে একটি tranche মুক্ত হবে। তবে এটি প্রায়ই প্রথম বা দ্বিতীয় quarterly earnings release-এর পর কার্যকর হয়।
  • Earnings window খোলা। Agreement-এ প্রায়ই earnings report-এর পর নির্দিষ্ট সংখ্যক trading day পার হলে release window খোলার কথা থাকে। ফলে effective date anniversary count নয়, earnings calendar-এর ওপর নির্ভর করে।
  • নতুন registration। Resale registration statement বা shelf থেকে takedown নিজস্ব schedule অনুযায়ী একটি block-কে market-এ আনতে পারে।

প্রতিটি বিষয় কোনো filing বা company announcement-এ থাকে। কোনো filing-এর সমর্থন ছাড়া calendar site-এ থাকা তারিখ অনুমানমাত্র।

Day 180-এর আশপাশে tape কী করে

Volume হলো পর্যবেক্ষণযোগ্য অংশ। এখানে একটি listing-এর প্রথম বছর week by week অনুসরণ করা হয়েছে: Reddit, যার pricing হয়েছিল March 20, 2024-এ:

কুয়েরিসাপ্তাহিক গড় দৈনিক ভলিউম: Reddit-এর ট্রেডিংয়ের প্রথম বছর, March 2024 থেকে March 2025
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(sum(volume)) AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'RDDT'
      AND window_start >= toDateTime('2024-03-21 00:00:00')
      AND window_start < toDateTime('2025-03-21 00:00:00')
    GROUP BY session_date
)
SELECT toMonday(session_date) AS week,
       round(avg(shares) / 1e6, 2) AS avg_daily_volume_m
FROM daily
GROUP BY week
ORDER BY week
Run this yourself

Chart-এ 53 সপ্তাহ রয়েছে। প্রথম অংশে প্রতি session-এ গড় volume ছিল 32.21 million share। শেষ অংশে তা ছিল 12.16 million। Pricing date থেকে দূরত্ব অনুযায়ী একই session-গুলো group করলে lockup reader-এর গুরুত্বপূর্ণ window-গুলোর পরিমাণ নির্ণয় করা যায়:

কুয়েরিReddit শেয়ারের ভলিউম, March 20, 2024 প্রাইসিং তারিখ থেকে দিন হিসেবে গণনা করা উইন্ডো অনুযায়ী
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(sum(volume)) AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'RDDT'
      AND window_start >= toDateTime('2024-03-21 00:00:00')
      AND window_start < toDateTime('2025-03-21 00:00:00')
    GROUP BY session_date
)
SELECT multiIf(dateDiff('day', toDate('2024-03-20'), session_date) <= 30, 'Days 1-30',
               dateDiff('day', toDate('2024-03-20'), session_date) <= 90, 'Days 31-90',
               dateDiff('day', toDate('2024-03-20'), session_date) <= 170, 'Days 91-170',
               dateDiff('day', toDate('2024-03-20'), session_date) <= 200, 'Days 171-200',
               'Days 201-365') AS window_label,
       round(avg(shares) / 1e6, 2) AS avg_daily_volume_m,
       round(max(shares) / 1e6, 2) AS busiest_session_m
FROM daily
GROUP BY window_label
ORDER BY min(dateDiff('day', toDate('2024-03-20'), session_date))
Run this yourself

Day 1 থেকে 30-এ প্রতি session-এ গড় volume ছিল 10.17 million share। Day 91 থেকে 170-এ, অর্থাৎ day 180-এর দিকে এগিয়ে যাওয়া সময়ে, গড় ছিল 3.39 million। Day 171 থেকে 200-এ, অর্থাৎ day 180-কে ঘিরে থাকা 4 সপ্তাহে, গড় ছিল 3.92 million। এই সময়ে সবচেয়ে বেশি ব্যস্ত session-এ volume ছিল 7.2 million share।

এটিকে একটি কোম্পানির record হিসেবে পড়ুন, কোনো সাধারণ নিয়ম হিসেবে নয়। এবার 180 দিনের প্রচলিত মেয়াদকে assumption ধরে 9টি listing-এ প্রয়োগ করুন:

কুয়েরি180তম দিনের আশেপাশের 4 সপ্তাহ বনাম তার আগের সপ্তাহগুলোর ভলিউম: 9টি US লিস্টিং
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH ipos AS (
    SELECT tupleElement(pair, 1) AS ticker,
           toDate(tupleElement(pair, 2)) AS pricing_date
    FROM (
        SELECT arrayJoin([('LYFT', '2019-03-28'), ('UBER', '2019-05-09'),
                          ('DASH', '2020-12-08'), ('ABNB', '2020-12-09'),
                          ('HOOD', '2021-07-28'), ('RIVN', '2021-11-09'),
                          ('CAVA', '2023-06-14'), ('BIRK', '2023-10-10'),
                          ('RDDT', '2024-03-20')]) AS pair
    )
),
daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(sum(volume)) AS shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('LYFT', 'UBER', 'DASH', 'ABNB', 'HOOD', 'RIVN', 'CAVA', 'BIRK', 'RDDT')
      AND window_start >= toDateTime('2019-07-01 00:00:00')
      AND window_start < toDateTime('2024-11-01 00:00:00')
    GROUP BY ticker, session_date
)
SELECT d.ticker AS ticker,
       round(avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 120 AND 170) / 1e6, 2) AS baseline_volume_m,
       round(avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 171 AND 200) / 1e6, 2) AS window_volume_m,
       round(avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 171 AND 200)
             / avgIf(d.shares, dateDiff('day', i.pricing_date, d.session_date) BETWEEN 120 AND 170), 2) AS volume_ratio
FROM daily AS d
INNER JOIN ipos AS i ON d.ticker = i.ticker
GROUP BY d.ticker
HAVING countIf(dateDiff('day', i.pricing_date, d.session_date) BETWEEN 120 AND 170) >= 20
   AND countIf(dateDiff('day', i.pricing_date, d.session_date) BETWEEN 171 AND 200) >= 10
ORDER BY volume_ratio DESC
Run this yourself

এই ratio-তে day 171 থেকে 200-এর average daily volume-কে day 120 থেকে 170-এর একই পরিমাপ দিয়ে ভাগ করা হয়েছে। 1-এর কাছাকাছি reading-এর অর্থ হলো day 180-এর আশপাশের সপ্তাহগুলো আগের সপ্তাহগুলোর মতোই ছিল। UBER-এর ratio ছিল সর্বোচ্চ, 4.53x। এর baseline ছিল প্রতি session-এ 8.47 million share। LYFT-এর ratio ছিল সর্বনিম্ন, 0.93x। 9টি deal-এ একই assumption বিস্তৃত ফল দেখায়। তাই convention-এর বদলে filing পড়া জরুরি।

Registered offering-এর announcement market close-এর পরে আসে। ফলে সবার দেখা প্রথম print হলো পরের সকালের open। Overnight gap-এ এই প্রক্রিয়া ব্যাখ্যা করা হয়েছে।

তারিখটির আশপাশে Secondary offering এবং Form 144

Release-এর সঙ্গে সম্পর্কিত 2 ধরনের filing দেখা যায়।

  • একটি registered offering। Rule 424(b)(5)-এর অধীনে দাখিল করা prospectus supplement, অথবা existing share resale register করার জন্য নতুন S-1, বোঝায় যে holders একবারে exchange-এ বিক্রি না করে underwriter-এর মাধ্যমে বিক্রি করছেন। নথিতে selling holder এবং তাদের share count দেওয়া থাকে।
  • Form 144। কোনো affiliate restricted বা control stock বিক্রির প্রস্তাব দিলে, 3 মাসের যেকোনো সময়ে বিক্রির পরিমাণ 5,000 share বা $50,000 ছাড়ালে notice দাখিল করতে হয়। 2023 সাল থেকে এই notice-গুলো EDGAR-এ electronic filing হিসেবে দাখিল হয়। ফলে অন্য সব নথির পাশে এগুলোও search করা যায়। Rule 144 অনুযায়ী affiliate-এর quarterly volume outstanding share-এর 1% অথবা notice-এর আগের 4 সপ্তাহের average weekly reported volume—এই 2টির মধ্যে যেটি বেশি, তার বেশি হতে পারে না।

Form 4 filing-এ insiders বাস্তবে কী বিক্রি করেছেন, তা নথিবদ্ধ হয়। একসঙ্গে পড়লে Form 144 হলো intent এবং Form 4 হলো receipt।

2026 সালের class-এও একই paperwork

আপনার প্রয়োজনীয় নামের 424B4 খুলুন। 2টি section পড়ুন। Prospectus date থেকে গণনা করুন। এরপর দেখুন agreement-এ early release condition আছে কি না। 2026 সালের IPO market-এ বছরের প্রথমার্ধের deal flow আলোচনা করা হয়েছে। SpaceX listing-এর প্রথম মাস-এ debut-এর পরের সপ্তাহগুলোতে tape কী করেছে, তা অনুসরণ করা হয়েছে।

প্রকাশিত upcoming date-এর table নিয়ে একটি সতর্কতা আছে। বেশিরভাগ table-এ listing date-এর সঙ্গে 180 দিন যোগ করে তারিখ তৈরি করা হয়। এতে উপরের 2টি ভুলই পুনরাবৃত্তি হয়: 1 দিনের offset এবং প্রতিটি holder-এর ক্ষেত্রে convention প্রযোজ্য—এই assumption। কোনো filing-এর সমর্থন থাকলেই একটি date মূল্যবান। এই কারণেই এই পৃষ্ঠায় কোনো forecast table নেই।

Lockup expiration date FAQ

S-1-এ lockup expiration date কোথায় থাকে?

2টি section-এ। "Shares Eligible for Future Sale"-এ কত শেয়ার কখন মুক্ত হবে, তার schedule থাকে। "Underwriting"-এর ভেতরের "Lock-Up Agreements" অংশে contract-এর শর্ত এবং waiver দিতে পারেন এমন underwriter-দের নাম থাকে। Final 424B4 prospectus-এ priced deal-এর সংখ্যা সহ 2টি বিষয়ই পুনরায় দেওয়া থাকে।

Lockup কি IPO date থেকে শুরু হয়, নাকি pricing date থেকে?

Pricing date থেকে। Filing-এ সাধারণত "the date of this prospectus"-এর পর কত দিন, সেইভাবে শর্ত লেখা থাকে। এটি হলো deal pricing-এর দিন, trading open হওয়ার 1 session আগে। এইভাবে গুনলে day 180 122টি market open-এর সময়ে পড়েছিল DASH-এর জন্য। তাদের day 180 পড়েছিল Jun 6, 2021-এ।

প্রতিটি IPO lockup কি 180 দিনের?

না। 180 দিনের মেয়াদ একটি convention। 90 এবং 365 দিনের মেয়াদও দেখা যায়। Staged release হলে holding-এর একটি অংশ আগে মুক্ত হতে পারে। একই deal-এ holder group অনুযায়ী আলাদা agreement-ও হতে পারে।

Prospectus-এ লেখা তারিখের আগেই কি lockup শেষ হতে পারে?

হ্যাঁ। Underwriter-রা লিখিতভাবে waiver দিতে পারেন। অনেক agreement-এ trading day-এর একটি window-এ share price-এর ভিত্তিতে early release condition থাকে। এটি প্রায়ই earnings release-এর পরের সময়ের সঙ্গে যুক্ত থাকে। যেকোনো early release filing বা company announcement-এ যাচাই করুন।

Lockup শেষ হওয়ার পরে insiders শেয়ার বিক্রি করেছেন কি না কীভাবে বোঝা যায়?

Form 144 notice-এ affiliate-এর বিক্রির অভিপ্রায় নথিবদ্ধ হয়। Form 4 filing-এ সম্পন্ন insider transaction নথিবদ্ধ হয়। Registered secondary offering হলে তা 424(b)(5) supplement বা resale S-1 হিসেবে দেখা যায়। এতে selling holder-দের নাম থাকে।


উপরের প্রতিটি figure session data-এর ওপর চালানো stored query থেকে এসেছে। প্রতিটি panel-এর নিচে SQL দেওয়া আছে। Ticker পরিবর্তন করুন, day window বদলান এবং Strasmore terminal-এ একই গণনা চালান।