Skip to content

valuation

The valuation.* commands calculate valuation outputs from explicit assumptions and, for selected commands, provider-attributed market context.

These commands are calculators and data shapers. They do not decide whether a security is attractive and should not be presented as investment advice.

Large numeric inputs can use raw numbers or suffixes such as K, M, and B where the command accepts scaled numbers. Rate inputs accept decimals or percentages such as 0.10 and 10%.

Calculate DCF enterprise value from forecast cash flows.

finance valuation.dcf calculates DCF enterprise value from forecast cash flows. It returns parsed inputs, calculated outputs, method metadata, and warnings in the standard JSON envelope.

Use it when forecast free cash flows and terminal assumptions are explicit.

Use either terminal_growth or exit_multiple for the terminal value assumption. Do not use this output as investment advice or infer assumptions silently.

Terminal window
finance valuation.dcf cashflows=100M,120M,140M discount_rate=10% [terminal_growth=3%|exit_multiple=15]
ArgumentRequiredDefaultAccepted valuesDescription
cashflowsYesNoneComma-separated valuesComma-separated cash-flow series. K/M/B suffixes are accepted.
discount_rateYesNoneDecimal rate or percent stringDiscount rate. Percent strings are accepted.
terminal_growthNoNoneDecimal rate or percent stringPerpetuity growth rate for Gordon-growth terminal value.
exit_multipleNoNoneNumberExit multiple alternative to terminal growth.
Terminal window
finance valuation.dcf cashflows=100M,120M,140M discount_rate=10% terminal_growth=3% --output json

This output was generated with finance valuation.dcf cashflows=100M,120M,140M discount_rate=10% terminal_growth=3% --output json.

