The finance developer workbenchSearch the reference Development · 0.1.4 · unpublished

Learn / value a company

Value a company’s cash flows

A five-year sample FCFF forecast produces enterprise value. A discount rate is a stated assumption—not a market fact. No debt/cash bridge or share count is silently invented.

Try it

Sample data

A five-year sample FCFF forecast produces enterprise value. A discount rate is a stated assumption—not a market fact. No debt/cash bridge or share count is silently invented.

Loading the local calculator. The verified sample is displayed below.

Enterprise value14,939,964.5744USD · not equity value
Forecast present value4,226,680.0951USD
Terminal present value10,713,284.4792USD
Terminal share of value0.7171decimal fraction
Sensitivity to the annual discount rate
05.64M11.28M16.91M22.55M0.0750.125Annual discount rate · decimal

Five-year FCFF valuationEnterprise value · USD

Exact chart data
SeriesAnnual discount rate · decimalEnterprise value · USD
Five-year FCFF valuation0.0750000000000000122550640.564338207
Five-year FCFF valuation0.0775000000000000121462841.345692933
Five-year FCFF valuation0.0800000000000000220474055.55239091
Five-year FCFF valuation0.0825000000000000219571366.975535847
Five-year FCFF valuation0.08518744012.12760844
Five-year FCFF valuation0.0875000000000000117982949.697863124
Five-year FCFF valuation0.0900000000000000117280529.364177857
Five-year FCFF valuation0.0925000000000000116630234.202276524
Five-year FCFF valuation0.0950000000000000116026478.292980412
Five-year FCFF valuation0.097515464446.203826837
Five-year FCFF valuation0.114939964.574368779
Five-year FCFF valuation0.1025000000000000114449398.555937432
Five-year FCFF valuation0.1050000000000000113989567.66895352
Five-year FCFF valuation0.1075000000000000113557676.95891355
Five-year FCFF valuation0.1100000000000000113151260.301323608
Five-year FCFF valuation0.1125000000000000212768133.425791131
Five-year FCFF valuation0.1150000000000000212406354.769438239
Five-year FCFF valuation0.1175000000000000212064192.67841369
Five-year FCFF valuation0.1200000000000000111740097.788116653
Five-year FCFF valuation0.1225000000000000111432679.652620006
Five-year FCFF valuation0.12511140686.879682977
Assumptions & conventions
{
  "contractVersion": 1,
  "modelVersion": 1,
  "valuationDate": "2026-01-01",
  "currency": "USD",
  "valuationBasis": "firm",
  "annualDiscountRate": 0.1,
  "discountRateSource": "user-supplied",
  "compounding": "annual",
  "dayCount": "ACT/365F",
  "terminalValueMethod": {
    "method": "perpetual-growth",
    "terminalCashFlow": 1262476.9600000004,
    "perpetualGrowthRate": 0.025
  },
  "terminalCashFlowConvention": "final-forecast-period-flow",
  "bridgeDecision": "no-bridge-supplied-equity-value-absent",
  "shareCountDecision": "no-shares-supplied-per-share-absent"
}
Diagnostics & warnings
{
  "projectedPeriodCount": 5,
  "terminalValueShareOfValue": 0.7170890148979001,
  "warnings": [],
  "exclusions": []
}
Full result · JSON
{
  "valuation": {
    "projectedCashFlows": [
      {
        "timeYears": 1,
        "cashFlowAmount": 1000000,
        "discountFactor": 0.9090909090909091,
        "presentValue": 909090.9090909091
      },
      {
        "timeYears": 2,
        "cashFlowAmount": 1060000,
        "discountFactor": 0.8264462809917354,
        "presentValue": 876033.0578512396
      },
      {
        "timeYears": 3,
        "cashFlowAmount": 1123600.0000000002,
        "discountFactor": 0.7513148009015775,
        "presentValue": 844177.3102930126
      },
      {
        "timeYears": 4,
        "cashFlowAmount": 1191016.0000000002,
        "discountFactor": 0.6830134553650704,
        "presentValue": 813479.9535550849
      },
      {
        "timeYears": 5,
        "cashFlowAmount": 1262476.9600000004,
        "discountFactor": 0.6209213230591549,
        "presentValue": 783898.8643349
      }
    ],
    "projectedCashFlowPresentValue": 4226680.095125146,
    "terminalValue": 17253851.78666667,
    "terminalValuePresentValue": 10713284.479243632,
    "assumptions": {
      "contractVersion": 1,
      "modelVersion": 1,
      "valuationDate": "2026-01-01",
      "currency": "USD",
      "valuationBasis": "firm",
      "annualDiscountRate": 0.1,
      "discountRateSource": "user-supplied",
      "compounding": "annual",
      "dayCount": "ACT/365F",
      "terminalValueMethod": {
        "method": "perpetual-growth",
        "terminalCashFlow": 1262476.9600000004,
        "perpetualGrowthRate": 0.025
      },
      "terminalCashFlowConvention": "final-forecast-period-flow",
      "bridgeDecision": "no-bridge-supplied-equity-value-absent",
      "shareCountDecision": "no-shares-supplied-per-share-absent"
    },
    "diagnostics": {
      "projectedPeriodCount": 5,
      "terminalValueShareOfValue": 0.7170890148979001,
      "warnings": [],
      "exclusions": []
    },
    "valuationBasis": "firm",
    "enterpriseValue": 14939964.574368779,
    "equityValueAbsentReason": "no enterpriseToEquityBridge was supplied — bridge fields are never silently zeroed, so equity value is absent",
    "valuePerShareAbsentReason": "dilutedSharesOutstanding was not supplied — a per-share value needs the share count"
  },
  "sensitivity": [
    {
      "x": 0.07500000000000001,
      "y": 22550640.564338207
    },
    {
      "x": 0.07750000000000001,
      "y": 21462841.345692933
    },
    {
      "x": 0.08000000000000002,
      "y": 20474055.55239091
    },
    {
      "x": 0.08250000000000002,
      "y": 19571366.975535847
    },
    {
      "x": 0.085,
      "y": 18744012.12760844
    },
    {
      "x": 0.08750000000000001,
      "y": 17982949.697863124
    },
    {
      "x": 0.09000000000000001,
      "y": 17280529.364177857
    },
    {
      "x": 0.09250000000000001,
      "y": 16630234.202276524
    },
    {
      "x": 0.09500000000000001,
      "y": 16026478.292980412
    },
    {
      "x": 0.0975,
      "y": 15464446.203826837
    },
    {
      "x": 0.1,
      "y": 14939964.574368779
    },
    {
      "x": 0.10250000000000001,
      "y": 14449398.555937432
    },
    {
      "x": 0.10500000000000001,
      "y": 13989567.66895352
    },
    {
      "x": 0.10750000000000001,
      "y": 13557676.95891355
    },
    {
      "x": 0.11000000000000001,
      "y": 13151260.301323608
    },
    {
      "x": 0.11250000000000002,
      "y": 12768133.425791131
    },
    {
      "x": 0.11500000000000002,
      "y": 12406354.769438239
    },
    {
      "x": 0.11750000000000002,
      "y": 12064192.67841369
    },
    {
      "x": 0.12000000000000001,
      "y": 11740097.788116653
    },
    {
      "x": 0.12250000000000001,
      "y": 11432679.652620006
    },
    {
      "x": 0.125,
      "y": 11140686.879682977
    }
  ]
}

