Strasmore Research
تعلیمی مواد Matt Connorاز Matt Connor · اپ ڈیٹ شدہ 2026-07-25

ماہانہ اسٹاک ریٹرن کیسے ناپی جاتی ہے

ماہانہ ریٹرن ان انتخابات پر منحصر ہے: کون سی دو قیمتیں، dividends شامل ہوں یا نہیں، اور price series splits کے لیے adjust ہو۔ ہر طریقہ حقیقی ڈیٹا پر۔

اگر آپ پوچھیں کہ کوئی اسٹاک "جون میں نے کیا کیا" تو آپ کو مختلف ذرائع سے مختلف اعداد ملیں گے — اور یہ سب درست ہوں گے۔ ماہانہ اسٹاک ریٹرن ان انتخابات سے طے ہوتی ہے جو زیادہ تر لوگ کبھی نہیں دیکھتے: کون سی دو قیمتیں مہینے کی حدوں کا تعین کرتی ہیں، کیا dividends شامل کی جائیں، اور کیہ price series کو splits کے لیے adjust کیا گیا تھا۔ یہ صفحہ مسابقتی روایات کو حقیقی ٹیپ پر، ایک ساتھ، چلاتا ہے، تاکہ یہ اختلافات پراسرار نہ رہیں۔

کلوز ٹو کلوز: معیاری روایت

انڈیکس فراہم کرنے والوں، فنڈ فیکٹ شیٹس، اور زیادہ تر کوٹ پیجز کی استعمال کردہ روایت یہ ہے: مہینے کی ریٹرن پچھلے مہینے کے آخری باقاعدہ سیشن کے کلوزنگ پرائس سے اس مہینے کے آخری کلوز تک ہوتی ہے۔ مئی کا آخری کلوز جون کا آغاز ہے۔ حساب کتاب ایک لائن کا ہے — اختتامی قیمت مائنس ابتدائی قیمت، اسے ابتدائی قیمت سے تقسیم کیا جاتا ہے۔ پہلے ایک سادہ مثال: ایک اسٹاک جو مئی میں $50.00 پر اختتام پذیر ہوتا ہے اور جون میں $53.50 پر، اس نے مہینے کے لیے (53.50 − 50.00) ÷ 50.00 = 0.07، یا 7 فیصد ریٹرن دیا۔ اس صفحے کی ہر روایت اسی فارمولے میں مختلف اعداد و شمار داخل کرتی ہے۔ یہاں یہ حقیقی جون 2026 کی ٹیپ پر ہے، بنیادی متبادل کے ساتھ:

استفسار کریںجون 2026 دو طریقوں سے — close-to-close بمقابلہ open-to-close، NVDA اور SPY
ہر عدد کے پیچھے موجود درست SQL
SELECT ticker,
       round(argMaxIf(cl, day, day <= '2026-05-31'), 2) AS may_final_close,
       round(argMinIf(op, day, day >= '2026-06-01'), 2) AS june_first_open,
       round(argMaxIf(cl, day, day <= '2026-06-30'), 2) AS june_final_close,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
             / argMaxIf(cl, day, day <= '2026-05-31'), 2) AS close_to_close_pct,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
             / argMinIf(op, day, day >= '2026-06-01'), 2) AS open_to_close_pct,
       round(abs(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
                 / argMinIf(op, day, day >= '2026-06-01')
             - 100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
                 / argMaxIf(cl, day, day <= '2026-05-31')), 2) AS convention_gap_points
FROM (
    SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
)
GROUP BY ticker
ORDER BY ticker

