مدل‌سازی مالی

مدل مالی سناریومحور؛ بدون کپی‌کردن مدل برای هر سناریو

تاریخ
زمان مطالعه۴ دقیقه
نویسندهکمیل مزرعی

وقتی از مدل مالی می‌خواهند چند سناریو اجرا کند، معمولاً اوضاع به‌هم می‌ریزد. گاهی ملایم است: بخش‌های خروجی اضافه، فرمول‌های متورم و جمله‌های شرطی تو در تو. گاهی شدید است: نسخه‌های کامل مدل در تب‌های جدا یا چند فایل که دستی در فایل سوم مقایسه می‌شوند. ریشه‌ی همه‌ی این‌ها یکی است: تکرار زیاد و ساختار کم. در این نوشته روشی برای ساخت مدل مالی سناریومحور می‌بینیم که هیچ منطقی را تکثیر نمی‌کند.

اگر با مفهوم سناریو آشنا نیستید، ابتدا برنامه‌ریزی سناریو در مدل مالی را بخوانید. این نوشته بیشتر درباره‌ی معماری است.

گام ۱: بلوک‌های سناریو

ابتدا سه بلوک ورودی می‌سازید (معمولاً پایه، خوش‌بینانه و بدبینانه) و همه را کنار هم، روی یک صفحه می‌گذارید. هر بلوک چیدمان کاملاً یکسانی دارد؛ یعنی عملاً یک بلوک را در ستون‌های کنارش کپی می‌کنید.

ورودی‌های هر بلوک چیزهایی مثل تاریخ شروع تبلیغات، تعداد مشتری جدید ماهانه، نرخ ریزش و هزینه‌ی جذب مشتری است. بلوک اول «سناریوی ۱» (معمولاً پایه) است و کنار خروجی‌هایی نشسته که بیشتر تحت تأثیرشان است. بلوک دوم درست سمت راست اولی است و همان چیدمان را دارد.

فقط همین چیدمان یکسان، مدل را منظم می‌کند، اما ارزش اصلی در نحوه‌ی اتصال این ورودی‌ها به بقیه‌ی مدل است.

گام ۲: بخش زنده

حالا یک «بخش زنده» می‌سازید که از میان بلوک‌ها، یکی را بر اساس انتخاب شما بیرون می‌کشد. ابزارش یک تابع انتخاب است که با شماره‌ی سناریو تعیین می‌کند کدام بلوک خوانده شود:

  • «سناریوی جاری» یک ورودی سراسری است؛ فقط عدد ۱، ۲ یا ۳ را وارد می‌کنید.
  • بقیه‌ی فرمول، از هر بلوک مقدار متناظر را برمی‌دارد.
  • فقط بخش زنده نام‌گذاری شده (مثلاً «تاریخ شروع تبلیغات» یا «نرخ ریزش»). مدل ماهانه‌ی کامل، در تب جدا، فقط به همین یک مجموعه ورودی تمیز ارجاع می‌دهد.

نتیجه: منطق در یک جا متمرکز است، قابل‌ممیزی است و تغییرش آسان.

نمودار مراحل مدل سناریومحور: بلوک‌های سناریو کنار هم، بخش زنده، مدل و خروجی و مقایسه با حالت کنترل

مزیت اضافه: سناریوی نامحدود

برای افزودن سناریوی چهارم یا پنجم کافی است:

  1. بلوک ورودی را دوباره کپی کنید («سناریوی ۴»).
  2. آن را سمت راست بچسبانید.
  3. فرمول انتخاب را یک گزینه‌ی بیشتر بدهید.

هیچ تغییری در منطق زیرین مدل لازم نیست.

نکته‌ی طلایی: ورودی کنار خروجی

یک عادت خوب: ورودی‌های کلیدی را درست کنار خروجی‌هایی که بیشتر اثر می‌گذارند بگذارید. صفحه‌ی جداگانه‌ی «ورودی‌ها» معمولاً دردسر است؛ چون بعد از هر تغییر باید بین تب‌ها بگردید تا ببینید واقعاً کار کرد یا نه.

