Valuation

Score a company's financial health

valuation_scores · Reads only · Markdown

Altman, Piotroski and Beneish scores from a company's figures, and whether it is growing, mature or distressed.

Free*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

Are there warning signs in Kuechentechnik Nord's last two years of accounts?

Your agent callsvaluation_scoresFree*

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "years": [
    {
      "year": 2024,
      "revenue": 16.9,
      "cost_of_sales": 11.8,
      "sga": 3,
      "ebit": 1.4,
      "net_income": 0.9,
      "operating_cash_flow": 1.5,
      "total_assets": 12.1,
      "current_assets": 7.2,
      "current_liabilities": 3.9,
      "long_term_debt": 3.6,
      "total_liabilities": 7.9,
      "total_equity": 4.2,
      "retained_earnings": 3.1,
      "shares_outstanding": 1,
      "receivables": 2.4,
      "depreciation": 0.5,
      "ppe_net": 3.8
    },
    {
      "year": 2025,
      "revenue": 18.4,
      "cost_of_sales": 12.7,
      "sga": 3.2,
      "ebit": 1.8,
      "net_income": 1.3,
      "operating_cash_flow": 2,
      "total_assets": 12.9,
      "current_assets": 7.8,
      "current_liabilities": 4,
      "long_term_debt": 3.2,
      "total_liabilities": 7.6,
      "total_equity": 5.3,
      "retained_earnings": 4.2,
      "shares_outstanding": 1,
      "receivables": 2.5,
      "depreciation": 0.5,
      "ppe_net": 3.9
    }
  ]
}
What comes back
{
  "year": 2025,
  "altman": {
    "model": "non_manufacturing",
    "x1": 0.294574,
    "x2": 0.325581,
    "x3": 0.139535,
    "x4": 0.697368,
    "z": 4.66371,
    "zone": "safe",
    "lines": {
      "distress_below": 1.1,
      "safe_above": 2.6
    }
  },
  "piotroski": {
    "score": 9,
    "of": 9,
    "complete": true,
    "signals": [
      {
        "signal": "roa_positive",
        "passed": true
      },
      {
        "signal": "operating_cash_flow_positive",
        "passed": true
      }
    ],
    "reading": "ROA on year-end total assets; 8 or 9 is strong, 0 to 2 weak."
  },
  "beneish": {
    "m_score": -2.66006,
    "flag": "unlikely",
    "threshold": -1.78,
    "indexes": {
      "dsri": 0.956748,
      "gmi": 0.974151,
      "aqi": 1.023256,
      "sgi": 1.088757,
      "depi": 1.023256,
      "sgai": 0.97971,
      "tata": -0.054264,
      "lvgi": 0.900465
    },
    "reading": "Above -1.78, the figures look like those of companies that manipulated earnings (Beneish 1999)."
  },
  "maturity": {
    "cluster": "mature",
    "reasons": [
      "Revenue grew 8.88% a year (the growth line is 10.00%)."
    ]
  }
}

Use it when

Before an offer, to check a target's financial health and its earnings quality.

What it does

From one or more years of figures: the Altman Z-score (public or private manufacturer, or the non-manufacturing Z'') and its zone, the Piotroski F-score with each of its nine signals, the Beneish M-score with its eight indexes (both need two years), and whether the company is growing, mature or distressed, with the reasons. A figure that is missing is named, never guessed.

What comes back

year, altman (model, x1 to x5, z, zone, lines), piotroski (score of 9, complete and each signal), beneish (m_score, flag, threshold, indexes), maturity (cluster and reasons); a score that lacks figures names them under missing. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
yearsRequiredarray of objectsOne object per year; companies_financials gives these fields. 1 to 10 items.
years[].yearinteger1,900 to 2,200.
years[].revenuenumber
years[].cost_of_salesnumber
years[].gross_profitnumber
years[].sganumber
years[].ebitnumber
years[].ebitdanumber
years[].net_incomenumber
years[].operating_cash_flownumber
years[].total_assetsnumber
years[].current_assetsnumber
years[].current_liabilitiesnumber
years[].long_term_debtnumber
years[].total_liabilitiesnumber
years[].total_equitynumber
years[].retained_earningsnumber
years[].shares_outstandingnumber
years[].receivablesnumber
years[].depreciationnumber
years[].ppe_netnumber
years[].market_capnumber
altmanstringOne of: public_manufacturing,private_manufacturing,non_manufacturing. Default: non_manufacturing.
growth_thresholdnumberRevenue growth a year that counts as growing. A decimal: 0.09 is 9%. 0 to 1.

The call

Over MCP, call valuation_scores on https://api.conecto.chat/mcp/valuation. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/valuation_scores \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"years":[{"year":2024,"revenue":16.9,"cost_of_sales":11.8,"sga":3,"ebit":1.4,"net_income":0.9,"operating_cash_flow":1.5,"total_assets":12.1,"current_assets":7.2,"current_liabilities":3.9,"long_term_debt":3.6,"total_liabilities":7.9,"total_equity":4.2,"retained_earnings":3.1,"shares_outstanding":1,"receivables":2.4,"depreciation":0.5,"ppe_net":3.8},{"year":2025,"revenue":18.4,"cost_of_sales":12.7,"sga":3.2,"ebit":1.8,"net_income":1.3,"operating_cash_flow":2,"total_assets":12.9,"current_assets":7.8,"current_liabilities":4,"long_term_debt":3.2,"total_liabilities":7.6,"total_equity":5.3,"retained_earnings":4.2,"shares_outstanding":1,"receivables":2.5,"depreciation":0.5,"ppe_net":3.9}]}'

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md