{
"ok": true,
"data": {
"cashflows": [
100000000.0,
120000000.0,
140000000.0
],
"discount_rate": 0.1,
"terminal_growth": 0.03,
"exit_multiple": null,
"terminal_value": 2059999999.9999998,
"terminal_method": "gordon_growth",
"discounted_cashflows": [
{
"t": 1,
"cashflow": 100000000.0,
"present_value": 90909090.9090909
},
{
"t": 2,
"cashflow": 120000000.0,
"present_value": 99173553.71900825
},
{
"t": 3,
"cashflow": 140000000.0,
"present_value": 105184072.12622085
}
],
"pv_cashflows": 295266716.75432,
"pv_terminal_value": 1547708489.8572495,
"enterprise_value": 1842975206.6115694,
"method": "forecast FCF only, discounted from t=1; do not include an initial t=0 investment cash flow",
"warnings": []
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.cashflowsarrayParsed cash-flow series after K/M/B suffix handling.
data.discount_ratenumberParsed discount rate as a decimal.
data.terminal_growthnumberParsed terminal growth rate as a decimal.
data.exit_multiplenullExit multiple terminal assumption when used.
data.terminal_valuenumberUndiscounted terminal value.
data.terminal_methodstringTerminal value method.
data.discounted_cashflowsarrayPer-period present values for forecast cash flows.
data.discounted_cashflows[].tintegerForecast period index, starting at 1.
data.discounted_cashflows[].cashflownumberForecast cash flow for that period.
data.discounted_cashflows[].present_valuenumberDiscounted present value for that period.
data.pv_cashflowsnumberPresent value of forecast-period cash flows.
data.pv_terminal_valuenumberPresent value of terminal value.
data.enterprise_valuenumberCalculated enterprise value.
data.methodstringFormula or calculation convention used.
data.warningsarrayNon-fatal warnings returned by the command.

Calculate IRR for periodic cash flows.

finance valuation.irr calculates IRR for periodic cash flows. It returns parsed inputs, calculated outputs, method metadata, and warnings in the standard JSON envelope.

Use for deterministic valuation math once assumptions are explicit.

Do not present valuation output as investment advice.

Terminal window
finance valuation.irr cashflows=-100M,30M,40M,50M
ArgumentRequiredDefaultAccepted valuesDescription
cashflowsYesNoneComma-separated valuesComma-separated cash-flow series. K/M/B suffixes are accepted.
Terminal window
finance valuation.irr cashflows=-100M,30M,40M,50M --output json

This output was generated with finance valuation.irr cashflows=-100M,30M,40M,50M --output json.

{
"ok": true,
"data": {
"cashflows": [
-100000000.0,
30000000.0,
40000000.0,
50000000.0
],
"irr": 0.08896339469334985,
"method": "rate r where sum(cashflow_t / (1 + r)^t) = 0",
"solver": "bisection_numeric_approximation",
"warnings": []
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.cashflowsarrayParsed cash-flow series after K/M/B suffix handling.
data.irrnumberInternal rate of return as a decimal.
data.methodstringFormula or calculation convention used.
data.solverstringNumerical solver used for IRR.
data.warningsarrayNon-fatal warnings returned by the command.

Calculate current sales multiples from market cap and revenue.

finance valuation.multiples fetches current quote context and fundamental revenue, then calculates price-to-sales and enterprise-value-to-sales.

Use it when you need provider-attributed price-to-sales and EV-to-sales from current market context and provider revenue.

Do not present valuation output as investment advice.

Terminal window
finance valuation.multiples SYMBOL
ArgumentRequiredDefaultAccepted valuesDescription
symbolYesNoneTextTicker symbol to value.
Terminal window
finance valuation.multiples IOT --output json

This output was generated with finance valuation.multiples IOT --output json.

{
"ok": true,
"data": {
"symbol": "IOT",
"price": 27.99,
"market_cap": 16310054912.0,
"enterprise_value": 15493225472.0,
"cash": 833792000.0,
"debt": 72768000.0,
"net_debt": -761024000.0,
"currency": "USD",
"revenue": 1618635000.0,
"revenue_period": "2026-01-31",
"revenue_period_type": "FY",
"multiples": {
"price_to_sales": 10.076425452310126,
"ev_to_sales": 9.571784541913402
},
"sources": [
"market.quote",
"fundamentals.statement"
],
"warnings": []
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.symbolstringTicker symbol used by the command.
data.pricenumberCurrent provider quote price.
data.market_capnumberMarket capitalization returned by the provider.
data.enterprise_valuenumberCalculated enterprise value.
data.cashnumberCash returned by the command.
data.debtnumberDebt returned by the command.
data.net_debtnumberDebt minus excess cash.
data.currencystringCurrency code returned by the provider.
data.revenuenumberRevenue input or provider revenue value.
data.revenue_periodstringPeriod associated with provider revenue.
data.revenue_period_typestringRevenue period type.
data.multiplesobjectCalculated valuation multiples.
data.multiples.price_to_salesnumberCalculated multiple.
data.multiples.ev_to_salesnumberCalculated multiple.
data.sourcesarrayProvider/source commands used to shape the result.
data.warningsarrayNon-fatal warnings returned by the command.

Calculate NPV for periodic cash flows.

finance valuation.npv calculates NPV for periodic cash flows. It returns parsed inputs, calculated outputs, method metadata, and warnings in the standard JSON envelope.

Use for deterministic valuation math once assumptions are explicit.

Do not present valuation output as investment advice.

Terminal window
finance valuation.npv cashflows=-100M,30M,40M,50M discount_rate=10%
ArgumentRequiredDefaultAccepted valuesDescription
cashflowsYesNoneComma-separated valuesComma-separated cash-flow series. K/M/B suffixes are accepted.
discount_rateYesNoneDecimal rate or percent stringDiscount rate. Percent strings are accepted.
Terminal window
finance valuation.npv cashflows=-100M,30M,40M,50M discount_rate=10% --output json

This output was generated with finance valuation.npv cashflows=-100M,30M,40M,50M discount_rate=10% --output json.

{
"ok": true,
"data": {
"cashflows": [
-100000000.0,
30000000.0,
40000000.0,
50000000.0
],
"discount_rate": 0.1,
"npv": -2103681.442524448,
"method": "sum(cashflow_t / (1 + discount_rate)^t), with first cash flow at t=0",
"warnings": []
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.cashflowsarrayParsed cash-flow series after K/M/B suffix handling.
data.discount_ratenumberParsed discount rate as a decimal.
data.npvnumberNet present value.
data.methodstringFormula or calculation convention used.
data.warningsarrayNon-fatal warnings returned by the command.

Build a simple bull/base/bear sales-multiple scenario table.

finance valuation.scenario combines user-supplied revenue, sales multiples, and share count with current quote context when available.

Use it when you have explicit revenue and sales-multiple assumptions and want bear/base/bull implied market caps or prices.

This is an assumption table, not a recommendation. Use it after documenting the source or rationale for revenue, multiple, and share-count inputs.

Terminal window
finance valuation.scenario SYMBOL revenue=2.2B bear_multiple=7 base_multiple=10 bull_multiple=13 [shares=580M]
ArgumentRequiredDefaultAccepted valuesDescription
symbolYesNoneTextTicker symbol used for current quote context.
revenueYesNoneNumber or K/M/B/T-suffixed numberRevenue input or assumption.
bear_multipleYesNoneNumberBear-case sales multiple.
base_multipleYesNoneNumberBase-case sales multiple.
bull_multipleYesNoneNumberBull-case sales multiple.
sharesNo580MNumber or K/M/B/T-suffixed numberShare count override. K/M/B suffixes are accepted.
Terminal window
finance valuation.scenario IOT revenue=2.2B bear_multiple=7 base_multiple=10 bull_multiple=13 shares=580M --output json

This output was generated with finance valuation.scenario IOT revenue=2.2B bear_multiple=7 base_multiple=10 bull_multiple=13 shares=580M --output json.

{
"ok": true,
"data": {
"symbol": "IOT",
"currency": "USD",
"current_price": 27.99,
"market_cap": 16310054912.0,
"shares": 580000000.0,
"shares_source": {
"source": "user_input"
},
"assumptions": {
"revenue": 2200000000.0,
"multiple_basis": "price_to_sales"
},
"cases": [
{
"case": "bear",
"revenue": 2200000000.0,
"multiple": 7.0,
"implied_market_cap": 15400000000.0,
"implied_price": 26.551724137931036,
"upside_pct": -5.1385346983528475
},
{
"case": "base",
"revenue": 2200000000.0,
"multiple": 10.0,
"implied_market_cap": 22000000000.0,
"implied_price": 37.93103448275862,
"upside_pct": 35.51637900235305
},
{
"case": "bull",
"revenue": 2200000000.0,
"multiple": 13.0,
"implied_market_cap": 28600000000.0,
"implied_price": 49.310344827586206,
"upside_pct": 76.17129270305898
}
],
"warnings": []
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.symbolstringTicker symbol used by the command.
data.currencystringCurrency code returned by the provider.
data.current_pricenumberCurrent provider quote price used for scenario upside.
data.market_capnumberMarket capitalization returned by the provider.
data.sharesnumberShare count used in scenario calculations.
data.shares_sourceobjectSource of the share count.
data.shares_source.sourcestringSource of the share-count input, such as user_input or provider context.
data.assumptionsobjectUser-supplied scenario assumptions after parsing.
data.assumptions.revenuenumberRevenue input or provider revenue value.
data.assumptions.multiple_basisstringMultiple basis used for the scenario, such as price_to_sales.
data.casesarrayBear/base/bull scenario rows.
data.cases[].casestringScenario label: bear, base, or bull.
data.cases[].revenuenumberRevenue input or provider revenue value.
data.cases[].multiplenumberSales multiple used for the scenario row.
data.cases[].implied_market_capnumberRevenue multiplied by the scenario multiple.
data.cases[].implied_pricenumberImplied market cap divided by share count.
data.cases[].upside_pctnumberImplied price change versus current provider quote.
data.warningsarrayNon-fatal warnings returned by the command.

Calculate weighted average cost of capital.

finance valuation.wacc calculates weighted average cost of capital. It returns parsed inputs, calculated outputs, method metadata, and warnings in the standard JSON envelope.

Use for deterministic valuation math once assumptions are explicit.

Do not present valuation output as investment advice.

Terminal window
finance valuation.wacc equity_value=10B debt_value=1B cost_of_equity=10% cost_of_debt=5% tax_rate=21%
ArgumentRequiredDefaultAccepted valuesDescription
equity_valueYesNoneNumber or K/M/B/T-suffixed numberMarket value of equity.
debt_valueYesNoneNumber or K/M/B/T-suffixed numberDebt value.
cost_of_equityYesNoneDecimal rate or percent stringCost of equity. Percent strings are accepted.
cost_of_debtYesNoneDecimal rate or percent stringCost of debt. Percent strings are accepted.
tax_rateNo0Decimal rate or percent stringTax rate. Percent strings are accepted.
Terminal window
finance valuation.wacc equity_value=10B debt_value=1B cost_of_equity=10% cost_of_debt=5% tax_rate=21% --output json

This output was generated with finance valuation.wacc equity_value=10B debt_value=1B cost_of_equity=10% cost_of_debt=5% tax_rate=21% --output json.

{
"ok": true,
"data": {
"wacc": 0.0945,
"weights": {
"equity": 0.9090909090909091,
"debt": 0.09090909090909091
},
"inputs": {
"equity_value": 10000000000.0,
"debt_value": 1000000000.0,
"cost_of_equity": 0.1,
"cost_of_debt": 0.05,
"tax_rate": 0.21
},
"method": "E/(D+E)*cost_of_equity + D/(D+E)*cost_of_debt*(1-tax_rate)",
"warnings": []
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.waccnumberWeighted average cost of capital as a decimal.
data.weightsobjectCapital structure weights used by WACC calculations.
data.weights.equitynumberCapital structure weight.
data.weights.debtnumberCapital structure weight.
data.inputsobjectParsed numeric inputs used by the calculation.
data.inputs.equity_valuenumberParsed input value used by the formula.
data.inputs.debt_valuenumberParsed input value used by the formula.
data.inputs.cost_of_equitynumberCAPM cost of equity as a decimal.
data.inputs.cost_of_debtnumberParsed input value used by the formula.
data.inputs.tax_ratenumberParsed input value used by the formula.
data.methodstringFormula or calculation convention used.
data.warningsarrayNon-fatal warnings returned by the command.