ইনফ্লেশনসহ অ্যানালাইসিস — অ্যাকচুয়াল বনাম কনস্ট্যান্ট ডলার
এই পাঠে যা শিখবেন
- অ্যাকচুয়াল (then-current) ডলার ও কনস্ট্যান্ট (today's-purchasing-power) ডলারের সংজ্ঞা ও রূপান্তর সূত্র
- কেন দুটো ভিন্ন ডিসকাউন্ট রেট ($i_{combined}$ ও $i_{real}$) দুটো ভিন্ন ডলার-টাইপের সাথে জোড় বাঁধতে হয়
- দুটো পদ্ধতি মিশিয়ে ফেলার ক্লাসিক ভুল, এবং তা কীভাবে চিনতে হয়
- Python দিয়ে একটি প্রজেক্টের PW দুই পদ্ধতিতে গণনা করে সংখ্যাগতভাবে সমতা প্রমাণ করা
১ · অ্যাকচুয়াল ডলার বনাম কনস্ট্যান্ট ডলার
যখন কোনো প্রজেক্টের ক্যাশ ফ্লো একাধিক বছর ধরে চলে এবং ইনফ্লেশন থাকে, তখন একটি নির্দিষ্ট বছরের ক্যাশ ফ্লো দুইভাবে প্রকাশ করা যায় —
সেই নির্দিষ্ট বছরে হাতে হাতে যে টাকা লেনদেন হবে — ইনফ্লেশনের প্রভাবসহ, "তখনকার" আসল অঙ্ক।
ইনফ্লেশন বাদ দিয়ে, আজকের ক্রয়ক্ষমতার নিরিখে সেই একই ক্যাশ ফ্লোর "সমতুল্য" মান।
দুটোর সম্পর্ক ঠিক L38-এর সূত্র থেকেই আসে — বছর $n$-এর অ্যাকচুয়াল-ডলার ক্যাশ ফ্লো = সেই বছরের কনস্ট্যান্ট-ডলার ক্যাশ ফ্লো $\times\,(1+f)^n$। অর্থাৎ —
$$CF_{actual,n} = CF_{constant,n} \times (1+f)^n$$
২ · দুটো সামঞ্জস্যপূর্ণ পথ — একই PW
PW বের করার জন্য দুটো পথ আছে, এবং দুটোই সঠিক — যদি ডলার-টাইপ ও ডিসকাউন্ট রেট সঠিকভাবে জোড় বাঁধানো হয় —
সবচেয়ে সাধারণ ভুল হলো এই দুই পথ মিশিয়ে ফেলা — যেমন অ্যাকচুয়াল-ডলার ক্যাশ ফ্লোকে ভুলবশত $i_{real}$ দিয়ে ডিসকাউন্ট করা, অথবা কনস্ট্যান্ট-ডলার ক্যাশ ফ্লোকে $i_{combined}$ দিয়ে। এতে ইনফ্লেশনের প্রভাব হয় দুইবার হিসাবে আসে, অথবা একবারও আসে না — দুটোই ভুল PW দেয়। নিয়ম সহজ — "অ্যাকচুয়াল সাথে কম্বাইন্ড, কনস্ট্যান্ট সাথে রিয়েল" — কখনো ক্রস করবেন না।
৩ · কোড: একই প্রজেক্টের PW দুই পদ্ধতিতে গণনা করে সমতা প্রমাণ
ধরা যাক একটি প্রজেক্টের ক্যাশ ফ্লো কনস্ট্যান্ট (আজকের) ডলারে প্রতি বছর $10,000, ৬ বছর ধরে স্থির (real terms-এ স্থির, অর্থাৎ প্রতি বছর একই পরিমাণ পণ্য/সেবার সমতুল্য)। ইনফ্লেশন $f=4\%$, রিয়েল রেট $i_{real}=6\%$ — ফিশার ইকুয়েশন থেকে কম্বাইন্ড রেট আসে ঠিক $(1.06)(1.04)-1 = 10.24\%$। নিচের কোড মেথড ১ (অ্যাকচুয়াল ডলার + কম্বাইন্ড রেট) ও মেথড ২ (কনস্ট্যান্ট ডলার + রিয়েল রেট, সরাসরি P/A সূত্রে) দুটোই গণনা করে দেখায় তারা একে অপরের সাথে মিলে যায়।
# অ্যাকচুয়াল ডলার (@ i_combined) বনাম কনস্ট্যান্ট ডলার (@ i_real) -- একই PW প্রমাণ
def combined_rate(i_real, f):
return (1 + i_real) * (1 + f) - 1
f = 0.04 # ইনফ্লেশন
i_real = 0.06 # রিয়েল (ইনফ্লেশন-মুক্ত) ইন্টারেস্ট রেট
i_combined = combined_rate(i_real, f) # ফিশার ইকুয়েশন থেকে -- (1.06)(1.04)-1
constant_cf = 10000 # প্রতি বছর $10,000 -- আজকের (constant/real) ক্রয়ক্ষমতায়
n = 6
print(f"f = {f*100:.2f}%, i_real = {i_real*100:.2f}% -> i_combined = {i_combined*100:.4f}%\n")
# --- মেথড ১: প্রতি বছরের constant-dollar CF-কে actual dollars-এ রূপান্তর, i_combined দিয়ে ডিসকাউন্ট ---
print("মেথড ১ -- actual dollars @ i_combined:")
print(f"{'বছর':>4} | {'Actual $ CF':>14} | {'PW অবদান':>12}")
pw_method1 = 0
for t in range(1, n + 1):
actual_cf = constant_cf * (1 + f) ** t
pw_t = actual_cf / (1 + i_combined) ** t
pw_method1 += pw_t
print(f"{t:>4} | ${actual_cf:>12,.2f} | ${pw_t:>10,.2f}")
print(f"মোট PW (মেথড ১) = ${pw_method1:,.2f}\n")
# --- মেথড ২: constant-dollar CF সরাসরি i_real দিয়ে P/A সূত্রে ডিসকাউন্ট ---
pw_method2 = constant_cf * ((1 + i_real) ** n - 1) / (i_real * (1 + i_real) ** n)
print(f"মেথড ২ -- constant dollars @ i_real (P/A সূত্র):")
print(f"মোট PW (মেথড ২) = ${pw_method2:,.2f}\n")
# --- যাচাই: দুটো মেথড একই ফলাফল দেয় কিনা ---
diff = abs(pw_method1 - pw_method2)
print(f"পার্থক্য = ${diff:.10f}")
assert diff < 1e-6, "দুটো মেথড একমত নয় -- ভুল আছে!"
print("যাচাই -- OK, উভয় মেথড ঠিক একই PW দিচ্ছে")
1e-6-এরও
অনেক নিচে)। এটি কাকতালীয় নয় — যেহেতু $1+i_{combined} = (1+i_{real})(1+f)$ ঠিক এভাবেই সংজ্ঞায়িত,
মেথড ১-এর প্রতিটি পদে $(1+f)^t/(1+i_{combined})^t = 1/(1+i_{real})^t$ — অর্থাৎ বীজগণিতিকভাবে
মেথড ১ ঠিক মেথড ২-এর P/A সূত্রেই পরিণত হয়। কোডটি শুধু এই বীজগাণিতিক সত্যকে সংখ্যাগতভাবে যাচাই করে দেখাচ্ছে।
ইনফ্লেশনসহ PW অ্যানালাইসিসে ভুল হয় না গাণিতিক জটিলতায়, বরং ডলার-টাইপ ও রেট মিশিয়ে ফেলায়। নিয়ম মনে রাখুন — অ্যাকচুয়াল ডলার সবসময় কম্বাইন্ড রেটের সাথে, কনস্ট্যান্ট ডলার সবসময় রিয়েল রেটের সাথে। L41-এ দেখা যাবে এই একই ধরনের অসামঞ্জস্য (বিশেষত IRR হিসাবে) কীভাবে একটি প্রজেক্টকে বাস্তবের চেয়ে বেশি লাভজনক দেখাতে পারে।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ যদি কেউ অ্যাকচুয়াল-ডলার ক্যাশ ফ্লোকে ভুলবশত $i_{real}$ দিয়ে ডিসকাউন্ট করে, তাহলে PW-তে কী ধরনের ভুল হবে — বেশি নাকি কম দেখাবে?
PW বেশি দেখাবে (প্রজেক্টকে বাস্তবের চেয়ে বেশি লাভজনক মনে হবে) — কারণ অ্যাকচুয়াল ডলার ইতিমধ্যেই ইনফ্লেশন-বর্ধিত, কিন্তু $i_{real}$ (যা $i_{combined}$-এর চেয়ে ছোট) দিয়ে কম ডিসকাউন্ট করা হচ্ছে — ইনফ্লেশনের প্রভাব শুধু লভ্যাংশ বাড়ানোর দিকেই গণনা হচ্ছে, খরচের দিকে ঠিকমতো ছাড় করা হচ্ছে না।
প্র ০২ একটি প্রজেক্টের কিছু ক্যাশ ফ্লো (যেমন লিজ পেমেন্ট) চুক্তি অনুযায়ী প্রতি বছর ঠিক একই ডলার অঙ্কে স্থির থাকে (inflation-adjusted নয়)। এই ক্যাশ ফ্লোকে কি "কনস্ট্যান্ট ডলার" বলা উচিত?
না — এটি আসলে অ্যাকচুয়াল ডলার ক্যাশ ফ্লো, কারণ এটি "সেই বছরে হাতে হাতে যে অঙ্ক লেনদেন হবে" তা বর্ণনা করছে (এমনকি যদিও অঙ্কটা প্রতি বছর একই)। "কনস্ট্যান্ট ডলার" মানে আজকের ক্রয়ক্ষমতায় সমান — একটি ফিক্সড লিজ পেমেন্ট প্রকৃতপক্ষে প্রতি বছর ইনফ্লেশনের কারণে কম ক্রয়ক্ষমতার প্রতিনিধিত্ব করে, তাই এর কনস্ট্যান্ট-ডলার সমতুল্য প্রতি বছর কমতে থাকবে।
প্র ০৩
উপরের কোড সেলে যদি i_real ও f দুটোই শূন্য হতো, তাহলে i_combined কত হতো এবং দুটো মেথডের ফলাফল কীভাবে সরল হয়ে যেত?
i_combined = (1+0)(1+0)-1 = 0 — কোনো ডিসকাউন্টিং বা ইনফ্লেশন থাকবে না, তাই
actual_cf = constant_cf প্রতি বছর, এবং উভয় মেথড সরল হয়ে যাবে pw = constant_cf * n
= $60,000-এ (৬ বছরের সরল যোগফল, কোনো ডিসকাউন্টিং ছাড়া) — যা দেখায় দুই মেথডের সমতা এই বিশেষ ক্ষেত্রেও বজায় থাকে।
অনুশীলন
-
চিন্তা করুন: একটি রিপোর্টে লেখা আছে একটি প্রজেক্টের "১৫% ROI" আছে, কিন্তু বলা নেই এটি
অ্যাকচুয়াল নাকি কনস্ট্যান্ট ডলারে হিসাব করা। এই তথ্যের অভাব কীভাবে ভুল সিদ্ধান্তের দিকে নিয়ে যেতে পারে?
যদি ১৫% আসলে একটি কম্বাইন্ড (অ্যাকচুয়াল-ডলার-ভিত্তিক) রিটার্ন হয়, কিন্তু সিদ্ধান্ত-গ্রহণকারী এটিকে ভুলবশত রিয়েল রিটার্ন মনে করে অন্য একটি প্রজেক্টের প্রকৃত রিয়েল রিটার্নের সাথে সরাসরি তুলনা করে, তাহলে তুলনাটাই অসামঞ্জস্যপূর্ণ (apples-to-oranges) — উচ্চ ইনফ্লেশনের সময়ে এই ভুল একটি খারাপ প্রজেক্টকে ভালো দেখাতে পারে, শুধু কারণ এর নমিনাল সংখ্যা ইনফ্লেশনের কারণে বড়।
-
পরীক্ষা করুন: উপরের কোড সেলে
i_real = 0.06-কেi_real = 0.08-এ বদলে (f = 0.04 রেখেই) Run চেপে দেখুন নতুনi_combinedকত হয়, এবং দুই মেথড কি তখনো একমত হয়?নতুন
i_combined = (1.08)(1.04)-1 = 0.1232(১২.৩২%)। যেহেতু কোডেi_combinedসবসময়combined_rate()ফাংশন দিয়েi_realওfথেকে গণনা করা হয় (হার্ডকোড করা নয়), দুই মেথড এখনো ঠিক একমত হবে — শুধু PW-এর অঙ্কটা বদলে যাবে (রেট বাড়ায় PW কিছুটা কমবে)।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- কোর্সের সম্পূর্ণ সিলেবাস দেখুন ৫৭টি পাঠ টাইম ভ্যালু অফ মানি, ক্যাশ ফ্লো সিরিজ, ওয়ার্থ-ভিত্তিক তুলনা, রেট অফ রিটার্ন, ডেপ্রিসিয়েশন, ট্যাক্স, ইনফ্লেশন, রিস্ক অ্যানালাইসিস ও ক্যাপিটাল বাজেটিং — সব ৫৭টি পাঠ।
- Discrete Mathematics কোর্স সহোদর কোর্স P/A ফ্যাক্টর ও জিওমেট্রিক সিরিজের সমষ্টি — এই পাঠের মেথড ২-এর সরাসরি ভিত্তি সেই কোর্সেই তৈরি হয়েছে।
- সব Courses দেখুন ABCL TECH C, C++, Python, Java, JavaScript, DSA, DBMS, Discrete Mathematics, System Design, Cybersecurity, Cloud Computing & DevOps, Computer Networks, Operating Systems, Computer Architecture, Programming Languages & Compiler Design, Software Engineering & Git, Theory of Computation ও Engineering Economics — সব এক জায়গায়।