পাঠ ২৬ · ৫৭-এর মধ্যে · মডিউল ৬
Home / Courses / Engineering Economics / ইনক্রিমেন্টাল B/C

ইনক্রিমেন্টাল বেনিফিট-কস্ট অ্যানালাইসিস

Incremental benefit-cost analysis
৯ মিনিট পড়া মধ্যম · Intermediate Python কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • কেন আলাদাভাবে সর্বোচ্চ B/C রেশিওর অল্টারনেটিভ বাছাই করা সবসময় সঠিক নয়
  • খরচ-অনুক্রমে ধাপে ধাপে ইনক্রিমেন্টাল B/C ($\Delta B/\Delta C$) হিসাব করার পদ্ধতি
  • কীভাবে প্রতিটি ধাপের সিদ্ধান্ত ("আপগ্রেড করব, নাকি আগেরটাই রাখব") পরবর্তী তুলনার ভিত্তি হয়ে ওঠে
  • Python দিয়ে ৩টি মিউচুয়ালি এক্সক্লুসিভ প্রজেক্ট স্কেলের নাইভ ও ইনক্রিমেন্টাল B/C অ্যানালাইসিস

১ · সমস্যা: সর্বোচ্চ B/C সবসময় সেরা বাছাই নয়

L25-এ দেখা গেছে একটি একক প্রজেক্ট গ্রহণযোগ্য কি না তা B/C ≥ 1 দিয়ে ঠিক করা যায়। কিন্তু যখন একাধিক মিউচুয়ালি এক্সক্লুসিভMutually Exclusiveএমন অল্টারনেটিভের সেট যেখান থেকে সর্বোচ্চ একটি বাছাই করা যায় — যেমন একটি প্ল্যান্টের তিনটি ভিন্ন আকার, একসাথে সবগুলো তৈরি করা যায় না। স্কেল বা ডিজাইন (যেমন একটি প্ল্যান্টের ছোট/মাঝারি/বড় সংস্করণ) থেকে একটি বাছাই করতে হয়, তখন শুধু "কার B/C সবচেয়ে বেশি" জিজ্ঞাসা করলে ভুল উত্তর আসতে পারে — ঠিক যেমন M5-এ শুধু "কার IRR সবচেয়ে বেশি" জিজ্ঞাসা করলে ভুল হতো (L22)। কারণ একটি ছোট, কম খরচের অল্টারনেটিভের B/C রেশিও বেশি হতে পারে, অথচ একটি বড় অল্টারনেটিভে অতিরিক্ত বিনিয়োগ করলে সেই অতিরিক্ত অংশও যথেষ্ট বেনিফিট আনতে পারে (অর্থাৎ অতিরিক্ত বিনিয়োগও ন্যায্য) — কিন্তু এটি রেশিও তুলনায় ধরা পড়ে না, কারণ রেশিও স্কেলের সাথে পরিবর্তিত হয়।

খরচ অনুযায়ী সাজানো (ক্রমবর্ধমান) পরের অল্টারনেটিভের সাথে ΔB/ΔC হিসাব ΔB/ΔC ≥ 1? হ্যাঁ হলে আপগ্রেড সব অল্টারনেটিভ শেষ না হওয়া পর্যন্ত পুনরাবৃত্তি
প্রতিটি ধাপে বর্তমান সেরা বনাম পরবর্তী (বেশি ব্যয়বহুল) অল্টারনেটিভের মধ্যে ΔB/ΔC হিসাব করে সিদ্ধান্ত নেওয়া হয়, ঠিক ইনক্রিমেন্টাল IRR-এর মতো (L22)।

২ · ইনক্রিমেন্টাল B/C পদ্ধতি

