Whiz Tools

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:

Z=1.2X1+1.4X2+3.3X3+0.6X4+1.0X5Z = 1.2X_1 + 1.4X_2 + 3.3X_3 + 0.6X_4 + 1.0X_5

Gdzie:

  • X1=Kapitał obrotowyCałkowite aktywaX_1 = \frac{\text{Kapitał obrotowy}}{\text{Całkowite aktywa}}
  • X2=Zyski zatrzymaneCałkowite aktywaX_2 = \frac{\text{Zyski zatrzymane}}{\text{Całkowite aktywa}}
  • X3=Zysk przed odsetkami i opodatkowaniem (EBIT)Całkowite aktywaX_3 = \frac{\text{Zysk przed odsetkami i opodatkowaniem (EBIT)}}{\text{Całkowite aktywa}}
  • X4=Wartosˊcˊ rynkowa kapitału własnegoCałkowite zobowiązaniaX_4 = \frac{\text{Wartość rynkowa kapitału własnego}}{\text{Całkowite zobowiązania}}
  • X5=Sprzedaz˙Całkowite aktywaX_5 = \frac{\text{Sprzedaż}}{\text{Całkowite aktywa}}

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

  1. Oblicz wskaźniki finansowe:

    • X1=WCTAX_1 = \frac{\text{WC}}{\text{TA}}
    • X2=RETAX_2 = \frac{\text{RE}}{\text{TA}}
    • X3=EBITTAX_3 = \frac{\text{EBIT}}{\text{TA}}
    • X4=MVETLX_4 = \frac{\text{MVE}}{\text{TL}}
    • X5=Sprzedaz˙TAX_5 = \frac{\text{Sprzedaż}}{\text{TA}}
  2. Zastosuj wagi do każdego wskaźnika:

    • Pomnóż każdy wskaźnik XX przez odpowiadający mu współczynnik.
  3. Zsumuj ważone wskaźniki:

    • Z=1.2X1+1.4X2+3.3X3+0.6X4+1.0X5Z = 1.2X_1 + 1.4X_2 + 3.3X_3 + 0.6X_4 + 1.0X_5

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:

  • X1=50800=0.0625X_1 = \frac{50}{800} = 0.0625
  • X2=200800=0.25X_2 = \frac{200}{800} = 0.25
  • X3=100800=0.125X_3 = \frac{100}{800} = 0.125
  • X4=500400=1.25X_4 = \frac{500}{400} = 1.25
  • X5=600800=0.75X_5 = \frac{600}{800} = 0.75

Obliczanie Z-Score'a:

Z=1.2(0.0625)+1.4(0.25)+3.3(0.125)+0.6(1.25)+1.0(0.75)=0.075+0.35+0.4125+0.75+0.75=2.3375\begin{align*} Z &= 1.2(0.0625) + 1.4(0.25) + 3.3(0.125) + 0.6(1.25) + 1.0(0.75) \\ &= 0.075 + 0.35 + 0.4125 + 0.75 + 0.75 \\ &= 2.3375 \end{align*}

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

  1. Altman, E. I. (1968). Wskaźniki finansowe, analiza dyskryminacyjna i przewidywanie bankructwa korporacyjnego. The Journal of Finance, 23(4), 589–609.
  2. Z-Score Altmana. Wikipedia. Pobrano z https://en.wikipedia.org/wiki/Altman_Z-score
  3. Investopedia - Z-Score Altmana. Pobrano z https://www.investopedia.com/terms/a/altman.asp
Loading related tools...
Feedback