← All posts
Published 2026-07-24 · 10 min read · Quant models

The Ohlson O-Score, Explained: A Logistic Model for Bankruptcy Risk

The Ohlson O-Score turns nine numbers from a company's financial statements into a single probability of default. Here is how the model is built, how to convert the score into a percentage, and where it quietly breaks.

Where the O-Score comes from

In 1980, accounting researcher James Ohlson published "Financial Ratios and the Probabilistic Prediction of Bankruptcy" in the Journal of Accounting Research. His goal was to improve on Edward Altman's 1968 Z-Score, which had become the standard tool for flagging companies at risk of failure. Altman used a technique called multiple discriminant analysis (MDA), which draws a boundary between "healthy" and "failing" firms but requires some restrictive statistical assumptions, and outputs a score whose units are hard to interpret directly.

Ohlson took a different route. He fit a logistic regression (logit) model on a sample of roughly 2,000 industrial firms, including 105 that went bankrupt between 1970 and 1976. Logistic regression does not assume the two groups have identical variance structures or normally distributed inputs, and its output is naturally bounded between 0 and 1. That last property is the headline feature: instead of a raw score, the O-Score model produces an explicit probability of default. Investors often reach for the O-Score precisely because "an 8% chance" is easier to reason about than "a Z of 1.7."

The nine variables, and what each one captures

The model combines nine accounting inputs plus an intercept. Seven are continuous ratios; two are yes/no dummy variables. The linear score, usually written O, is a weighted sum:

VariableDefinitionWhat it capturesCoefficient
InterceptBaseline level−1.32
SIZElog(total assets / price-level index)Firm size; larger firms fail less often−0.407
TLTATotal liabilities / total assetsLeverage and overall solvency+6.03
WCTAWorking capital / total assetsShort-term liquidity buffer−1.43
CLCACurrent liabilities / current assetsNear-term liquidity strain+0.0757
NITANet income / total assetsProfitability (return on assets)−2.37
FUTLFunds from operations / total liabilitiesCash-flow coverage of debt−1.83
INTWO1 if net loss in both of the last two yearsChronic, repeated losses+0.285
OENEG1 if total liabilities exceed total assetsNegative book equity−1.72
CHIN(current NI − prior NI) / (|current NI| + |prior NI|)Direction and momentum of earnings−0.521

The signs mostly line up with intuition. More leverage (TLTA) and more short-term strain (CLCA) push the score up, toward higher default risk. More profitability (NITA), more operating cash flow relative to debt (FUTL), a bigger liquidity cushion (WCTA), and improving earnings (CHIN) push it down. CHIN is scaled to sit between −1 and +1, so a company swinging from a large loss to a large profit registers near +1.

One coefficient looks backwards and deserves a note. OENEG flags negative equity, yet its coefficient is negative. That is not a typo: when equity is negative, TLTA exceeds 1 and the large +6.03 weight already blows the score up dramatically. The −1.72 on OENEG acts as a correction that dampens that extreme, so the model does not double-count the same distress. Read the two terms together, not in isolation.

From score to probability: the logistic function

The raw O value can be any real number, positive or negative. To turn it into a probability of default, the model passes it through the logistic (sigmoid) function:

P = 1 / (1 + e^−O)

This squeezes any score into the 0-to-1 range. The mechanics are worth internalizing:

Because it is a smooth S-curve, small changes near the middle move the probability a lot, while changes far out in either tail barely register. A firm already at P = 0.02 can deteriorate meaningfully in its raw score without the headline percentage moving much, so the underlying O value is often more sensitive than the probability it produces.

A worked example

Consider a hypothetical cyclical manufacturer, coming off a weak year. Its statements give these inputs (dollar figures in millions):

Multiplying each input by its coefficient:

TermCalculationContribution
Intercept−1.320
SIZE−0.407 × 11.0−4.477
TLTA6.03 × 0.95+5.729
WCTA−1.43 × −0.075+0.107
CLCA0.0757 × 1.30+0.098
NITA−2.37 × −0.05+0.119
FUTL−1.83 × 0.0395−0.072
INTWO0.285 × 1+0.285
OENEG−1.72 × 00.000
CHIN−0.521 × −0.231+0.120
Total (O)+0.589

Now convert: P = 1 / (1 + e^−0.589). Since e^−0.589 ≈ 0.555, we get P = 1 / 1.555 ≈ 0.64. The model assigns this firm roughly a 64% implied probability of default within the horizon it was trained on. The heavy lifting comes from leverage (TLTA alone contributes +5.73) partly offset by the firm's size (SIZE contributes −4.48). Take away the scale and this balance sheet looks fragile.

Reading the threshold

How high is "too high"? The logistic midpoint of P = 0.50 (equivalently O = 0) is the natural even-odds reference, and a probability well above it, like the 64% above, signals elevated distress risk in the model's terms. But bankruptcy is a rare event: in any given year the vast majority of firms do not fail. Ohlson found that classifying every firm above 50% as a failure would miss most real failures, so he chose an empirically optimal cutoff far lower, in the low single-digit percentages, to balance false alarms against missed cases. Different implementations pick different cutoffs for exactly this reason.