NVDA کا جون کلوز ٹو کلوز -5.39% رہا — لیکن جون کے پہلے باقاعدہ سیشن کی اوپن سے اس کے آخری کلوز تک ماپا گیا تو -7.4%۔ ایک ہی اسٹاک، ایک ہی مہینا، دونوں درست جوابوں کے درمیان 2.01 فیصد پوائنٹس کا فرق۔ پورا فرق ایک رات اور ویک اینڈ کے درمیان کی کھڑکی کا ہے: NVDA مئی میں $211.15 پر بند ہوا اور جون میں $215.73 پر کھلا — یہ اچھال اوپن ٹو کلوز روایت میں "جون" کا حصہ ہے اور کلوز ٹو کلوز میں سرحد کا۔ SPY وہی ساخت زیادہ نرمی سے دکھاتا ہے: کلوز ٹو کلوز -1.33% بمقابلہ اوپن ٹو کلوز -1.2

کوئی بھی عدد غلط نہیں ہے۔ کلوز ٹو کلوز اس کا جواب دیتا ہے کہ "مہینے کی سرحد پر مسلسل ہولڈر نے کیا تجربہ کیا؟" اوپن ٹو کلوز اس کا جواب دیتا ہے کہ "مہینے کے اپنے ٹریڈنگ نے جون کی اوپن پر خرید کرنے والے کو کیا دیا؟" یہ تب مختلف ہوتے ہیں جب مارکیٹ سرحد پر گیپ بناتی ہے — اور رات کے گیپس عام بات ہیں، نایاب نہیں۔

ڈیویڈنڈز: قیمت کی ریٹرن بمقابلہ کل ریٹرن

دوسرا انتخاب: کیا اسٹاک کی طرف سے مہینے کے دوران ادا کی گئی نقد رقم شمار کی جائے گی؟ قیمت کی ریٹرن اسے نظر انداز کرتی ہے؛ کل ریٹرن اسے شامل کرتی ہے۔ زیادہ تر سنگل مہینوں کے لیے یہ فرق چھوٹا ہوتا ہے — ایک کوارٹرلی ادا کرنے والا اپنی ییلڈ کا تقریباً ایک چوتھائی فی کوارٹر تقسیم کرتا ہے — لیکن یہ سالوں میں ایک خلیج میں تبدیل ہو جاتا ہے، اور جون 2026 اتفاق سے SPY کی ادائیگی کا مہینہ تھا:

استفسار کریںSPY جون 2026 — قیمت کا منافع بمقابلہ کل منافع (جون ex-dividend شامل)
ہر عدد کے پیچھے موجود درست SQL
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2026-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS jun_close
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
    )
    WHERE ticker = 'SPY'
),
dv AS (
    SELECT sum(cash_amount) AS div_per_share
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2026-06-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(may_close, 2) AS may_final_close,
       round(jun_close, 2) AS june_final_close,
       round(div_per_share, 4) AS june_dividend_per_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS price_return_pct,
       round(100 * div_per_share / may_close, 2) AS dividend_contribution_pct,
       round(100 * ((jun_close + div_per_share) - may_close) / may_close, 2) AS total_return_pct
FROM px CROSS JOIN dv

SPY کی جون کی قیمت کی ریٹرن -1.33% تھی؛ مہینے کے دوران ex-dividend ہونے والی فی شیئر $1.9035 کی تقسیم کو شامل کریں تو کل ریٹرن بہتر ہو کر -1.08% ہو جاتی ہے — نقد رقم کی طرف سے 0.25% کا حصہ۔ انڈیکس فیملیز دونوں اقسام شائع کرتی ہیں (جو "S&P 500" آپ کو کوٹڈ ہوتے دیکھنے کو ملتا ہے وہ عموماً قیمت کا انڈیکس ہوتا ہے)، فنڈ کی پرفارمنس کے صفحات پر کل ریٹرن دکھانا لازمی ہے، اور اسکرینرز دونوں کو آزادی سے ملا دیتے ہیں۔ جب دو ذرائع کسی ڈیویڈنڈ ادا کرنے والے کے مہینے پر چند اعشاریہ پر اختلاف کرتے ہیں، تو ڈیویڈنڈ پہلا مشتبہ ہوتا ہے — ex-dividend تاریخ یہ طے کرتی ہے کہ کوئی ادائیگی کس مہینے سے تعلق رکھتی ہے۔

ایک جون کا مہینہ اعشاریہ فیصد کا حصہ ہے۔ ہورائزن ہی وہ چیز ہے جو دونوں روایات کو الگ کرتی ہے — یہاں وہی حساب پانچ سالوں پر پھیلا ہوا ہے:

استفسار کریںSPY پانچ سال میں، جون 2021 تا جون 2026 — قیمت کا منافع بمقابلہ ڈیویڈنڈ سمیت منافع
ہر عدد کے پیچھے موجود درست SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= '2021-06-28 04:00:00' AND window_start < '2021-07-01 08:00:00')
        OR (window_start >= '2026-06-26 04:00:00' AND window_start < '2026-07-01 08:00:00'))
    GROUP BY day
),
px AS (
    SELECT argMaxIf(cl, day, day <= '2021-06-30') AS start_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS end_close
    FROM daily
),
dv AS (
    SELECT round(sum(cash_amount), 2) AS divs_per_share,
           count() AS payments
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2021-07-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(start_close, 2) AS june_2021_close,
       round(end_close, 2) AS june_2026_close,
       divs_per_share AS dividends_paid_per_share,
       payments AS dividend_payments,
       round(100 * (end_close - start_close) / start_close, 2) AS five_year_price_return_pct,
       round(100 * ((end_close + divs_per_share) - start_close) / start_close, 2) AS five_year_return_with_divs_pct,
       round(100 * divs_per_share / start_close, 2) AS dividend_points_added
FROM px CROSS JOIN dv

اپنے جون 2021 کے کلوز $428.07 سے لے کر اپنے جون 2026 کے کلوز $746.32 تک، SPY کی پانچ سالہ قیمت کی ریٹرن 74.35% ماپتی ہے۔ اسی مدت میں اس نے 20 تقسیمیں کیں جو فی شیئر $34.07 کے برابر تھیں؛ اس نقد رقم کو شمار کرنے سے یہ اعداد و شمار 82.3% تک پہنچ جاتے ہیں — ایک بھی ڈیویڈنڈ کو دوبارہ سرمایہ کاری کرنے سے پہلے 7.96 پوائنٹس کا فرق۔ ایک حقیقی کل ریٹرن انڈیکس ہر ادائیگی کو اس کی ex-date پر دوبارہ سرمایہ کاری کرتا ہے، اور دوبارہ سرمایہ کاری کیے گئے شیئرز اس فرق کو مزید وسیع کر دیتے ہیں۔ ایک پختہ ادا کرنے والے پر، "بڑے مارجن" کوئی استعارہ نہیں ہے؛ یہ سالوں کی کوارٹرلی نقد رقم کا پہلے سے طے شدہ نتیجہ ہے۔

ایڈجسٹڈ کلوز بمقابلہ را کلوز: اسپلٹ کا دھوکا

زیادہ تر چارٹ ٹولز — Yahoo Finance، Google Finance، زیادہ تر بروکر ایپس — ایک adjusted close کا حوالہ دیتی ہیں: یہ ایک تاریخی قیمت کا سلسلہ ہے جس میں ماضی کی نقوش کو اسپلٹس کے لیے تقسیم کر دیا گیا ہے (اور کچھ پلیٹ فارمز پر، dividends کے لیے بھی ایڈجسٹ کیا گیا ہے) تاکہ لائن وقت کے ساتھ موازنہ کے قابل رہے۔ ہمارا گودام ٹیپ کو بالکل ویسے ہی محفوظ رکھتا ہے جیسے وہ دراصل چھپی تھی۔ ایک عام مہینے میں دونوں متفق ہوتے ہیں۔ اس مہینے میں جس میں اسٹاک اسپلٹ ہو، وہ بالکل مختلف کہانیاں بیان کرتے ہیں — NVDA کا دس-برائے-ایک اسپلٹ 10 جون، 2024 کو، اسی مہینے کے اندر نافذ ہوا:

استفسار کریںNVDA جون 2024 — خام close-to-close حساب بمقابلہ split-adjusted منافع
ہر عدد کے پیچھے موجود درست SQL
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2024-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2024-06-30') AS jun_close
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMaxIf(toFloat64(close), window_start,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= '2024-05-29 04:00:00'
          AND window_start < '2024-07-01 08:00:00'
        GROUP BY day
    )
),
sp AS (
    SELECT split_to / split_from AS ratio
    FROM global_markets.stocks_splits
    WHERE ticker = 'NVDA'
      AND execution_date >= '2024-06-01'
      AND execution_date <= '2024-06-30'
)
SELECT round(may_close, 2) AS may_final_close_raw,
       round(jun_close, 2) AS june_final_close_raw,
       toInt32(ratio) AS shares_after_split_per_old_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS raw_price_change_pct,
       round(may_close / ratio, 2) AS may_close_split_adjusted,
       round(100 * (jun_close - may_close / ratio) / (may_close / ratio), 2) AS adjusted_return_pct
