Wartości wejściowe
Wynik
Wskaźnik Z-Score Altmana pomaga ocenić ryzyko kredytowe firmy. Wyższy wynik oznacza niższe ryzyko bankructwa w ciągu dwóch lat.
Kalkulator Z-Score'a Altmana
Wprowadzenie
Z-Score Altmana to model finansowy opracowany przez Edwarda I. Altmana w 1968 roku w celu przewidywania prawdopodobieństwa bankructwa firmy w ciągu dwóch lat. Łączy pięć kluczowych wskaźników finansowych, wykorzystując ważoną sumę do oceny kondycji finansowej firmy. Z-Score jest szeroko stosowany przez inwestorów, wierzycieli i analityków finansowych do oceny ryzyka kredytowego.
Wzór
Z-Score Altmana oblicza się za pomocą następującego wzoru:
Gdzie:
Wyjaśnienie zmiennych
- Kapitał obrotowy (WC): Aktywa bieżące minus zobowiązania bieżące. Wskazuje na krótkoterminową płynność finansową.
- Zyski zatrzymane (RE): Skumulowane zyski reinwestowane w firmę. Odzwierciedla długoterminową rentowność.
- EBIT: Zysk przed odsetkami i opodatkowaniem. Mierzy efektywność operacyjną.
- Wartość rynkowa kapitału własnego (MVE): Liczba wyemitowanych akcji pomnożona przez aktualną cenę akcji. Reprezentuje zaufanie akcjonariuszy.
- Całkowite zobowiązania (TL): Suma zobowiązań bieżących i długoterminowych.
- Sprzedaż: Całkowity przychód ze sprzedanych towarów lub usług.
- Całkowite aktywa (TA): Suma aktywów bieżących i niebędących aktywami bieżącymi.
Obliczenia
Przewodnik krok po kroku
-
Oblicz wskaźniki finansowe:
-
Zastosuj wagi do każdego wskaźnika:
- Pomnóż każdy wskaźnik przez odpowiadający mu współczynnik.
-
Zsumuj ważone wskaźniki:
Przykład numeryczny
Załóżmy, że firma ma następujące dane finansowe (w milionach USD):
- Kapitał obrotowy (WC): 50 milionów USD
- Zyski zatrzymane (RE): 200 milionów USD
- EBIT: 100 milionów USD
- Wartość rynkowa kapitału własnego (MVE): 500 milionów USD
- Całkowite zobowiązania (TL): 400 milionów USD
- Sprzedaż: 600 milionów USD
- Całkowite aktywa (TA): 800 milionów USD
Obliczanie wskaźników:
Obliczanie Z-Score'a:
Interpretacja
- Z-Score > 2.99: Strefa bezpieczna – Niskie prawdopodobieństwo bankructwa.
- 1.81 < Z-Score < 2.99: Strefa szara – Niepewne ryzyko; zalecana ostrożność.
- Z-Score < 1.81: Strefa kryzysowa – Wysokie prawdopodobieństwo bankructwa.
Wynik: Z-Score wynoszący 2.34 umieszcza firmę w Strefie szarej, co wskazuje na potencjalną niestabilność finansową.
Przypadki skrajne i ograniczenia
- Wartości ujemne: Ujemne wartości dla zysku netto, zysków zatrzymanych lub kapitału obrotowego mogą znacznie obniżyć Z-Score.
- Zastosowanie: Oryginalny model najlepiej nadaje się dla publicznych firm produkcyjnych.
- Różnice branżowe: Firmy nieprodukcyjne, prywatne i z rynków wschodzących mogą wymagać dostosowanych modeli (np. Z'-Score, Z''-Score).
- Warunki ekonomiczne: Czynniki makroekonomiczne nie są uwzględniane w modelu.
Przykłady zastosowania
Aplikacje
- Przewidywanie bankructwa: Wczesne wykrywanie kryzysów finansowych.
- Analiza kredytowa: Pomoc pożyczkodawcom w ocenie ryzyk pożyczkowych.
- Decyzje inwestycyjne: Pomoc inwestorom w kierowaniu się w stronę stabilnych finansowo firm.
- Strategia korporacyjna: Pomoc zarządowi w ocenie kondycji finansowej i wprowadzaniu strategicznych zmian.
Alternatywy
Modele Z'-Score i Z''-Score
- Z'-Score: Dostosowany dla prywatnych firm produkcyjnych.
- Z''-Score: Dodatkowo dostosowany dla firm nieprodukcyjnych i z rynków wschodzących.
Inne modele
- Ohlson O-Score: Model regresji logistycznej przewidujący ryzyko bankructwa.
- Zmijewski Score: Alternatywa modelu probitowego koncentrująca się na kryzysie finansowym.
Kiedy stosować alternatywy:
- Dla firm spoza sektora produkcyjnego.
- Przy ocenie firm prywatnych lub niepublicznych.
- W różnych kontekstach ekonomicznych lub regionach geograficznych.
Historia
Edward Altman wprowadził model Z-Score'a w 1968 roku w obliczu rosnącej liczby bankructw korporacyjnych. Wykorzystując wielokrotną analizę dyskryminacyjną (MDA), Altman przeanalizował 66 firm, aby zidentyfikować kluczowe wskaźniki finansowe przewidujące bankructwo. Model został od tego czasu udoskonalony i pozostaje podstawowym narzędziem w ocenie ryzyka kredytowego.
Dodatkowe uwagi
Wpływ manipulacji finansowych
- Firmy mogą angażować się w praktyki księgowe, które tymczasowo zawyżają wskaźniki finansowe.
- Ważne jest, aby rozważyć czynniki jakościowe obok wskaźników ilościowych.
Integracja z innymi wskaźnikami
- Połączenie Z-Score'a z innymi analizami (np. analiza przepływów pieniężnych, trendy rynkowe).
- Użycie jako część kompleksowego procesu due diligence.
Przykłady kodu
Excel
' Funkcja VBA w Excelu do obliczania Z-Score'a Altmana
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
' Użycie w komórce:
' =AltmanZScore(A1, B1, C1, D1, E1, F1, G1)
' Gdzie A1 do G1 zawierają odpowiednie wartości wejściowe
Python
## Obliczanie Z-Score'a Altmana w Pythonie
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
## Przykład użycia:
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"Z-Score Altmana: {z:.2f}")
JavaScript
// Obliczanie Z-Score'a Altmana w JavaScript
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;
}
// Przykład użycia:
const zScore = calculateZScore(50, 200, 100, 500, 400, 600, 800);
console.log(`Z-Score Altmana: ${zScore.toFixed(2)}`);
Java
// Obliczanie Z-Score'a Altmana w Javie
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("Z-Score Altmana: %.2f%n", zScore);
}
}
R
## Obliczanie Z-Score'a Altmana w 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)
}
## Przykład użycia:
z_score <- calculate_z_score(50, 200, 100, 500, 400, 600, 800)
cat("Z-Score Altmana:", round(z_score, 2))
MATLAB
% Obliczanie Z-Score'a Altmana w MATLABie
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
% Przykład użycia:
z_score = calculate_z_score(50, 200, 100, 500, 400, 600, 800);
fprintf('Z-Score Altmana: %.2f\n', z_score);
C++
// Obliczanie Z-Score'a Altmana w 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 << "Z-Score Altmana: " << zScore << std::endl;
return 0;
}
C#
// Obliczanie Z-Score'a Altmana w 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($"Z-Score Altmana: {zScore:F2}");
}
}
Go
// Obliczanie Z-Score'a Altmana w 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("Z-Score Altmana: %.2f\n", zScore)
}
Swift
// Obliczanie Z-Score'a Altmana w Swift
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
}
// Przykład użycia:
let zScore = calculateZScore(wc: 50, re: 200, ebit: 100, mve: 500, tl: 400, sales: 600, ta: 800)
print(String(format: "Z-Score Altmana: %.2f", zScore))
Źródła
- Altman, E. I. (1968). Wskaźniki finansowe, analiza dyskryminacyjna i przewidywanie bankructwa korporacyjnego. The Journal of Finance, 23(4), 589–609.
- Z-Score Altmana. Wikipedia. Pobrano z https://en.wikipedia.org/wiki/Altman_Z-score
- Investopedia - Z-Score Altmana. Pobrano z https://www.investopedia.com/terms/a/altman.asp