পদ্ধতিটি তিন ধাপে চলে —

  1. সব অল্টারনেটিভকে তাদের PW(cost) অনুযায়ী ক্রমবর্ধমান ক্রমে সাজান।
  2. সবচেয়ে কম খরচের অল্টারনেটিভকে "do-nothing"-এর সাথে তুলনা করুন — এর নিজস্ব B/C ≥ 1 হলে এটিই প্রাথমিক (base) বেস-লাইন।
  3. একে একে পরের (বেশি ব্যয়বহুল) অল্টারনেটিভের সাথে বর্তমান সেরার তুলনা করুন — $\Delta B/\Delta C = (B_{\text{পরের}} - B_{\text{বর্তমান}}) / (C_{\text{পরের}} - C_{\text{বর্তমান}})$। এটি ≥ ১ হলে পরের অল্টারনেটিভে আপগ্রেড করুন (এটিই এখন নতুন "বর্তমান সেরা"); না হলে আগেরটাই রেখে দিন এবং পরের অল্টারনেটিভের দিকে এগিয়ে যান।
L22-এর সাথে সম্পর্ক

এই পদ্ধতিটি M5-এর ইনক্রিমেন্টাল রেট অফ রিটার্ন অ্যানালাইসিস-এর সাথে কাঠামোগতভাবে একই — শুধু IRR-এর জায়গায় B/C রেশিও ব্যবহৃত হচ্ছে। উভয় ক্ষেত্রেই মূলনীতি একটাই: আলাদা অনুপাত নয়, বরং অতিরিক্ত বিনিয়োগের অতিরিক্ত রিটার্ন/বেনিফিট ন্যায্য কি না তা যাচাই করাই আসল প্রশ্ন।

৩ · কোড: ৩টি পানি-শোধনাগার স্কেলের ইনক্রিমেন্টাল B/C

তিনটি মিউচুয়ালি এক্সক্লুসিভ পানি-শোধনাগার (water treatment plant) স্কেল বিবেচনা করা যাক — ছোট (A), মাঝারি (B) ও বড় (C) — প্রতিটির প্রাথমিক খরচ, বার্ষিক O&M ও বার্ষিক বেনিফিট বাড়ছে। প্রথমে নাইভ B/C র‍্যাঙ্কিং দেখানো হবে, তারপর সঠিক খরচ-অনুক্রমিক ইনক্রিমেন্টাল অ্যানালাইসিস।

Python
# ইনক্রিমেন্টাল বেনিফিট-কস্ট অ্যানালাইসিস -- পানি-শোধনাগারের (water treatment plant) ৩টি স্কেল

def pa_factor(i, n):
    return ((1 + i) ** n - 1) / (i * (1 + i) ** n)

i = 0.06     # সামাজিক ডিসকাউন্ট রেট
n = 20       # প্রজেক্ট লাইফ (বছর)
PA = pa_factor(i, n)

# প্রতিটি বিকল্প: প্রাথমিক খরচ, বার্ষিক O&M, বার্ষিক বেনিফিট
alternatives = [
    {"name": "A -- ছোট প্ল্যান্ট",   "cost0": 1_000_000, "om": 20_000, "benefit": 140_000},
    {"name": "B -- মাঝারি প্ল্যান্ট", "cost0": 2_200_000, "om": 45_000, "benefit": 275_000},
    {"name": "C -- বড় প্ল্যান্ট",    "cost0": 3_600_000, "om": 75_000, "benefit": 420_000},
]

for alt in alternatives:
    alt["pw_cost"]    = alt["cost0"] + alt["om"] * PA
    alt["pw_benefit"] = alt["benefit"] * PA
    alt["bc"]         = alt["pw_benefit"] / alt["pw_cost"]

# --- ধাপ ১: নাইভ (naive) পদ্ধতি -- শুধু আলাদা B/C অনুযায়ী র‍্যাঙ্ক ---
print("নাইভ B/C র‍্যাঙ্কিং (প্রতিটি বিকল্প আলাদাভাবে বিবেচনা করে) --")
for alt in sorted(alternatives, key=lambda a: a["bc"], reverse=True):
    print(f"  {alt['name']:<20} PW(cost)=${alt['pw_cost']:>12,.0f}  PW(benefit)=${alt['pw_benefit']:>12,.0f}  B/C={alt['bc']:.4f}")

naive_pick = max(alternatives, key=lambda a: a["bc"])
print(f"নাইভ সিদ্ধান্ত (সর্বোচ্চ আলাদা B/C): {naive_pick['name']}  -- এটি ভুল হতে পারে!\n")