FROM px CROSS JOIN sp

را کلوز کو پڑھیں تو، NVDA اس جون میں $1097.46 سے $123.41 تک "گرا" — یعنی -88.75% کا انہدار۔ ایسا کچھ نہیں ہوا: نافذ کرنے کی تاریخ پر ہر پرانی شیئر 10 نئی شیئرز بن گیا اور قیمت اس کے مطابق تقسیم ہو گئی، جس سے ہر ہولڈر کی ڈالر ویلیو وہیں کی وہیں رہی۔ مئی کے کلوز کو اسی تناسب سے تقسیم کریں — اسپلٹ-ایڈجسٹڈ بنیاد پر $109.75 — اور جون 2024 کا حساب 12.45% آتا ہے، یعنی ایک اوپر کا مہینہ۔ کوئی بھی ذریعہ جو ایڈجسٹڈ ڈیٹا پیش کرتا ہے وہ دوسرے ہندسے کے قریب کوئی چیز رپورٹ کرتا ہے؛ را نقوش پر کی گئی ایک سادہ حساب کتاب پہلا ہندسہ رپورٹ کرتا ہے۔ adjusted close دو ذرائع کے تاریخی ماہانہ ریٹرن پر شدید اختلاف کا واحد سب سے عام وجہ ہے — جب کوئی ہندسہ دونوں سمتوں میں ناقابلِ یقین حد تک بڑا لگے، تو کسی اور چیز سے پہلے اسپلٹ کیلنڈر چیک کریں۔

کون سی "کلوز" اصل کلوز ہے؟

روایات کے اندر ایک اور حد بھی چھپی ہے: یعنی اختتامی قیمت خود۔ ہر فیکٹ شیٹ میں استعمال ہونے والا عدد سرکاری کلوزنگ آکشن پرنٹ ہے — وہ واحد قیمت جو کلوزنگ آکشن مقرر کرتا ہے بوقت 4:00 PM ET۔ لیکن ایکسٹنڈڈ سیشن میں ٹریڈنگ جاری رہتی ہے، اور اس سیشن کا آخری پرنٹ سرکاری کلوز سے ہٹ سکتا ہے:

استفسار کریںSPY 30 جون 2026 کو — official-close بمقابلہ extended-hours کا آخری پرنٹ
ہر عدد کے پیچھے موجود درست SQL
SELECT round(argMaxIf(toFloat64(close), window_start, rth), 2) AS regular_session_close,
       round(argMax(toFloat64(close), window_start), 2) AS last_extended_print,
       round(100 * (argMax(toFloat64(close), window_start) - argMaxIf(toFloat64(close), window_start, rth))
             / argMaxIf(toFloat64(close), window_start, rth), 3) AS after_hours_drift_pct
