ksfraser/financial-models

Shared pure-PHP financial modeling: DCF, 3-statement forecast, assumptions

Maintainers

Package info

github.com/ksfraser/ksfraser-financial-models

pkg:composer/ksfraser/financial-models

Transparency log

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0 2026-07-28 22:14 UTC

This package is auto-updated.

Last update: 2026-07-29 03:08:51 UTC


README

Shared pure-PHP financial-modeling package for the KSFraser platform.

Packages

  • DCF: 5-year free-cash-flow model, WACC discounting, Gordon Growth terminal value, per-share intrinsic value.
  • 3-Statement Forecast: Base-year financials + year-by-year projections of Income Statement, Balance Sheet, and Cash Flow with linkage rules.
  • Forecast Compare / Copy: Variance analysis between two runs and bridge to create a budget from a forecast.

Composer

composer require ksfraser/financial-models

Usage

DCF

use Ksfraser\Financial\Dcf\Assumptions;
use Ksfraser\Financial\Dcf\DcfEngine;

$assumptions = Assumptions::fromArray([
    'base_revenue' => 389.5,
    'revenue_cagr' => 0.05,
    'ebitda_margin' => 0.30,
    'da_pct' => 0.03,
    'capex_pct' => 0.04,
    'nwc_pct' => 0.01,
    'tax_rate' => 0.25,
    'wacc' => 0.09,
    'terminal_growth' => 0.025,
    'net_debt' => 0,
    'shares_outstanding' => 3000,
]);

$engine = new DcfEngine();
$result = $engine->run($assumptions);
echo $result->getIntrinsicPerShare();

3-Statement Forecast

use Ksfraser\Financial\ThreeStatement\Assumptions;
use Ksfraser\Financial\ThreeStatement\ForecastEngine;

$assumptions = Assumptions::fromArray([
    'base_revenue'     => 100,
    'base_cogs_pct'    => 0.6,
    'base_opex_pct'    => 0.2,
    'base_da_pct'      => 0.03,
    'base_cash'        => 5,
    'base_ar'          => 10,
    'base_inventory'   => 8,
    'base_ppe_net'     => 40,
    'base_ap'          => 7,
    'base_st_debt'     => 2,
    'base_lt_debt'     => 10,
    'base_equity'      => 54,
    'revenue_growth'   => 0.03,
    'gross_margin'     => 0.4,
    'opex_pct'         => 0.2,
    'da_pct'           => 0.03,
    'capex_pct'        => 0.04,
    'nwc_pct'          => 0.01,
    'tax_rate'         => 0.25,
    'new_debt_annual'  => 5,
]);

$engine = new ForecastEngine();
$years = $engine->project($assumptions);

Source References