WACC คือ — Weighted Average Cost of Capital
WACC คืออะไร

WACC Weighted Average Cost of Capital ต้นทุนเงินทุนถัวเฉลี่ยถ่วงน้ำหนัก Discount Rate DCF Valuation Capital Budgeting
| ส่วนประกอบ | สัญลักษณ์ | ที่มา | ตัวอย่าง |
|---|---|---|---|
| Market Cap (Equity) | E | หุ้น × ราคา | 600 ล้านบาท |
| Total Debt | D | หนี้สินรวม | 400 ล้านบาท |
| Total Value | V = E+D | มูลค่ารวม | 1,000 ล้านบาท |
| Cost of Equity | Re | CAPM = Rf + β(Rm-Rf) | 12% |
| Cost of Debt | Rd | ดอกเบี้ยเฉลี่ย | 5% |
| Tax Rate | Tc | อัตราภาษี CIT | 20% |
| WACC | - | (E/V×Re)+(D/V×Rd×(1-Tc)) | 8.8% |
สูตรและการคำนวณ
# === WACC Calculation ===
from dataclasses import dataclass
@dataclass
class WACCInput:
equity_value: float # E: Market Cap (ล้านบาท)
debt_value: float # D: Total Debt (ล้านบาท)
cost_of_equity: float # Re: % (CAPM)
cost_of_debt: float # Rd: % (ดอกเบี้ยเฉลี่ย)
tax_rate: float # Tc: % (อัตราภาษี)
def calculate_wacc(w: WACCInput) -> dict:
total_value = w.equity_value + w.debt_value
equity_weight = w.equity_value / total_value
debt_weight = w.debt_value / total_value
equity_component = equity_weight * w.cost_of_equity
debt_component = debt_weight * w.cost_of_debt * (1 - w.tax_rate)
wacc = equity_component + debt_component
return {
"total_value": total_value,
"equity_weight": equity_weight,
"debt_weight": debt_weight,
"equity_component": equity_component,
"debt_component": debt_component,
"wacc": wacc,
}
# ตัวอย่าง: บริษัท ABC
abc = WACCInput(
equity_value=600, # Market Cap 600 ล้าน
debt_value=400, # หนี้สิน 400 ล้าน
cost_of_equity=0.12, # Re = 12% (จาก CAPM)
cost_of_debt=0.05, # Rd = 5% (ดอกเบี้ยเฉลี่ย)
tax_rate=0.20, # Tc = 20% (ภาษี CIT)
)
result = calculate_wacc(abc)
print("=== WACC Calculation: ABC ===")
print(f" Equity Weight: {result['equity_weight']:.1%}")
print(f" Debt Weight: {result['debt_weight']:.1%}")
print(f" Equity Component: {result['equity_component']:.2%}")
print(f" Debt Component: {result['debt_component']:.2%}")
print(f" WACC: {result['wacc']:.2%}")
# CAPM: Cost of Equity
# Re = Rf + β × (Rm - Rf)
# Rf = Risk-free Rate (พันธบัตรรัฐบาล 10 ปี เช่น 2.5%)
# β = Beta (ความผันผวนเทียบตลาด เช่น 1.2)
# Rm = Market Return (ผลตอบแทนตลาดเฉลี่ย เช่น 10%)
# Re = 2.5% + 1.2 × (10% - 2.5%) = 2.5% + 9% = 11.5%
rf = 0.025 # Risk-free Rate 2.5%
beta = 1.2 # Beta
rm = 0.10 # Market Return 10%
re_capm = rf + beta * (rm - rf)
print(f"\n=== CAPM ===")
print(f" Rf: {rf:.1%} | Beta: {beta} | Rm: {rm:.1%}")
print(f" Re = {rf:.1%} + {beta} × ({rm:.1%} - {rf:.1%}) = {re_capm:.1%}")
การใช้งาน
# === DCF Valuation using WACC ===
@dataclass
class DCFInput:
fcf_projections: list # Free Cash Flow 5 ปี (ล้านบาท)
terminal_growth: float # Terminal Growth Rate
wacc: float # WACC
def dcf_valuation(d: DCFInput) -> dict:
# PV of projected FCF
pv_fcf = []
for i, fcf in enumerate(d.fcf_projections, 1):
pv = fcf / (1 + d.wacc) ** i
pv_fcf.append(pv)
# Terminal Value (Gordon Growth Model)
last_fcf = d.fcf_projections[-1]
terminal_value = last_fcf * (1 + d.terminal_growth) / (d.wacc - d.terminal_growth)
pv_terminal = terminal_value / (1 + d.wacc) ** len(d.fcf_projections)
enterprise_value = sum(pv_fcf) + pv_terminal
return {
"pv_fcf": pv_fcf,
"total_pv_fcf": sum(pv_fcf),
"terminal_value": terminal_value,
"pv_terminal": pv_terminal,
"enterprise_value": enterprise_value,
}
dcf = DCFInput(
fcf_projections=[100, 110, 121, 133, 146], # FCF ปีที่ 1-5
terminal_growth=0.03, # Terminal Growth 3%
wacc=0.088, # WACC 8.8%
)
val = dcf_valuation(dcf)
print("=== DCF Valuation ===")
for i, pv in enumerate(val["pv_fcf"], 1):
print(f" Year {i} FCF PV: {pv:.1f} ล้านบาท")
print(f" Total PV of FCF: {val['total_pv_fcf']:.1f} ล้านบาท")
print(f" Terminal Value: {val['terminal_value']:.1f} ล้านบาท")
print(f" PV of Terminal: {val['pv_terminal']:.1f} ล้านบาท")
print(f" Enterprise Value: {val['enterprise_value']:.1f} ล้านบาท")
ปัจจัยที่ส่งผล
# === WACC Sensitivity Analysis ===
@dataclass
class Scenario:
name: str
equity_pct: float
cost_equity: float
cost_debt: float
tax_rate: float
wacc: float
note: str
scenarios = [
Scenario("Conservative (หนี้น้อย)",
0.80, 0.12, 0.05, 0.20,
0.80*0.12 + 0.20*0.05*0.80,
"ปลอดภัย WACC สูงกว่า"),
Scenario("Balanced (สมดุล)",
0.60, 0.12, 0.05, 0.20,
0.60*0.12 + 0.40*0.05*0.80,
"สมดุล WACC ต่ำลง"),
Scenario("Aggressive (หนี้มาก)",
0.40, 0.14, 0.06, 0.20,
0.40*0.14 + 0.60*0.06*0.80,
"Re สูงขึ้นเพราะ Risk, Rd สูงขึ้น"),
Scenario("High Interest Rate",
0.60, 0.15, 0.08, 0.20,
0.60*0.15 + 0.40*0.08*0.80,
"ดอกเบี้ยสูง WACC สูงมาก"),
Scenario("Low Tax Rate",
0.60, 0.12, 0.05, 0.10,
0.60*0.12 + 0.40*0.05*0.90,
"Tax Shield น้อย WACC สูงขึ้นเล็กน้อย"),
]
print("=== WACC Scenarios ===")
for s in scenarios:
print(f" [{s.name}] WACC: {s.wacc:.2%}")
print(f" E/V: {s.equity_pct:.0%} | Re: {s.cost_equity:.0%} | Rd: {s.cost_debt:.0%} | Tax: {s.tax_rate:.0%}")
print(f" Note: {s.note}")
เคล็ดลับ
- CAPM: ใช้ CAPM คำนวณ Cost of Equity ถูกต้องกว่าเดา
- Beta: ดู Beta จาก Bloomberg Reuters หรือคำนวณจาก Historical Return
- Tax Shield: อย่าลืมคูณ (1-Tc) สำหรับ Cost of Debt เพราะดอกเบี้ยลดภาษี
- Market Value: ใช้ Market Value ไม่ใช่ Book Value สำหรับ Weight
- Sensitivity: ทำ Sensitivity Analysis เปลี่ยน WACC ±1-2% ดูผลกระทบ
Best Practices สำหรับนักพัฒนา