FROM (
    SELECT window_start, close,
           toTimeZone(window_start, 'America/New_York') >= toDateTime('2026-06-30 09:30:00', 'America/New_York')
           AND toTimeZone(window_start, 'America/New_York') < toDateTime('2026-06-30 16:00:00', 'America/New_York') AS rth
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2026-06-30 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
)

جون کی تیس تاریخ کو دونوں میں -0.003% کا فرق تھا — اس رات یہ فرق معمولی تھا، لیکن کسی اکائی اسٹاک کی اarning رات پر ایکسٹنڈڈ سیشن فیصد کے پیمانے پر حرکت پیدا کر سکتا ہے جسے سرکاری ماہانہ ریٹرن اگلے مہینے میں شامل کرے گا۔ آفٹر آورز اور پری مارکیٹ ٹریڈنگ اس حد کو تفصیل سے بیان کرتی ہے۔ ایک متعلقہ ایج کیس: ماہ کی حدود کبھی کبھار ایک چھٹی سے مختصر سیشن پر آ جاتی ہیں، جہاں باقاعدہ دن کا اختتام 1:00 PM ET پر ہوتا ہے اور سرکاری کلوز ایک ابتدائی کلوزنگ آکشن میں پرنٹ ہوتا ہے — مارکیٹ ہالیڈے شیڈول میں ان کی فہرست موجود ہے۔

بارہ مہینوں کا ایک سال میں مرکب

سالانہ منافع بارہ ماہانہ منافعوں کا مجموعہ نہیں ہے — یہ ان کا حاصلِ ضرب ہے۔ ربط کا فارمولا: ہر ماہ کو ایک نمو کے عنصر (1 + return) میں تبدیل کریں، بارہ عناصر کو آپس میں ضرب دیں، 1 منہا کریں۔ منفی پانچ فیصد کا مہینہ اس کے بعد مثبت پانچ فیصد کے مہینے پر مجموعہ صفر بنتا ہے مگر مرکب 0.95 × 1.05 − 1 = −0.25% ہوتا ہے۔ یہاں SPY کا جون 2026 کے اختتام تک بارہ مہینوں کا حقیقی ماہانہ راستہ ہے:

استفسار کریںSPY ماہانہ close-to-close منافع — جون 2026 پر ختم ہونے والے بارہ مہینے، simple اور log
ہر عدد کے پیچھے موجود درست SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           formatDateTime(month_start, '%Y-%m') AS month,
           round(month_close, 2) AS month_final_close,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
)
SELECT month,
       month_final_close,
       round(r, 2) AS simple_return_pct,
       round(100 * log(1 + r / 100), 2) AS log_return_pct
FROM rets
WHERE isFinite(r)
ORDER BY month_start

بارہ اختتام سے اختتام تک مہینے، 2025-07 میں 2.28% سے لے کر 2026-06 میں -1.33% تک — آخری قطار وہی SPY جون 2026 کی رقم ہے جسے پہلے پینل نے ناپا تھا۔ بارہ کو درست طریقے سے جوڑیں اور صرف فیصدیوں کو جمع کرنے کے شارٹ کٹ کے مقابلے میں دیکھیں:

استفسار کریںمجموعی بمقابلہ compound — بارہ SPY ماہانہ منافع تین طریقوں سے جوڑے گئے
ہر عدد کے پیچھے موجود درست SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
),
ends AS (
    SELECT argMin(month_close, month_start) AS base_close,
           argMax(month_close, month_start) AS final_close
    FROM monthly
)
SELECT count() AS months_linked,
       round(sum(r), 2) AS simple_sum_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1), 2) AS geometric_compound_pct,
       round(100 * (any(final_close) / any(base_close) - 1), 2) AS direct_twelve_month_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1) - sum(r), 2) AS compounding_gap_points,
       round(sum(100 * log(1 + r / 100)), 2) AS sum_of_monthly_log_returns_pct,
       round(100 * log(any(final_close) / any(base_close)), 2) AS twelve_month_log_return_pct