# --- ধাপ ২: সঠিক ইনক্রিমেন্টাল B/C -- খরচ অনুযায়ী সাজিয়ে ধাপে ধাপে তুলনা ---
ordered = sorted(alternatives, key=lambda a: a["pw_cost"])
print("ইনক্রিমেন্টাল অ্যানালাইসিস (খরচ অনুযায়ী ক্রমানুসারে) --")

current = ordered[0]
print(f"  বেস: {current['name']}  (B/C={current['bc']:.4f} >= 1, তাই do-nothing-এর তুলনায় গ্রহণযোগ্য)")

for nxt in ordered[1:]:
    d_cost    = nxt["pw_cost"] - current["pw_cost"]
    d_benefit = nxt["pw_benefit"] - current["pw_benefit"]
    d_bc      = d_benefit / d_cost
    if d_bc >= 1:
        decision = "গৃহীত -- আপগ্রেড করা হলো"
    else:
        decision = "প্রত্যাখ্যাত -- আগেরটাই থাকছে"
    print(f"  {current['name']} -> {nxt['name']}: "
          f"ΔPW(cost)=${d_cost:,.0f}  ΔPW(benefit)=${d_benefit:,.0f}  ΔB/ΔC={d_bc:.4f}  -> {decision}")
    if d_bc >= 1:
        current = nxt

print(f"\nসঠিক ইনক্রিমেন্টাল সিদ্ধান্ত: {current['name']}")

    
লক্ষ্য করুন Alternative A-এর আলাদা B/C (≈১.৩১) সবচেয়ে বেশি — নাইভ পদ্ধতি তাই A বেছে নিত। কিন্তু A থেকে B-তে যাওয়ার অতিরিক্ত বিনিয়োগের ΔB/ΔC ১-এর সামান্য বেশি (প্রায় ১.০৪) — অর্থাৎ সেই অতিরিক্ত বিনিয়োগও ন্যায্য, তাই B-তে আপগ্রেড করা উচিত। কিন্তু B থেকে C-তে যাওয়ার ΔB/ΔC ১-এর কম (প্রায় ০.৯৫) — তাই C-তে আর আপগ্রেড করা উচিত নয়। চূড়ান্ত সঠিক সিদ্ধান্ত তাই B — যা নাইভ B/C র‍্যাঙ্কিং সরাসরি দেখাত না।
মূল কথা · Key takeaway

মিউচুয়ালি এক্সক্লুসিভ পাবলিক প্রজেক্ট তুলনায় শুধু আলাদা B/C রেশিওর সর্বোচ্চ মান দেখে সিদ্ধান্ত নেওয়া ভুল হতে পারে — কারণ রেশিও স্কেল-নিরপেক্ষ নয়। খরচ অনুযায়ী সাজিয়ে ধাপে ধাপে ΔB/ΔC হিসাব করাই সঠিক পদ্ধতি, ঠিক যেমন IRR-এর ক্ষেত্রে ইনক্রিমেন্টাল অ্যানালাইসিস দরকার হয় (L22)।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ কেন অল্টারনেটিভগুলোকে খরচ অনুযায়ী ক্রমানুসারে সাজিয়ে তুলনা করা জরুরি, এলোমেলো ক্রমে নয়?

কারণ ইনক্রিমেন্টাল বিশ্লেষণে প্রতিটি ধাপে প্রশ্ন করা হয় — "আরও বেশি খরচ করার সিদ্ধান্তটা কি ন্যায্য?" এই প্রশ্নের অর্থবহ উত্তর পেতে হলে সবসময় কম-খরচ থেকে বেশি-খরচের দিকে এগোতে হয়, যাতে প্রতিটি ΔC (অতিরিক্ত খরচ) সবসময় ধনাত্মক থাকে। এলোমেলো ক্রমে তুলনা করলে ΔC ঋণাত্মকও হতে পারে, যা ΔB/ΔC-এর অর্থ ও সিদ্ধান্তের নিয়মকে ভুল দিকে নিয়ে যাবে।

প্র ০২ যদি A থেকে B-তে ΔB/ΔC ১-এর কম হতো, কিন্তু A থেকে C-তে (B বাদ দিয়ে সরাসরি) ΔB/ΔC ১-এর বেশি হতো, চূড়ান্ত সিদ্ধান্ত কী হতো?

