WACC calculator
With 600,000 of equity costing 12% and 400,000 of debt at 6% before a 25% tax rate, WACC is 9%: the blended return the firm must earn on its capital. Enter the five figures as percents and amounts. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Equity value
- 600,000
- Debt value
- 400,000
- Cost of equity
- 12
- Cost of debt
- 6
- Tax rate
- 25
- Total capital
- 1,000,000
- Equity weight
- 0.6
- Debt weight
- 0.4
- After tax cost of debt
- 4.5
Weighted average cost of capital, abbreviated WACC, is the blended required return a firm must earn on the capital it actually uses so that equity investors and lenders are both paid, after the interest tax shield. Analysts, CFOs, and valuation students compute it from five numbers in the same currency: market value of equity, market value of debt, cost of equity as a percent, pretax cost of debt as a percent, and the corporate tax rate as a percent. This WACC calculator applies the standard after-tax identity, returns the result as a percentage, and rejects a zero or negative total of equity plus debt because the capital weights would be undefined.
What WACC measures and how the after-tax blend is computed
The weighted average cost of capital, or WACC, is the blended hurdle rate that mixes the return equity holders require with the after-tax return lenders require, each scaled by its share of total capital. Standard corporate-finance texts write the after-tax identity as WACC equals equity over total capital times the cost of equity, plus debt over total capital times the pretax cost of debt times one minus the corporate tax rate.
Equity is the market value of equity, debt is the market value of interest-bearing debt, and total capital is the sum of those two stocks in the same currency. Costs and the tax rate are entered as percents: twelve means twelve percent, twenty-five means twenty-five percent, never a decimal fraction such as 0.12.
A firm with 600,000 of equity, 400,000 of debt, a twelve percent cost of equity, a six percent pretax cost of debt, and a twenty-five percent tax rate has a WACC of nine percent, because equity is sixty percent of one million of total capital, debt is forty percent, and the after-tax cost of debt is four and a half percent. An all-equity firm with a ten percent cost of equity has a WACC of ten percent regardless of the unused debt cost, because the debt weight is zero.
Where a WACC calculator earns its keep versus CAPM, ROIC, and a simple average
Equity research and discounted-cash-flow practice need a reproducible WACC so a name can be compared with its return on invested capital: when ROIC exceeds WACC the firm is earning economic profit on the capital it actually uses, and when it falls short value is being destroyed. Capital-budgeting committees use the same percentage as the discount rate for unlevered project cash flows, so two analysts who disagree on beta or on the market-risk premium can still pin the five-number blend and see whether a proposal clears the hurdle.
Classroom and CFA-style drills need an oracle that rejects a zero or negative total-capital denominator, still returns the equity cost alone when debt is zero, and applies the tax shield only to the debt weight, because those three cases are how students confuse WACC with a simple average of two rates.
This search is not a CAPM calculator, which estimates the cost of equity from beta, the risk-free rate, and the equity risk premium, and it is not a ROIC calculator, which divides net operating profit after tax by invested capital. Engineers writing valuation tests pin known-good pairs — six hundred thousand of equity and four hundred thousand of debt at twelve, six, and twenty-five percent; an all-equity ten percent case; and a zero-capital rejection — so a spreadsheet library cannot silently skip the tax shield.
Failed validation does not consume balance.
What you can do with it
Equity research and DCF models
Blend market equity, market debt, cost of equity, pretax cost of debt, and the tax rate into a single hurdle so a name can be compared with ROIC before you layer on a full residual-income model.
Teaching and exam practice
Generate reproducible WACC answers for homework keys, worksheets, and CFA-style valuation drills that ask for the after-tax weighted average of equity and debt costs.
FAQ
Why must total capital be greater than zero?
A single stock may be zero when the firm is all-equity or all-debt.
Are the cost and tax fields percents or decimals?
Percents. Enter 12 for a 12% cost of equity, 6 for a 6% pretax cost of debt, and 25 for a 25% tax rate. Do not enter 0.12, 0.06, or 0.25 unless you truly mean those percent points.
How is WACC different from CAPM or ROIC?
CAPM estimates the cost of equity from beta and a market premium; this tool takes that cost as an input. ROIC divides NOPAT by invested capital and is a return, not a hurdle. WACC is the after-tax blend of equity and debt costs weighted by capital structure — a different search and a different valuation question.
What does the calculator cost?
It is free in your browser on this page.
What is the WACC of a company with no debt?
It equals the cost of equity. With a debt weight of zero, the cost of debt no longer counts, so an all-equity firm with a 10% cost of equity has a WACC of 10%.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/fin/wacc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"equity_value":600000,"debt_value":400000,"cost_of_equity":12,"cost_of_debt":6,"tax_rate":25}'const res = await fetch("https://api.kit.forhosting.com/fin/wacc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"equity_value": 600000,
"debt_value": 400000,
"cost_of_equity": 12,
"cost_of_debt": 6,
"tax_rate": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/wacc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"equity_value": 600000,
"debt_value": 400000,
"cost_of_equity": 12,
"cost_of_debt": 6,
"tax_rate": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/wacc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"equity_value":600000,"debt_value":400000,"cost_of_equity":12,"cost_of_debt":6,"tax_rate":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"equity_value":600000,"debt_value":400000,"cost_of_equity":12,"cost_of_debt":6,"tax_rate":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/wacc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"equity_value": 600000,
"debt_value": 400000,
"cost_of_equity": 12,
"cost_of_debt": 6,
"tax_rate": 25
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.wacc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Successful API calls are billed at $0.002; invalid input is not charged.
What WACC measures and how the after-tax blend is computed
A zero or negative total of equity plus debt is not allowed: dividing by it is undefined, and this calculator returns invalid_input instead of a fake infinity. This page does not estimate beta, CAPM, or a credit spread.
Input contract, validation, rounding, and reading the result
There is no clock, locale, or randomness in the path. Prefer bare numbers over formatted strings; percent signs, thousands separators, and currency marks are not parsed. POST a JSON body with five required finite numbers. equity_value is the market value of equity in any currency unit; aliases E, equity, market_value_equity, and equity_market_value are accepted so a spreadsheet export does not need a rename step. debt_value is the market value of interest-bearing debt in the same unit; aliases D, debt, market_value_debt, and debt_market_value are accepted. Either stock may be zero when the firm is all-equity or all-debt, but their sum — total capital — must be strictly greater than zero. cost_of_equity is the required equity return as a percent, not a decimal fraction; aliases re, ke, equity_cost, and cost_equity are accepted. cost_of_debt is the pretax yield on debt as a percent; aliases rd, kd, debt_cost, and cost_debt are accepted. tax_rate is the corporate tax rate as a percent between zero and one hundred inclusive; aliases tc, tax, corporate_tax_rate, and tax_percent are accepted. Each field may arrive as a JSON number or as a numeric string that matches a strict finite decimal pattern. Absolute values of the capital stocks must stay within one quadrillion so intermediate products remain finite in IEEE double precision on the Worker and in the browser. Missing fields, empty strings, non-finite values, a tax rate outside zero to one hundred, a non-positive total capital, or a value outside those limits fail with invalid_input naming the issue and are not billed. On success the body echoes the five inputs, returns total_capital, equity_weight, debt_weight, after_tax_cost_of_debt as a percent, wacc_percent as the blended hurdle, wacc_decimal as the unscaled ratio, and a formula string restating the identity. Pricing for a successful item is a flat $0.002.
Where a WACC calculator earns its keep versus CAPM, ROIC, and a simple average
Keep requests small, pin the rounded wacc_percent in tests, and you get stable cost-of-capital arithmetic for widgets, research notes, and edge workers without standing up a full capital-structure stack of your own.
Integration use cases
Capital-budgeting committees
Use the API as a shared discount-rate oracle across project memos so two teams that disagree on beta still agree on the five-number after-tax WACC they actually plug into the cash-flow model.
Technical questions
What is the WACC formula used here?
wacc_percent = (equity_value / total_capital) × cost_of_equity + (debt_value / total_capital) × cost_of_debt × (1 − tax_rate/100). Rates are percents: 12 means 12%. The tool also returns wacc_decimal, which is that percentage divided by one hundred.