WORKIVA INC: financial reference
Explore WORKIVA INC financial histories from SEC filings, with original units, reporting periods, filing dates and downloadable source data.
Context from the filing
For 2023–2025, Workiva applies the two-class method and allocates net loss proportionately between Class A and Class B shares because their liquidation and dividend rights are identical. The selected statement denominator combines both classes; the separate class denominators in the EPS note should not replace it. Potential stock awards and convertible-note shares are excluded as antidilutive in these loss periods. Shares and per-share amounts are exempt from the statement’s thousands heading and use scale-zero tags. Read the source filing.
Reported financial histories
Choose a measure to inspect its definition, complete selected history and filing provenance. Each row shows the latest period available for that selected concept and original unit. Separate currencies and reporting intervals remain separate rows. Coverage dates can differ between concepts. A recent capture does not imply recent accounting coverage; these amounts are not prices.
| Measure | Period start | Period end | Value | Unit | Filed |
|---|---|---|---|---|---|
| Total assets | At date | 2025-12-31 | 1,493,571,000 | USD | 2026-02-19 |
| Total liabilities | At date | 2025-12-31 | 1,499,007,000 | USD | 2026-02-19 |
| Stockholders equity | At date | 2025-12-31 | -5,436,000 | USD | 2026-02-19 |
| Cash and cash equivalents | At date | 2025-12-31 | 338,769,000 | USD | 2026-02-19 |
| Net income or loss | 2025-01-01 | 2025-12-31 | -26,169,000 | USD | 2026-02-19 |
| Operating cash flow | 2025-01-01 | 2025-12-31 | 140,070,000 | USD | 2026-02-19 |
| Capital expenditure payments | 2025-01-01 | 2025-12-31 | 2,075,000 | USD | 2026-02-19 |
| Contract revenue excluding tax | 2025-01-01 | 2025-12-31 | 884,568,000 | USD | 2026-02-19 |
| Financing cash flow | 2025-01-01 | 2025-12-31 | -74,944,000 | USD | 2026-02-19 |
| Investing cash flow | 2025-01-01 | 2025-12-31 | -34,952,000 | USD | 2026-02-19 |
| Retained earnings or deficit | At date | 2025-12-31 | -733,852,000 | USD | 2026-02-19 |
| Basic weighted-average shares | 2025-01-01 | 2025-12-31 | 56,272,517 | shares | 2026-02-19 |
| Diluted weighted-average shares | 2025-01-01 | 2025-12-31 | 56,272,517 | shares | 2026-02-19 |
| Basic earnings per share | 2025-01-01 | 2025-12-31 | -0.47 | USD/shares | 2026-02-19 |
| Diluted earnings per share | 2025-01-01 | 2025-12-31 | -0.47 | USD/shares | 2026-02-19 |
| Income tax expense or benefit | 2025-01-01 | 2025-12-31 | 3,754,000 | USD | 2026-02-19 |
| Net property, plant and equipment | At date | 2018-12-31 | 41,468,000 | USD | 2020-02-20 |
| Share-based compensation expense | 2025-01-01 | 2025-12-31 | 122,945,000 | USD | 2026-02-19 |
| Operating income or loss | 2025-01-01 | 2025-12-31 | -42,441,000 | USD | 2026-02-19 |
| Current assets | At date | 2025-12-31 | 1,162,385,000 | USD | 2026-02-19 |
| Interest expense | 2023-01-01 | 2023-12-31 | 53,639,000 | USD | 2024-02-20 |
| Current liabilities | At date | 2025-12-31 | 741,652,000 | USD | 2026-02-19 |
| Current accounts payable | At date | 2025-12-31 | 8,932,000 | USD | 2026-02-19 |
| Goodwill carrying amount | At date | 2025-12-31 | 206,164,000 | USD | 2026-02-19 |
| Net finite-lived intangible assets | At date | 2025-12-31 | 22,270,000 | USD | 2026-02-19 |
| Net current accounts receivable | At date | 2025-12-31 | 168,984,000 | USD | 2026-02-19 |
| Common-stock repurchase payments | 2025-01-01 | 2025-12-31 | 71,628,000 | USD | 2026-02-19 |
| Operating expenses | 2025-01-01 | 2025-12-31 | 736,579,000 | USD | 2026-02-19 |
| Gross profit | 2025-01-01 | 2025-12-31 | 694,138,000 | USD | 2026-02-19 |
| Research and development expense | 2025-01-01 | 2025-12-31 | 214,844,000 | USD | 2026-02-19 |
Inspect the source
- Entity
- WORKIVA INC / CIK 0001445305
- Captured
- 2026-09-20T09:04:31.302Z
- SEC response SHA-256
fed299a58af45a71b19014f7c9dcfcdf2c928b4a896b7597fddfc363e87d872a
Current SEC company facts · Download the original response snapshot (gzip) · Download the selected JSON
Latest-filed annual-report facts per unit and reporting period at capture time. Duration facts cover 300 to 400 days. This selection can include restatements and is not a point-in-time backtest dataset. Missing concepts are omitted, never zero-filled. Values retain original units and are not currency converted. Extended concepts require compatible unit shapes and at least three reporting ends with changing values within one unit. Constant or incompatible added histories are omitted.
Public company accounting reference, not market prices, returns, an investment recommendation, or ALPHAC performance. Validate a separately constructed return series with the validation API; accounting values are not returns.
Use this in research
A financial period ends before its results become public. Use the filing date as a minimum availability boundary, inspect amendments, and retain the original filing vintage when testing historical signals. This latest-filed selection can contain information unavailable at the time.
These pages do not supply prices, total-return histories, corporate-action adjustments or a tradable universe. Build those inputs separately before evaluating a strategy. A profitable backtest can still reflect selection bias or costs that were left out.
Research methodology · Execution and cost assumptions · Check backtest overfitting
Build with the open-source tools
Use these accounting records as inspectable inputs. When you have constructed a return series, the validation tools can help test its statistical evidence and preserve the result with its limitations.
- Get an API key and run your first validation
- Connect the MCP server to your coding assistant
- Inspect the ALPHAC engine on GitHub
- Read the MCP server source and integration examples
Read the published dataset with Python
import json
from urllib.request import urlopen
with urlopen("https://canlicapital.com/company-data/0001445305.json") as response:
record = json.load(response)
print(record["fetched_at"])
print(record["policy"])
for concept in record["concepts"]:
print(concept["tag"], next(iter(concept["observations"])))