FROM rets CROSS JOIN ends
WHERE isFinite(r)

بارہ مہینوں کا مجموعہ 19.83% ہے مگر مرکب 20.79% ہوتا ہے — اور براہِ راست حساب، جون 2025 کا اختتام سیدھا جون 2026 کے اختتام تک، 20.79% دیتا ہے، جو مجموعے کے بجائے مرکب رقم سے مطابقت رکھتا ہے۔ یہاں فرق ایک کافی پرسکون سال پر 0.96 پوائنٹس ہے؛ یہ اتار چڑھاؤ اور مدت کے ساتھ بڑھتا ہے۔ ماہانہ فیصدیوں کو جمع کرنا ایک عام اسپریڈ شیٹ کی عادت ہے، اور یہ خاموشی سے غلط ہے۔

آخری دو کالم جمع کرنے کے لیے بنائی گئی روایت دکھاتے ہیں: log return، نمو کے عنصر کا قدرتی لگارتھم، ln(1 + return)۔ ماہانہ log returns کا مجموعہ 18.89% ہوتا ہے — 18.89% کے بارہ ماہی log return کے بالکل مساوی، اور اسی وجہ سے تجزیہ کار اور رسک ماڈلز انہیں استعمال کرتے ہیں۔ چھوٹے مہینوں کے لیے دونوں روایات میں بمشکل فرق ہوتا ہے (2025-11: 0.21% سادہ، 0.21% log)؛ مہینہ جتنا بڑا ہوگا، اتنا ہی زیادہ الگ ہوں گے (2026-04: 10.49% سادہ، 9.97% log)۔ فنڈ فیکٹ شیٹس سادہ منافع پیش کرتے ہیں؛ log returns ریسرچ پیپرز اور اتار چڑھاؤ کے حساب میں استعمال ہوتے ہیں۔

وہ چیک لسٹ جو کسی بھی دو ذرائع کو ہم آہنگ کرتی ہے

جب دو ماہانہ منافع کے اعداد و شمار متفق نہ ہوں، تو تقریباً ہمیشہ ان میں چار میں سے کسی ایک سوئچ پر اختلاف ہوتا ہے:

  1. اختتامی نقطے — کلوز ٹو کلوز (معیار) یا اوپن ٹو کلوز (اس مہینے کی اپنی ٹریڈنگ)۔ جب بھی سرحد پر گیپ ہو تو مختلف ہوں گے۔
  2. ڈیویڈنڈ — قیمت پر مبنی منافع یا کل منافع۔ جس بھی مہینے میں ایکس ڈیویڈنڈ تاریخ ہو وہاں مختلف ہوں گے۔
  3. ایڈجسٹمنٹ — را انبار یا ایڈجسٹڈ کلوز سیریز۔ جس بھی مہینے میں اسپلٹ ہو وہاں بہت مختلف ہوں گے۔
  4. کلوز خود — آفیشل آکشن پرنٹ (معیار) بمقابلہ آخری ٹریڈ جس میں ایکسٹینڈڈ آورز شامل ہو سکتے ہیں۔

دونوں ذرائع پر ایک ہی سوئچز چلائیں اور اختلاف غائب ہو جائے گا — اور فنڈ بمقابلہ انڈیکس موازنہ اس وقت ہی درست ہوتا ہے جب دونوں اعداد و شمار ایک ہی چار ترتیبات پر ہوں؛ ایک کو بھی غیر مماثل بنائیں اور موازنہ خاموشی سے کارکردگی کے بجائے سوئچ کو ناپے گا۔ ہماری اپنی جون 2026 کا جائزہ اسی وجہ سے اپنے کنونشن کو شروع میں ہی واضح کرتی ہے — وہاں ہر ماہانہ عدد کلوز ٹو کلوز، آفیشل پرنٹس، اور قیمت پر مبنی منافع ہے۔