با ورودی کنار خروجی، اثر را فوراً می‌بینید. این هم کارایی را بالا می‌برد و هم تأییدی است بر درستی مدل؛ و ابزاری عالی برای اشکال‌یابی وقتی چیزی عجیب به نظر می‌رسد. مثلاً اگر هزینه‌ی جذب مشتری یا رشد مشتری را تغییر دهید، می‌توانید همان لحظه اثرش بر درآمد کل، تعداد مشتری یا نرخ تبدیل را ببینید. در جلسه با ذی‌نفعان هم مفید است؛ همه علت و معلول را زنده می‌بینند.

گام ۳: حالت کنترل برای مقایسه

وقتی سناریویی را اجرا کردید که می‌پسندید (معمولاً پایه)، بخش زنده را در بخشی به نام «حالت کنترل» کپی/چسب‌مقدار می‌کنید. این یک نسخه‌ی منجمد از اجرای قبلی است.

سپس در تمام مدل، خط به خط واریانس را حساب می‌کنید: تفاوت بخش زنده با حالت کنترل. این روش ساده نشان می‌دهد چه چیزی تغییر کرد، بدون اینکه فایل را با تب‌های نسخه‌دار یا مقایسه‌های جدا پر کنید.

مثلاً اگر نسبت هزینه‌ی پورسانت به ARR را یک درصد تغییر دهید، در ستون واریانس بلافاصله می‌بینید کدام اقلام دیگر تحت تأثیر قرار گرفته‌اند.

چرا این روش کار می‌کند؟

  • یک مدل واحد، نه چند نسخه
  • ورودی‌های مقیاس‌پذیر
  • تغییر سناریو در لحظه
  • تحلیل واریانس تمیز
  • قابل‌فهم برای مدیران

حتی صنعت اهمیت ندارد. چه SaaS باشد، چه تولیدی، چه خدمات، الگو همان است: بلوک‌های همجوار سناریو، سپس سناریوی زنده، سپس تغذیه‌ی مدل و در نهایت خروجی‌های لحظه‌ای.

اشتباهات رایج

  • کپی کردن کل مدل برای هر سناریو. نگه‌داری آن غیرممکن می‌شود و اصلاح یک خطا باید چندبار تکرار شود.
  • چیدمان متفاوت بلوک‌ها. اگر بلوک‌ها هم‌شکل نباشند، فرمول انتخاب شکننده می‌شود.
  • نام‌گذاری ورودی در همه‌ی بلوک‌ها. نام‌گذاری فقط بخش زنده کافی است.
  • فراموش کردن حالت کنترل. بدون آن، تغییرات را فقط از حافظه می‌سنجید.

برای ساختار کلی چنین مدلی در عمل، چیدمان مدل مالی SaaS را ببینید.

پرسش‌های متداول

بلوک‌های سناریو را در همان صفحه بگذارم یا صفحه‌ی جدا؟

کنار هم روی یک صفحه بهتر است؛ چون مقایسه‌ی ورودی‌ها آسان‌تر می‌شود و چیدمان یکسان را راحت‌تر رعایت می‌کنید.

آیا باید حتماً سه سناریو داشته باشم؟

نه. سه تعداد رایج است، ولی با این معماری هر تعداد سناریو را می‌توانید بیفزایید.

حالت کنترل با سناریوی پایه فرق دارد؟

بله. حالت کنترل یک عکس لحظه‌ای از هر اجرای دلخواه است، نه لزوماً سناریوی پایه.

چرا فقط بخش زنده نام‌گذاری شود؟

چون بقیه‌ی مدل فقط باید یک منبع ورودی ببیند. اگر بلوک‌ها هم نام داشته باشند، ارجاع اشتباه بسیار محتمل می‌شود.

جمع‌بندی

مدل سناریومحور خوب، یک مدل واحد است با ورودی‌های مقیاس‌پذیر: بلوک‌های همجوار، بخش زنده، حالت کنترل و واریانس. با این چیدمان، هم مدل تمیز می‌ماند، هم مقایسه‌ی سناریوها سریع و قابل‌اعتماد می‌شود.