การเขียนโค้ดที่ดีไม่ใช่แค่ทำให้โปรแกรมทำงานได้ แต่ต้องเขียนให้อ่านง่าย ดูแลรักษาง่าย และ Scale ได้ หลัก SOLID Principles เป็นพื้นฐานสำคัญที่นักพัฒนาทุกคนควรเข้าใจ ได้แก่ Single Responsibility ที่แต่ละ Class ทำหน้าที่เดียว Open-Closed ที่เปิดให้ขยายแต่ปิดการแก้ไข Liskov Substitution ที่ Subclass ต้องใช้แทน Parent ได้ Interface Segregation ที่แยก Interface ให้เล็ก และ Dependency Inversion ที่พึ่งพา Abstraction ไม่ใช่ Implementation
เรื่อง Testing ก็ขาดไม่ได้ ควรเขียน Unit Test ครอบคลุมอย่างน้อย 80% ของ Code Base ใช้ Integration Test ทดสอบการทำงานร่วมกันของ Module ต่างๆ และ E2E Test สำหรับ Critical User Flow เครื่องมือยอดนิยมเช่น Jest, Pytest, JUnit ช่วยให้การเขียน Test เป็นเรื่องง่าย
เนื้อหาเกี่ยวข้อง — HAProxy Advanced Technical Debt Management
เรื่อง Version Control ด้วย Git ใช้ Branch Strategy ที่เหมาะกับทีม เช่น Git Flow สำหรับโปรเจคใหญ่ หรือ Trunk-Based Development สำหรับทีมที่ Deploy บ่อย ทำ Code Review ทุก Pull Request และใช้ CI/CD Pipeline ทำ Automated Testing และ Deployment
แนะนำเพิ่มเติม — บทวิเคราะห์จาก XM Signal
เปรียบเทียบข้อดีและข้อเสีย
จากตารางเปรียบเทียบจะเห็นว่าข้อดีมีมากกว่าข้อเสียอย่างชัดเจน โดยเฉพาะในแง่ของประสิทธิภาพและความสามารถในการ Scale สำหรับข้อเสียส่วนใหญ่สามารถแก้ไขได้ด้วยการเรียนรู้อย่างเป็นระบบและวางแผนทรัพยากรให้เหมาะสม
เนื้อหาเกี่ยวข้อง — อ่านต่อ: AWS Amplify MLOps Workflow
WACC คืออะไร
Weighted Average Cost of Capital ต้นทุนเงินทุนถัวเฉลี่ย Debt Equity Weight Discount Rate DCF IRR ผลตอบแทนขั้นต่ำ
คำนวณอย่างไร
WACC = (E/V×Re) + (D/V×Rd×(1-Tc)) E Market Cap D Total Debt Re CAPM Rd ดอกเบี้ย Tc ภาษี ตัวอย่าง 60/40 Re12% Rd5% Tax20% = 8.8%
แนะนำเพิ่มเติม — อีบุ๊กการลงทุน SiamCafeBook
เนื้อหาเกี่ยวข้อง — แนะนำให้อ่าน กลยุทธ์ demand supply zone
ใช้ทำอะไร
DCF Valuation Discount Rate Capital Budgeting IRR > WACC EVA M&A Performance Benchmark Optimal Capital Structure
ปัจจัยที่ส่งผลมีอะไร
Risk-free Rate Beta Capital Structure Tax Rate Credit Rating Market Risk Premium ดอกเบี้ยตลาด สัดส่วนหนี้ ภาษี ความเสี่ยง
เนื้อหาเกี่ยวข้อง — ACME Protocol Log Management ELK
สรุป
WACC Weighted Average Cost of Capital ต้นทุนเงินทุน CAPM DCF Valuation Capital Budgeting Debt Equity Tax Shield Sensitivity Analysis





