Vstupní hodnoty
Výsledek
Altman Z-Score pomáhá posoudit kreditní riziko společnosti. Vyšší skóre znamená nižší riziko bankrotu během dvou let.
Kalkulačka Altman Z-Score
Úvod
Altman Z-Score je finanční model vyvinutý Edwardem I. Altmanem v roce 1968 k predikci pravděpodobnosti, že společnost zkrachuje během dvou let. Kombinuje pět klíčových finančních poměrů pomocí váženého součtu k posouzení finančního zdraví společnosti. Z-Score je široce používán investory, věřiteli a finančními analytiky k hodnocení úvěrového rizika.
Vzorec
Altman Z-Score se počítá pomocí následujícího vzorce:
Kde:
Vysvětlení proměnných
- Pracovní kapitál (WC): Aktiva krátkodobá minus závazky krátkodobé. Ukazuje na krátkodobou finanční likviditu.
- Zadržené zisky (RE): Kumulační zisky reinvestované do společnosti. Odráží dlouhodobou ziskovost.
- EBIT: Zisk před úroky a daněmi. Měří provozní efektivitu.
- Tržní hodnota vlastního kapitálu (MVE): Počet vydaných akcií vynásobený aktuální cenou akcie. Představuje důvěru akcionářů.
- Celkové závazky (TL): Součet krátkodobých a dlouhodobých závazků.
- Tržby: Celkové příjmy z prodaného zboží nebo služeb.
- Celková aktiva (TA): Součet krátkodobých a dlouhodobých aktiv.
Výpočet
Krok za krokem
-
Vypočítejte finanční poměry:
-
Aplikujte váhy na každý poměr:
- Vynásobte každý poměr jeho odpovídajícím koeficientem.
-
Sečtěte vážené poměry:
Číselný příklad
Předpokládejme, že má společnost následující finanční údaje (v milionech USD):
- Pracovní kapitál (WC): 50 milionů
- Zadržené zisky (RE): 200 milionů
- EBIT: 100 milionů
- Tržní hodnota vlastního kapitálu (MVE): 500 milionů
- Celkové závazky (TL): 400 milionů
- Tržby: 600 milionů
- Celková aktiva (TA): 800 milionů
Vypočítání poměrů:
Vypočítání Z-Score:
Interpretace
- Z-Score > 2.99: Bezpečná zóna – Nízká pravděpodobnost bankrotu.
- 1.81 < Z-Score < 2.99: Šedá zóna – Nejasné riziko; doporučuje se opatrnost.
- Z-Score < 1.81: Zóna distressu – Vysoká pravděpodobnost bankrotu.
Výsledek: Z-Score 2.34 umisťuje společnost do Šedé zóny, což naznačuje potenciální finanční nestabilitu.
Okrajové případy a omezení
- Negativní hodnoty: Negativní vstupy pro čistý zisk, zadržené zisky nebo pracovní kapitál mohou výrazně snížit Z-Score.
- Použitelnost: Původní model je nejlépe vhodný pro veřejně obchodované výrobní společnosti.
- Průmyslové rozdíly: Nevýrobní, soukromé a společnosti na rozvíjejících se trzích mohou vyžadovat upravené modely (např. Z'-Score, Z''-Score).
- Ekonomické podmínky: Makroekonomické faktory nejsou v modelu zohledněny.
Případové studie
Aplikace
- Predikce bankrotu: Včasná detekce finančního distressu.
- Úvěrová analýza: Pomoc věřitelům při hodnocení rizik půjček.
- Investiční rozhodnutí: Pomoc investorům při výběru finančně stabilních společností.
- Korporátní strategie: Pomoc vedení při posuzování finančního zdraví a provádění strategických úprav.
Alternativy
Modely Z'-Score a Z''-Score
- Z'-Score: Přizpůsobeno pro soukromé výrobní společnosti.
- Z''-Score: Dále upraveno pro nevyrobené a společnosti na rozvíjejících se trzích.
Jiné modely
- Ohlson O-Score: Model logistické regrese predikující riziko bankrotu.
- Zmijewski Score: Alternativa probit modelu zaměřující se na finanční distress.
Kdy použít alternativy:
- Pro společnosti mimo výrobní sektor.
- Při hodnocení soukromých nebo neveřejně obchodovaných společností.
- V různých ekonomických kontextech nebo geografických oblastech.
Historie
Edward Altman představil model Z-Score v roce 1968 uprostřed rostoucího počtu bankrotů společností. Využívajíc vícerozměrnou diskriminační analýzu (MDA) analyzoval Altman 66 společností, aby identifikoval klíčové finanční poměry prediktivní pro bankrot. Model byl od té doby zdokonalen a zůstává základním nástrojem v hodnocení úvěrového rizika.
Další úvahy
Dopad finanční manipulace
- Společnosti mohou provádět účetní praktiky, které dočasně nafukují finanční poměry.
- Je důležité zohlednit kvalitativní faktory vedle kvantitativních skóre.
Integrace s jinými metrikami
- Kombinujte Z-Score s dalšími analýzami (např. analýza peněžních toků, tržní trendy).
- Použijte jako součást komplexního procesu prověřování.
Příklady kódu
Excel
' Excel VBA funkce pro výpočet Altman Z-Score
Function AltmanZScore(wc As Double, re As Double, ebit As Double, mve As Double, tl As Double, sales As Double, ta As Double) As Double
Dim X1 As Double, X2 As Double, X3 As Double, X4 As Double, X5 As Double
X1 = wc / ta
X2 = re / ta
X3 = ebit / ta
X4 = mve / tl
X5 = sales / ta
AltmanZScore = 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5
End Function
' Použití v buňce:
' =AltmanZScore(A1, B1, C1, D1, E1, F1, G1)
' Kde A1 až G1 obsahují příslušné vstupní hodnoty
Python
## Výpočet Altman Z-Score v Pythonu
def calculate_z_score(wc, re, ebit, mve, tl, sales, ta):
X1 = wc / ta
X2 = re / ta
X3 = ebit / ta
X4 = mve / tl
X5 = sales / ta
z_score = 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5
return z_score
## Příklad použití:
wc = 50
re = 200
ebit = 100
mve = 500
tl = 400
sales = 600
ta = 800
z = calculate_z_score(wc, re, ebit, mve, tl, sales, ta)
print(f"Altman Z-Score: {z:.2f}")
JavaScript
// Výpočet Altman Z-Score v JavaScriptu
function calculateZScore(wc, re, ebit, mve, tl, sales, ta) {
const X1 = wc / ta;
const X2 = re / ta;
const X3 = ebit / ta;
const X4 = mve / tl;
const X5 = sales / ta;
const zScore = 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5;
return zScore;
}
// Příklad použití:
const zScore = calculateZScore(50, 200, 100, 500, 400, 600, 800);
console.log(`Altman Z-Score: ${zScore.toFixed(2)}`);
Java
// Výpočet Altman Z-Score v Javě
public class AltmanZScore {
public static double calculateZScore(double wc, double re, double ebit, double mve, double tl, double sales, double ta) {
double X1 = wc / ta;
double X2 = re / ta;
double X3 = ebit / ta;
double X4 = mve / tl;
double X5 = sales / ta;
return 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5;
}
public static void main(String[] args) {
double zScore = calculateZScore(50, 200, 100, 500, 400, 600, 800);
System.out.printf("Altman Z-Score: %.2f%n", zScore);
}
}
R
## Výpočet Altman Z-Score v R
calculate_z_score <- function(wc, re, ebit, mve, tl, sales, ta) {
X1 <- wc / ta
X2 <- re / ta
X3 <- ebit / ta
X4 <- mve / tl
X5 <- sales / ta
z_score <- 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5
return(z_score)
}
## Příklad použití:
z_score <- calculate_z_score(50, 200, 100, 500, 400, 600, 800)
cat("Altman Z-Score:", round(z_score, 2))
MATLAB
% Výpočet Altman Z-Score v MATLABu
function z_score = calculate_z_score(wc, re, ebit, mve, tl, sales, ta)
X1 = wc / ta;
X2 = re / ta;
X3 = ebit / ta;
X4 = mve / tl;
X5 = sales / ta;
z_score = 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5;
end
% Příklad použití:
z_score = calculate_z_score(50, 200, 100, 500, 400, 600, 800);
fprintf('Altman Z-Score: %.2f\n', z_score);
C++
// Výpočet Altman Z-Score v C++
#include <iostream>
double calculateZScore(double wc, double re, double ebit, double mve, double tl, double sales, double ta) {
double X1 = wc / ta;
double X2 = re / ta;
double X3 = ebit / ta;
double X4 = mve / tl;
double X5 = sales / ta;
return 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5;
}
int main() {
double zScore = calculateZScore(50, 200, 100, 500, 400, 600, 800);
std::cout << "Altman Z-Score: " << zScore << std::endl;
return 0;
}
C#
// Výpočet Altman Z-Score v C#
using System;
class Program
{
static double CalculateZScore(double wc, double re, double ebit, double mve, double tl, double sales, double ta)
{
double X1 = wc / ta;
double X2 = re / ta;
double X3 = ebit / ta;
double X4 = mve / tl;
double X5 = sales / ta;
return 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5;
}
static void Main()
{
double zScore = CalculateZScore(50, 200, 100, 500, 400, 600, 800);
Console.WriteLine($"Altman Z-Score: {zScore:F2}");
}
}
Go
// Výpočet Altman Z-Score v Go
package main
import (
"fmt"
)
func calculateZScore(wc, re, ebit, mve, tl, sales, ta float64) float64 {
X1 := wc / ta
X2 := re / ta
X3 := ebit / ta
X4 := mve / tl
X5 := sales / ta
return 1.2*X1 + 1.4*X2 + 3.3*X3 + 0.6*X4 + X5
}
func main() {
zScore := calculateZScore(50, 200, 100, 500, 400, 600, 800)
fmt.Printf("Altman Z-Score: %.2f\n", zScore)
}
Swift
// Výpočet Altman Z-Score ve Swiftu
func calculateZScore(wc: Double, re: Double, ebit: Double, mve: Double, tl: Double, sales: Double, ta: Double) -> Double {
let X1 = wc / ta
let X2 = re / ta
let X3 = ebit / ta
let X4 = mve / tl
let X5 = sales / ta
return 1.2 * X1 + 1.4 * X2 + 3.3 * X3 + 0.6 * X4 + X5
}
// Příklad použití:
let zScore = calculateZScore(wc: 50, re: 200, ebit: 100, mve: 500, tl: 400, sales: 600, ta: 800)
print(String(format: "Altman Z-Score: %.2f", zScore))
Odkazy
- Altman, E. I. (1968). Finanční poměry, diskriminační analýza a predikce bankrotu společnosti. The Journal of Finance, 23(4), 589–609.
- Altman Z-Score. Wikipedia. Získáno z https://en.wikipedia.org/wiki/Altman_Z-score
- Investopedia - Altman Z-Score. Získáno z https://www.investopedia.com/terms/a/altman.asp