পদ্ধতিটি ধাপে ধাপে চলে বলে B বাতিল হলে পরের তুলনা হয় বর্তমান সেরা (A) বনাম C-এর মধ্যে, B-কে সম্পূর্ণ বাদ দিয়ে। তাই এই পরিস্থিতিতে A থেকে সরাসরি C-তে যাওয়ার ΔB/ΔC হিসাব করা হতো, এবং তা ১-এর বেশি হলে চূড়ান্ত সিদ্ধান্ত হতো C — উপরের কোডের লুপ ঠিক এই যুক্তিই অনুসরণ করে, কারণ প্রতিটি ধাপে তুলনা হয় "বর্তমান সেরা" বনাম "পরবর্তী", B বাদ পড়লেও B-এর মান আর ব্যবহার হয় না।

প্র ০৩ যদি A-এর নিজের B/C-ই ১-এর কম হতো, তাহলে ইনক্রিমেন্টাল অ্যানালাইসিসের প্রথম ধাপ কীভাবে বদলাত?

A নিজেই do-nothing-এর তুলনায় ন্যায্য না হলে তাকে বেস-লাইন হিসেবে ব্যবহার করা যাবে না — সেক্ষেত্রে A প্রথমেই বাদ পড়বে এবং পরের সবচেয়ে কম খরচের অল্টারনেটিভ (যেমন B) দিয়ে do-nothing-এর সাথে তুলনা শুরু হবে (B-এর নিজস্ব B/C ≥ ১ কি না)। শুধু do-nothing-এর তুলনায় ন্যায্য এমন প্রথম অল্টারনেটিভ থেকেই ইনক্রিমেন্টাল ধাপ শুরু হতে পারে।

অনুশীলন

  1. চিন্তা করুন: একটি প্রকৌশলী দল "সর্বোচ্চ B/C-এর অল্টারনেটিভ বেছে নেওয়াই সবসময় নিরাপদ, কারণ এটি সবচেয়ে বেশি রিটার্ন দেয়" — এই দাবিতে কী ভুল আছে?

    ভুলটি হলো B/C একটি অনুপাত, নেট মূল্য নয় — এটি প্রজেক্টের স্কেল বিবেচনা করে না। একটি ছোট প্রজেক্ট উচ্চ B/C দিতে পারে অথচ কম মোট বেনিফিট তৈরি করে, আর একটি বড় প্রজেক্ট কিছুটা কম B/C হলেও যথেষ্ট বেশি মোট নেট বেনিফিট তৈরি করতে পারে যদি অতিরিক্ত বিনিয়োগের ΔB/ΔC ≥ ১ হয়। তাই "সর্বোচ্চ রেশিও" নয়, বরং "সর্বোচ্চ ন্যায্য নেট বেনিফিট" — এটিই লক্ষ্য হওয়া উচিত, যা ইনক্রিমেন্টাল অ্যানালাইসিস দেয়।

  2. পরীক্ষা করুন: উপরের কোড সেলে Alternative C-এর benefit-কে $420,000 থেকে বাড়িয়ে $480,000 করে Run চাপুন। B থেকে C-তে ΔB/ΔC কীভাবে বদলায়, এবং চূড়ান্ত সিদ্ধান্ত কী হয়?

    benefit_C = 480,000 হলে pw_benefit_C = 480,000 * 11.46992 ≈ $5,505,562। আগের pw_benefit_B ≈ $3,154,229 অপরিবর্তিত থাকলে ΔPW(benefit) = 5,505,562 - 3,154,229 ≈ $2,351,333, আর ΔPW(cost) আগের মতোই ≈ $1,744,098 — তাই ΔB/ΔC ≈ 1.348 >= 1, এবার C-তে আপগ্রেড করা ন্যায্য হয়ে যায়, চূড়ান্ত সিদ্ধান্ত বদলে C হয়ে যাবে।

আরও পড়ুন · 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 — সব এক জায়গায়।
আগের পাঠ
পাবলিক প্রজেক্টের জন্য বেনিফিট-কস্ট রেশিও