ماہانہ منافع سے متعلق عام سوالات

کلوزنگ سے کلوزنگ تک کا منافع کیا ہے؟

پچھلے دور کے آخری باقاعدہ سیشن کی بند قیمت سے اس دور کی آخری بند قیمت تک کا فیصدی فرق۔ یہ روزانہ، ماہانہ اور سالانہ اسٹاک منافع کا معیاری طریقہ ہے جو فیکٹ شیٹس اور انڈیکس رپورٹس میں استعمال ہوتا ہے۔

ایک ہی اسٹاک اور مہینے کے لیے دو ویب سائٹس پر منافع مختلف کیوں دکھاتے ہیں؟

تقریباً ہمیشہ چار طریقوں میں سے کوئی ایک وجہ ہوتی ہے: مختلف نقطہ آغاز و اختتام (کلوزنگ سے کلوزنگ بمقابلہ اوپن سے کلوزنگ)، ڈیویڈنڈ شامل ہونا یا نہ ہونا، خام بمقابلہ اسپلٹ ایڈجسٹڈ قیمتوں کا استعمال، یا بند قیمت کا مختلف ذریعہ۔ NVDA کا جون 2026 کا ماپ صرف پہلی تبدیلی پر ہی -5.39% یا -7.4% ہے۔

کیا اسٹاک اسپلٹ ماہانہ منافع کے حساب کتاب کو تبدیل کرتا ہے؟

ایسا نہیں ہونا چاہیے — اسپلٹ شیئر کی تعداد اور قیمت کو یکجا بدل دیتا ہے، جس سے پوزیشن کی قدر تبدیل نہیں ہوتی — لیکن خام قیمتوں پر کیا گیا کوئی بھی حساب کتاب تباہ کر دیتا ہے۔ NVDA کا جون 2024 خام بند قیمتوں پر -88.75% دکھتا ہے اور دس سے ایک کے اسپلٹ کی ایڈجسٹمنٹ کے بعد 12.45% ماپتا ہے۔

کیا ماہانہ اسٹاک منافع میں ڈیویڈنڈ شامل ہوتے ہیں؟

صرف کل منافع میں شامل ہوتے ہیں۔ قیمت کا منافع — بشمول S&P 500 انڈیکس لیول — انہیں خارج کرتا ہے۔ جون 2026 میں ڈیویڈنڈ نے SPY کے مہینے میں 0.25% کا اضافہ کیا، جو اس کے قیمت کے منافع اور کل منافع کے درمیان فرق ہے۔

کیا میری ذاتی پورٹ فولیو کا ماہانہ منافع اسی طرح حساب کیا جاتا ہے؟

ایسا نہیں ہے جب نقد رقم اندر یا باہر منتقل ہو۔ اس صفحے پر جیسے سنگل سیکیورٹی منافع ہیں وہ ٹائم ویٹڈ ہوتے ہیں؛ جس اکاؤنٹ میں جمع اور نکلوایا ہوتا ہے اسے منی ویٹڈ (اندرونی شرح منافع) حساب کی ضرورت ہوتی ہے، ورنہ نقد بہاؤ کارکردگی کا روپ دھار لیتے ہیں۔ زیادہ تر بروکرز ٹائم ویٹڈ عدد رپورٹ کرتے ہیں تاکہ آپ کی جمع شدہ رقم کو اس عدد سے الگ کر دیں۔


اوپر ہر عدد حقیقی ٹیپ پر ایک محفوظ اور ورژن شدہ کویری ہے — کسی بھی پینل کے SQL کو دیکھیں، یا سٹراسمور ٹرمینل پر کسی بھی ٹکر کا مہینہ کسی بھی طریقے کے تحت ماپیں۔

#returns#conventions#dividends#splits#education