Use it in your project

Returns a valuation report. This example prints three selected fields from the firm-basis report, in USD. The sensitivity chart is a separate set of repeated valuations, not a required conversion of the answer.

import { discountedCashFlow, type DiscountedCashFlowInput } from '@insiderfinance/totalfinance/valuation';

const input: DiscountedCashFlowInput = {
  "valuationBasis": "firm",
  "valuationDate": "2026-01-01",
  "currency": "USD",
  "projectedCashFlows": [
    {
      "timeYears": 1,
      "amount": 1000000
    },
    {
      "timeYears": 2,
      "amount": 1060000
    },
    {
      "timeYears": 3,
      "amount": 1123600.0000000002
    },
    {
      "timeYears": 4,
      "amount": 1191016.0000000002
    },
    {
      "timeYears": 5,
      "amount": 1262476.9600000004
    }
  ],
  "annualDiscountRate": 0.1,
  "compounding": "annual",
  "terminalValueMethod": {
    "method": "perpetual-growth",
    "terminalCashFlow": 1262476.9600000004,
    "perpetualGrowthRate": 0.025
  }
};
const valuation = discountedCashFlow(input);
if (valuation.valuationBasis !== 'firm') throw new Error('Expected firm basis.');
const result = {
  enterpriseValue: valuation.enterpriseValue,
  projectedCashFlowPresentValue: valuation.projectedCashFlowPresentValue,
  terminalValuePresentValue: valuation.terminalValuePresentValue,
};
console.log(result);

Output of this example

{
  "enterpriseValue": 14939964.574368779,
  "projectedCashFlowPresentValue": 4226680.095125146,
  "terminalValuePresentValue": 10713284.479243632
}
Reproduce this entire playground

This complete example reproduces every chart point and the full playground result. Sample generation and chart mapping are example setup, not required conversions of library outputs.

import { discountedCashFlow, type DiscountedCashFlowInput } from '@insiderfinance/totalfinance/valuation';

const input: DiscountedCashFlowInput = {
  "valuationBasis": "firm",
  "valuationDate": "2026-01-01",
  "currency": "USD",
  "projectedCashFlows": [
    {
      "timeYears": 1,
      "amount": 1000000
    },
    {
      "timeYears": 2,
      "amount": 1060000
    },
    {
      "timeYears": 3,
      "amount": 1123600.0000000002
    },
    {
      "timeYears": 4,
      "amount": 1191016.0000000002
    },
    {
      "timeYears": 5,
      "amount": 1262476.9600000004
    }
  ],
  "annualDiscountRate": 0.1,
  "compounding": "annual",
  "terminalValueMethod": {
    "method": "perpetual-growth",
    "terminalCashFlow": 1262476.9600000004,
    "perpetualGrowthRate": 0.025
  }
};
const rates = Array.from({ length: 21 }, (_, index) => 0.07500000000000001 + index * 0.0025);
const sensitivity = rates.map(rate => {
  const row = discountedCashFlow({ ...input, annualDiscountRate: rate });
  if (row.valuationBasis !== 'firm') throw new Error('Expected firm basis.');
  return { x: rate, y: row.enterpriseValue };
});
// Firm-basis cash flows produce enterprise value.
const result = { valuation: discountedCashFlow(input), sensitivity };
console.log(result);

Both examples use the last successfully calculated inputs. The first call may show fewer scenarios or selected report fields, as labeled above. Displayed metrics are rounded; copied calculations retain exact values.

Continue with the full API reference or the API levels guide.