估值需要一個反映現金流所在國家的股權風險溢酬。Narwhal 為每個國家回傳成熟市場溢酬、國家違約利差、國家風險溢酬及其合計,並提供使用同一溢酬的公司資金成本路徑。
讀取某個國家的股權風險溢酬
curl -s "https://api.narwhalapi.com/v1/economics/BRA/equity-risk-premium" \
-H "Authorization: Bearer $NARWHAL_API_KEY"{
"country": "BRA",
"as_of": "2026-11-01",
"unit": "percent",
"mature_erp": "3.2973",
"country_default_spread": "2.1300",
"volatility_ratio": "1.5211",
"country_risk_premium": "3.2400",
"total_erp": "6.5373",
"basis": {
"mature_erp": "observed",
"country_default_spread": "table",
"volatility_ratio": "table",
"country_risk_premium": "table",
"total_erp": "table"
},
"methodology_url": "https://narwhalapi.com/methodology/equity-risk-premium"
}所有數字均以百分比表示,as_of 是這些數字所描述的日期。五個數字層層遞進,如股權風險溢酬方法說明所述。
mature_erp是成熟市場(即美國)的隱含溢酬。每個國家的回應中它都相同。country_default_spread是該國因違約風險而比成熟市場多支付的殖利率。volatility_ratio是股票波動率除以政府公債波動率。country_risk_premium是利差乘以該比率。以巴西為例,2.13 乘以 1.5211 等於 3.24。total_erp是mature_erp加上country_risk_premium。以巴西為例,3.2973 加 3.24 等於 6.5373。
basis 物件說明各部分是 observed、modelled 還是 table。table 值來自公開的國家風險表。這些資料列與該表一樣新,因此在表更新時才會變動,而不是隨每次債券殖利率變動。美國回應的利差為 0,volatility_ratio 為 null,因為美國就是成熟市場,所以它的 total_erp 等於 mature_erp。
把溢酬換算成權益成本
一個國家專案的權益成本,等於無風險利率加上貝塔乘以現金流發生國的總溢酬。方法說明指出這些數字以美元計,所以應使用美國無風險利率。腳本從殖利率曲線路徑讀取美國 10 年期殖利率,取你給定的貝塔,再從 GET /v1/economics/equity-risk-premium 讀取所有國家,並在使用該列之前檢查 mature_erp 加 country_risk_premium 是否等於 total_erp。
- 選擇輸入值 無風險利率來自 API。貝塔 1.2 只是佔位值,請換成你自己的估計,因為溢酬路徑不提供貝塔。
- 執行腳本 它會印出國家數量以及四個國家的權益成本。
import os from decimal import Decimal import requests HEAD = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} API = "https://api.narwhalapi.com" def get(path, **params): r = requests.get(API + path, params=params, headers=HEAD, timeout=15) r.raise_for_status() return r.json() # Risk-free rate: the 10 year US yield, in percent rf = Decimal(get("/v1/economics/USA/yield-curve", maturity="10y")["yields"][0]["yield_percent"]) beta = Decimal("1.2") # your own estimate for the project countries = {c["country"]: c for c in get("/v1/economics/equity-risk-premium")["countries"]} print(len(countries), "countries") for code in ("USA", "IDN", "BRA", "ZAF"): c = countries[code] mature, crp, total = (Decimal(c[k]) for k in ("mature_erp", "country_risk_premium", "total_erp")) assert mature + crp == total print(f"{code} as_of {c['as_of']} mature {mature} crp {crp} total {total} " f"cost of equity {rf + beta * total:.2f}%") - 查看結果 10 年期殖利率為 4.91%。腳本在清單的 175 個國家中,回傳美國的權益成本為 8.87%,印尼 11.82,巴西 12.75,南非 13.55。
這些是美元折現率。本幣折現率需要加上兩種貨幣之間的通膨差,如方法說明所述。
取得上市公司的貝塔、負債成本與 WACC
對於上市股票,資金成本路徑做同樣的計算,並繼續算出 WACC。它在一次回答中回傳貝塔、無風險利率、所用的溢酬、權益成本、負債成本、稅率和權重。預設的溢酬是 Narwhal 自己為該股票所在國家給出的合計值。你也可以透過 erp 傳入自己的值。資金成本方法說明列出了公式與拒絕情形。
curl -s "https://api.narwhalapi.com/v1/equities/XNAS:MSFT/cost-of-capital" \
-H "Authorization: Bearer $NARWHAL_API_KEY"{
"id": "XNAS:MSFT",
"currency": "USD",
"beta": {
"window": "2y",
"frequency": "weekly",
"observations": 103,
"raw": "1.1507",
"adjusted": "1.1010",
"used": "raw"
},
"risk_free": {
"rate": "4.9100",
"source": "yield_curve",
"as_of": "2026-11-02"
},
"equity_risk_premium": {
"rate": "3.2973",
"source": "narwhal",
"country": "USA",
"as_of": "2026-11-01",
"basis": "observed"
},
"cost_of_equity": "8.7042",
"cost_of_debt": {
"pre_tax": "8.1917",
"after_tax": "6.0922",
"period": "ttm"
},
"tax_rate": {
"rate": "25.6300",
"basis": "table"
},
"weights": {
"equity": "99.0666",
"debt": "0.9334"
},
"wacc": "8.6798",
"warnings": [],
"methodology_url": "https://narwhalapi.com/methodology/cost-of-capital"
}cost_of_equity 的 8.7042 等於無風險利率 4.91 加上原始貝塔 1.1507 乘以溢酬 3.2973。權重為權益 99.0666%、負債 0.9334%,wacc 為 8.6798%。完整回應會為每個輸入值附上依據與日期,需要留意的數字會在 warnings 中給出項目,這裡該清單為空。
溢酬會隨時間變化嗎?
會。歷史路徑列出較早的日期。印尼在 as_of 為 2026-10-28 時 total_erp 為 5.6830,在 as_of 為 2026-11-01 時為 5.7573,而 country_default_spread 維持在 1.6200。mature_erp 從 3.2230 變為 3.2973,因此帶動了合計值。
請在估值中使用的任何利率旁儲存 as_of 日期,以便日後追溯該數字。需要了解溢酬在不同日期之間如何變動時,請讀取歷史路徑。
資金成本路徑無法回答時會怎樣?
它回傳 422 並指出問題,而不是填補缺口。對 AAPL 的呼叫回傳了 inputs_unavailable,詳情是沒有利息費用資料。該路徑同樣會拒絕銀行和保險公司。在路徑支援的地方傳入你自己的 erp、risk_free 或 tax_rate,並在程式碼中處理 422。
涵蓋哪些國家?
在上面的執行中,清單路徑回傳了 175 個國家。只有當某個國家的所有輸入值都可用時它才會出現,所以缺少某個代碼意味著沒有該列,而不是零。巴西、印尼、南非和美國都有回應。
發布於 。