Goodwill calculator
Pay 1,000,000 for a business with 800,000 of identifiable assets and 200,000 of liabilities, and 400,000 of the price is goodwill. Split a deal price into what you can name on the balance sheet and the premium paid on top. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Purchase price
- 1,000,000
- Identifiable assets
- 800,000
- Liabilities assumed
- 200,000
- Net identifiable assets
- 600,000
- Goodwill
- 400,000
Goodwill is the residual that remains when an acquirer pays more than the fair value of the net identifiable assets it takes on in a business combination. This goodwill calculator applies the standard acquisition identity used in introductory accounting and in simplified purchase accounting: goodwill equals purchase price minus identifiable assets plus liabilities assumed, which is the same as purchase price minus net identifiable assets. Accountants, M&A analysts, valuation desks, and students use that single figure to split a deal price into the assets they can name on a closing balance sheet and the unidentifiable premium paid for brand, assembled workforce, and expected synergies. A bargain purchase, where net assets exceed the price, is returned as a negative goodwill amount rather than forced to zero.
How goodwill turns a purchase price into the residual of a combination
Goodwill is not an asset you go out and buy on its own. It is the residual that an acquisition worksheet produces after every identifiable asset and every assumed liability has been measured at fair value. The identity this calculator uses is goodwill equals purchase price minus identifiable assets plus liabilities assumed.
That is the same as purchase price minus net identifiable assets, because net identifiable assets equal the fair value of identifiable assets minus liabilities assumed. Purchase price is the consideration transferred for the acquiree in one currency: cash, equity issued, contingent consideration already measured, or any mix that the deal already reduced to a single finite number. Identifiable assets are the fair values of things that can be separated or that arise from legal rights — cash, receivables, inventory, property, patents, customer contracts — not the residual itself.
Liabilities assumed are the fair values of obligations the acquirer takes on: payables, debt, deferred revenue, and contingent liabilities that meet recognition criteria. Subtracting those two lines from each other yields net identifiable assets; subtracting that net figure from the purchase price yields goodwill. A one-million purchase price, eight-hundred-thousand identifiable assets, and two-hundred-thousand liabilities assumed print net identifiable assets of six hundred thousand and goodwill of four hundred thousand.
Zero liabilities is a legitimate all-asset deal and is not an error. A price below net assets prints negative goodwill, the bargain-purchase residual, rather than clamping to zero. This calculator does not allocate the residual to named intangibles, does not test goodwill for impairment, does not compute non-controlling interest, and does not convert currencies.
You supply three finite numbers that already share one currency; the calculator subtracts them and rounds money half-up to two decimal places so goldens compare byte-for-byte across runtimes. This is a going-in acquisition residual, not a subsequent impairment test, not a full IFRS 3 worksheet with previously held interest, and not a purchase-price-allocation engine that names every intangible.
Where a goodwill calculator earns its keep
Deal teams screening a letter of intent use a goodwill calculator to turn last night's purchase price, the target's identifiable-asset pack, and the liabilities the acquirer would assume into one residual before they open a full purchase-price-allocation model. Audit seniors and technical-accounting desks re-run the same three fields when a close memo asks for the going-in goodwill line, then pin that number next to the bargain-purchase test so every memo starts from one residual rather than from a spreadsheet that silently adds transaction costs.
Valuation and student worksheets drop consideration from the SPA, identifiable assets from the fair-value roll-forward, and assumed liabilities from the notes, and they compare that goodwill with an impairment headroom case rather than treating any one of those as a substitute. This is a different search and a different job from a business-valuation multiple, from an impairment-only tool, from earnout mechanics, and from a full IFRS 3 engine that also computes non-controlling interest and previously held interest: those tools start from different lines and answer different questions.
Failed validation does not consume balance.
What you can do with it
Letter-of-intent residual before a full PPA
Turn last night's purchase price, the target's identifiable-asset pack, and assumed liabilities into one goodwill line before you open a full purchase-price-allocation model.
Close memos and bargain-purchase tests
Pin going-in goodwill next to net identifiable assets so the close memo and the bargain-purchase test share one residual rather than two spreadsheets.
Classroom acquisition-accounting drills
Students enter consideration, identifiable assets, and liabilities assumed to verify the residual identity against textbook combinations with a deterministic oracle.
FAQ
How is acquisition goodwill calculated?
Money amounts round half-up to two decimal places.
What if goodwill comes out negative?
The calculator returns that negative goodwill amount instead of clamping it to zero. It does not automatically recognise a bargain-purchase gain in a journal entry.
What counts as identifiable assets?
Assets that can be separated from the business or arise from legal rights, measured at fair value: cash, receivables, inventory, property, patents and customer contracts. Goodwill itself is not one of them, because it is the residual left after all of these.
What should the purchase price include?
Everything transferred to buy the business, reduced to one number in one currency: cash, shares issued and any contingent payment already measured. Enter the total, not just the cash part, or the goodwill will come out too low.
Does it test goodwill for impairment or split it into intangibles?
No. It only finds the residual of the deal. It does not allocate goodwill to brands or other named intangibles, test it for impairment, work out non-controlling interest or convert currencies.
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/goodwill \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"purchase_price":1000000,"identifiable_assets":800000,"liabilities_assumed":200000}'const res = await fetch("https://api.kit.forhosting.com/fin/goodwill", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"purchase_price": 1000000,
"identifiable_assets": 800000,
"liabilities_assumed": 200000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/goodwill",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"purchase_price": 1000000,
"identifiable_assets": 800000,
"liabilities_assumed": 200000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/goodwill", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"purchase_price":1000000,"identifiable_assets":800000,"liabilities_assumed":200000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"purchase_price":1000000,"identifiable_assets":800000,"liabilities_assumed":200000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/goodwill", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"purchase_price": 1000000,
"identifiable_assets": 800000,
"liabilities_assumed": 200000
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.goodwill",
"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.
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
Enter three finite numbers in one currency — purchase price, fair value of identifiable assets, and liabilities assumed — and the endpoint returns net identifiable assets together with the goodwill amount, rounded half-up to two decimal places. A negative purchase price is rejected with invalid_input and is not billed.
Input contract, response shape, and error behaviour
Zero purchase price, zero identifiable assets, and zero liabilities are allowed: a token consideration or an all-asset deal still produces a finite goodwill figure. Negative identifiable assets or liabilities are accepted as finite numbers because a restatement or a credit can print those signs; the residual follows them instead of hiding behind an absolute value. Example: one million of consideration, eight hundred thousand of identifiable assets, and two hundred thousand of liabilities assumed yield net identifiable assets of six hundred thousand and goodwill of four hundred thousand. POST a JSON body with three required finite numbers in one currency. purchase_price is the consideration transferred for the acquiree and must be greater than or equal to zero; aliases consideration, purchase, price, and consideration_transferred map to the same field so a worksheet can keep its column names. identifiable_assets is the fair value of identifiable assets acquired; aliases assets, fair_value_assets, net_identifiable_assets, and fair_value_net_identifiable_assets are accepted. liabilities_assumed is the fair value of obligations taken on; aliases liabilities, assumed_liabilities, and fair_value_liabilities are accepted. Each numeric field may arrive as a JSON number or a numeric string. Missing fields, empty strings, and non-finite values — NaN, Infinity, or text that does not parse as a number — fail with invalid_input naming the field. A negative purchase_price also fails with invalid_input naming that field, because a negative consideration cannot define an acquisition residual. Those failures are not billed. On success the body echoes purchase_price, identifiable_assets, and liabilities_assumed, then reports net_identifiable_assets as identifiable assets minus liabilities assumed and goodwill as purchase price minus that net figure, both rounded half-up to two decimal places, plus a formula string restating the identity. Pair the JSON with your own rule for which fair-value pack matches the deal you send — this endpoint subtracts the three numbers you send; it does not rebuild a purchase-price allocation, choose a reporting convention, or convert currencies.
Where a goodwill calculator earns its keep
Keep all three fields finite, keep purchase_price non-negative, pin the rounded goodwill in tests, and you get a reproducible acquisition residual for teasers, LMS plugins, and edge workers without standing up a purchase-accounting engine of your own.
Technical questions
Why is a negative purchase price rejected?
A negative consideration cannot define an acquisition residual. purchase_price must be a finite number greater than or equal to zero. Zero is allowed; a negative value fails with invalid_input naming purchase_price and is not billed.
Does this include non-controlling interest or previously held interest?
No. This is the simplified identity goodwill = purchase_price − (identifiable_assets − liabilities_assumed). It does not add non-controlling interest or the fair value of a previously held interest, and it does not run an impairment test.
What does the goodwill calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.