The practical takeaway is descriptive, not prescriptive. A high Ohlson probability is a screen, not a verdict. It says this company statistically resembles firms that later ran into severe distress; it does not predict that this particular company will. A single number is one input among many, and it deserves a look at the actual filings behind it.

O-Score vs Altman Z: complements, not substitutes

Investors frequently run both models side by side. They ask overlapping but distinct questions, and they can disagree in informative ways.

DimensionAltman Z-ScoreOhlson O-Score
MethodDiscriminant analysis (MDA)Logistic regression (logit)
OutputA score with zone cutoffsAn explicit probability (0–1)
Inputs5 ratios, including a market-value term9 accounting variables, no market price
EmphasisProfitability and market valueBalance-sheet leverage and cash flow
Uses market cap?Yes (market value of equity / liabilities)No — statements only

Two differences matter most. First, the classic Z-Score includes a market-value-of-equity term, so it reacts to how the market prices a stock; the O-Score is built entirely from accounting statements and is indifferent to price. That makes the O-Score useful when you want a distress read that a falling (or soaring) share price cannot contaminate. Second, the O-Score leans harder on the balance sheet and on cash-flow coverage of debt. When the two models diverge, the gap itself is worth investigating: a company that looks fine on Z but poor on O may be carrying leverage the market has not yet punished.

Limitations and common mistakes

The O-Score is durable, but it has well-known edges where it fails or misleads:

FAQ

What is a good Ohlson O-Score?

Lower is safer, because a lower O maps to a lower probability of default. A negative O corresponds to a probability below 50%, and healthy large firms often sit far into negative territory. There is no universal pass/fail line; the appropriate cutoff depends on the base rate of failure in the population you are screening.

Is the Ohlson O-Score better than the Altman Z-Score?

Neither is strictly "better." The O-Score outputs a direct probability and relies only on accounting data, while the Z-Score incorporates market value and is simpler. Many investors treat them as complementary readings rather than competitors, and pay attention when the two disagree.

Can the O-Score be used for banks?

Generally no. The model was estimated on non-financial industrial companies. Banks, insurers, and other financials have fundamentally different balance-sheet structures, so the leverage and liquidity ratios do not carry the same meaning and the model's calibration does not apply.

What does a negative O-Score mean?

A negative O value simply means the logistic function returns a probability below 0.50. The more negative the score, the lower the model-implied probability of default. It is a normal, common result for financially stable companies.

How is "funds from operations" defined in the O-Score?

In Ohlson's original work, FUTL uses funds provided by operations relative to total liabilities. A widely used approximation is pretax income plus depreciation and amortization, though implementations vary. Because the definition affects the ratio, it is worth checking how any given screen computes it.

How Quintarthai helps

Quintarthai computes an Ohlson probability-of-default column directly from public filings (SEDAR+/EDGAR) for U.S. and Canadian equities, alongside the raw O value and its component ratios. You can sort and filter the full universe on this measure in the screener, and each company's deep-dive page breaks the score into its nine contributing variables next to related distress models like the Altman Z-Score, so a flag is always presented as one input to examine rather than a standalone conclusion.

See how the Ohlson probability-of-default column reads for a large-cap like WMT or any name on your watchlist on the free Core dashboard at quintarthai.com/app.
This article is for educational purposes only and is not investment, tax, or financial advice. Quintessentia Network Inc. (operating as Quintarthai) is not a registered investment adviser, broker-dealer, or securities exchange. Consult a qualified professional before making decisions. See Disclosures and AI Transparency.
Share this article
🐦 X / Twitter in LinkedIn
You might also like
Quant Models
Altman Z-Score, Explained: Reading Bankruptcy Risk With the Exact Formula
The Altman Z-Score explained: a full worked calculation, the Z, Z' and Z'' formulas and bands, accuracy and failure modes, plus how it fits with other
Quant models
Merton Distance-to-Default Explained: The Market-Based Bankruptcy Model
A plain-English guide to Merton distance-to-default: how equity becomes a call option on a firm's assets, how DD converts to a default probability, an

📚 Related research

📈 Markets
All Daily Market Wraps
Auto-published daily synthesis on movers, sectors, cross-border arb watch
💱 Investing
Cross-Listed Arbitrage Explained
FX-adjusted TSX/NYSE spread math — when a 2% gap is and isn\'t tradeable
⚠️ Risk
TSX-V Delisting — 9 Red Flags Worth Knowing
Float concentration, NI 51-102 timeliness, auditor downgrades

📰 Trending external news

🏦 Finance
BNN Bloomberg — Canadian Markets Financial Post — Investing Reuters — Finance
📊 Investing
Seeking Alpha — Market News Morningstar Canada Stockchase — Canadian Picks
₿ Crypto
CoinDesk — Markets Decrypt — News The Block