GDYN · XBRL financial data
Grid Dynamics Holdings financial statements, every fiscal year
The same tables from 7 filings, lined up. Matched by XBRL tag: renamed lines keep their history.
How these numbers work
- Every number comes from the company's XBRL financial data filed with the SEC, and each one links to its filing.
- Lines are matched by XBRL tag, so a line renamed between filings keeps its history.
- * marks a quarter worked out from the filing totals: the 10-K year minus the first three quarters, or a year-to-date total minus the earlier one. Fourth-quarter earnings per share is fourth-quarter net income over the fourth-quarter weighted shares.
- 0 means a filing states zero; a dash (—) means no filing states that number.
- “year only” means the 10-K gives the full year but not the quarters needed to work out the fourth. A worked-out quarter of revenue, cost of revenue or operating cash flow more than twice the company's largest quarter of the two years before is shown this way too.
- Gross profit is shown as the company reports it; a worked-out quarter must equal revenue less cost of revenue for that quarter, or it is a dash.
- Operating income can be above gross profit when the company books other operating income between the two, shown on its own line.
- Shares outstanding come from each filing's cover page, as of the date printed there.
- Quarters are fiscal: Q2 FY27 is the second quarter of the company's fiscal 2027.
Income statement
CSVFiscal years (GDYN's year ends in late December)
| In thousands of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Revenue | 111,283 | — | — | — | — | — |
| Revenue from contracts with customers | 111,283 | 211,280 | 310,482 | 312,910 | 350,571 | 411,827 |
| Cost of revenue | 69,662 | 123,552 | 189,892 | 199,764 | 223,566 | 269,479 |
| Gross profit | 41,621 | 87,728 | 120,590 | 113,146 | 127,005 | 142,348 |
| Research and development | 9,311 | 8,459 | 15,772 | 14,741 | 18,347 | 23,665 |
| Selling, general and administrative | 37,707 | — | — | — | — | — |
| General and administrative | 37,707 | 64,762 | 106,018 | 79,834 | 82,141 | 90,546 |
| Total operating expenses | 57,069 | 87,678 | 141,598 | 118,726 | 129,110 | 144,243 |
| Operating income (loss) | (15,448) | 50 | (21,008) | (5,580) | (2,105) | (1,895) |
| Other income (expense) | 236 | (2,502) | 555 | 10,418 | 13,160 | 17,596 |
| Income tax expense (benefit) | (2,613) | 5,248 | 8,761 | 6,603 | 7,014 | 6,033 |
| Net income (loss) | (12,599) | (7,700) | (29,214) | (1,765) | 4,041 | 9,668 |
| Earnings per share, basic USD per share | (0.28) | (0.13) | (0.42) | (0.02) | 0.05 | 0.11 |
| Earnings per share, diluted USD per share | (0.28) | (0.13) | (0.42) | (0.02) | 0.05 | 0.11 |
| Weighted average shares, basic thousands of shares | 45 | 58,662 | 69,197 | 75,193 | 77,465 | 84,539 |
| Weighted average shares, diluted thousands of shares | 45 | 58,662 | 69,197 | 75,193 | 79,974 | 86,892 |
Balance sheet
CSVFiscal years (GDYN's year ends in late December)
Cash flows
CSVFiscal years (GDYN's year ends in late December)
| In thousands of dollars | Dec 31, 2020 | Dec 31, 2021 | Dec 31, 2022 | Dec 31, 2023 | Dec 31, 2024 | Dec 31, 2025 |
|---|---|---|---|---|---|---|
| Net income (loss) | (12,599) | (7,700) | (29,214) | (1,765) | 4,041 | 9,668 |
| Stock-based compensation | 20,006 | 33,036 | 60,968 | 35,516 | 34,167 | 30,343 |
| Net cash from operating activities | 5,932 | 17,973 | 31,652 | 41,093 | 30,198 | 40,600 |
| Purchases of property and equipment | 2,252 | 4,716 | 6,069 | 7,870 | 11,766 | 15,334 |
| Net cash from investing activities | (18,339) | (35,366) | (16,323) | (25,950) | (51,301) | (15,136) |
| Proceeds from issuing common stock | 0 | 78,311 | 109,537 | 0 | 108,077 | 0 |
| Share repurchases | 123,865 | 0 | 0 | 0 | 0 | 2,000 |
| Dividends paid | 0 | 0 | — | — | — | — |
| Net cash from financing activities | 82,967 | 49,134 | 97,758 | (16,321) | 101,162 | (19,937) |
| Net change in cash | 70,556 | 31,619 | 112,365 | 498 | 77,928 | 6,903 |
Compare with peers
SIC 7372 and related industry codes, similar size. Each row is the latest quarter reported.
How peers are chosen
- SIC 7372 and related industry codes with public float (or, where float is missing, quarterly revenue) between 0.2x and 5x the company's.
- Each row is the latest quarter the company has reported, named in the Quarter column; when that filing is a 10-K, it is the fourth quarter, never the full year.
- Runway shows only for companies burning cash with under $10B of public float.
- * marks a quarter worked out from the filing totals: for a 10-Q, the year-to-date total less the earlier one.
- A cell reading “not reported” means the filings give no figure for that quarter alone.
| Company | Cash ($K) | Revenue, quarter ($K) | Operating cash flow, quarter ($K) | Shares outstanding | Runway | Quarter |
|---|---|---|---|---|---|---|
| Grid Dynamics Holdings | 304,287 | 114,294 | 16,016* | 80.4M | — | 10-QSep 30, 2026 |
| PDF Solutions | 114,883 | not reported | 16,401* | 42.2M | — | 10-QJun 30, 2026 |
| Healthstream | 46,169 | 83,732 | 13,431* | 29.2M | — | 10-QJun 30, 2026 |
| OneSpan | 51,393 | 63,885 | 16,493* | 36.9M | — | 10-QSep 30, 2026 |
| Red Violet | 49,972 | 26,718 | 10,637* | 16.0M | — | 10-QJun 30, 2026 |
| Red Cat Holdings | 325,553 | 20,189 | (46,804)* | 152.7M | 7.0 quarters | 10-QJun 30, 2026 |
| EverQuote | 229,070 | 218,077 | 40,482* | not reported | — | 10-QSep 30, 2026 |
| Taboola.com | 133,052 | 476,826 | 31,253* | not reported | — | 10-QJun 30, 2026 |
| N-able | 115,812 | 138,223 | 26,514* | 188.9M | — | 10-QJun 30, 2026 |
Not investment advice. Not affiliated with the U.S. SEC.