Mohanram G-Score
Calculate Partha Mohanram’s G-Score, a score from 0 to 8 that separates winners from losers among growth (low book-to-market) companies, where value measures such as the Piotroski F-Score say little. Each signal is 1 when the company does better than the median of its peers, the Toolkit’s tickers:
- Profitability: return on assets (G1) and cash flow return on assets (G2) above the median, and cash flow above net income (G3).
- Naive extrapolation: a lower than median variance of the return on assets (G4) and of revenue growth (G5).
- Accounting conservatism: research and development (G6), capital expenditure (G7) and advertising (G8, selling and marketing expenses) relative to assets above the median, as these investments depress current earnings.
As in the paper, the return on assets, the cash flow return on assets and the three intensities are scaled by the total assets at the start of the year, the variances are taken over the past five years with at least three available, and a signal that cannot be calculated for a company (a missing item, or too short a history) scores 0.
For more information, see the following paper:
- Mohanram, P.S. (2005). “Separating Winners from Losers among Low Book-to-Market Stocks using Financial Statement Analysis.” Review of Accounting Studies, 10, 133-170.
Also known as: G-Score, growth stock score.
Mohanram G-Score in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_mohanram_g_score as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["AAPL", "MSFT", "GOOGL", "META", "NVDA", "ADBE"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.models.get_mohanram_g_score().xs("G-Score", level=1)
Or, after setting up the Finance Toolkit MCP, ask:
What was the Mohanram G-Score of Apple, Microsoft, Alphabet, Meta, Nvidia and Adobe, relative to each other, from 2023 to 2025?
Which returns:
| 2023 | 2024 | 2025 | |
|---|---|---|---|
| AAPL | 4 | 4 | 3 |
| ADBE | 5 | 5 | 5 |
| GOOGL | 4 | 4 | 6 |
| META | 6 | 5 | 4 |
| MSFT | 4 | 5 | 4 |
| NVDA | 3 | 3 | 3 |
Parameters
get_mohanram_g_score accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
variance_periods | int | The number of yearly values the variances of G4 (return on assets) and G5 (revenue growth) are calculated over, of which at least three (or all, when fewer are asked for) must be available. With trailing the values are trailing periods apart (one a year with 4 quarters); without it, one per period. Defaults to 5, the five years of the paper. | 5, the five years of the paper |
trailing | int | None | Sum the flows over this many periods (e.g. 4 quarters, a trailing twelve months) and compare with the values trailing periods back, so that with quarterly data every change is year over year. Balance sheet items are taken at the period end. Defaults to None, which is 4 for quarterly data (a year) and 1 otherwise; pass 1 for quarterly data to compare quarter over quarter. | 4 |
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding. | 2 |
show_columns | list[str] | None | The periods to show. Defaults to None, all periods. | None, all periods |