Blog · Finance metrics and formulas · Finance and FP&A teams
Company annual report analysis compares financial trends while checking that statement figures agree. Use this practical workflow to capture published numbers, calculate changes and margins, and build a review that distinguishes evidence from explanations.
Company annual report analysis turns published financial statements into a checked comparison of performance, financial position and cash movement. Capture comparable figures, reconcile the statements and calculate changes before explaining them. For a company's finance or procurement team, the result should support a defined business question, such as whether a supplier's growth is accompanied by stronger operating profit and cash generation.
Record the company's legal name, consolidated reporting scope, fiscal year-end, currency, unit scale and report version. Compare equivalent periods and use restated comparative figures when the latest report supplies them. A fiscal year is not necessarily a calendar year, and a change in reporting scope can make growth look stronger without a comparable increase in the continuing business.
Read the auditor's report for the statements and periods covered, the opinion expressed and any qualifications or other highlighted matters. Record those observations without treating your own spreadsheet checks as assurance. Next, read the accounting policies and relevant notes before deciding which statement lines can be compared.
The SEC's guide to financial statements distinguishes the balance sheet's position at a point in time from the income statement's performance over a period and the cash flow statement's movements. Preserve those distinctions in your workbook: a year-end cash balance is not annual cash generation.
Use a workbook with statement name, line label, current year, comparative year, units, source page and note reference. Copy the reported labels before creating your own categories. Enter missing or undisclosed information as missing, not zero. Convert units once in a separate calculated column and retain the original reported amount beside it.
The following is an illustrative US industrial company, Harbor Components. These are invented teaching figures, not a published company's results. All amounts are whole USD, with expenses shown as positive amounts for subtraction. Percentage results below are rounded to one decimal place.
| Statement line | 2024 (USD) | 2025 (USD) |
|---|---|---|
| Revenue | 48,000,000 | 54,000,000 |
| Cost of goods sold | 31,200,000 | 36,180,000 |
| Operating expenses | 12,000,000 | 13,500,000 |
| Interest expense | 600,000 | 700,000 |
| Income tax expense | 1,000,000 | 900,000 |
| Total assets | 30,000,000 | 34,000,000 |
| Total liabilities | 18,000,000 | 20,500,000 |
| Total equity | 12,000,000 | 13,500,000 |
| Opening cash | 3,500,000 | 4,000,000 |
| Operating cash flow | 4,200,000 | 4,800,000 |
| Investing cash flow | -2,500,000 | -2,800,000 |
| Financing cash flow | -1,200,000 | -800,000 |
| Closing cash | 4,000,000 | 5,200,000 |
Put line labels in A and year values in B:C, with revenue on row 2 and closing cash on row 14. A real review would retain the published subtotals as well, so calculated results can be checked against the report rather than only against each other.
Add these calculations beneath the captured table. First check that each statement label appears only once within each reporting entity and period. In this table, =SUMIFS(C2:C14,A2:A14,"Revenue") selects $54,000,000 by its label; Microsoft documents SUMIFS as adding values that meet specified criteria. Covirage is not affiliated with Microsoft.
2024 gross profit: =B2-B3
2025 gross profit: =C2-C3
2024 operating profit: =B2-B3-B4
2025 operating profit: =C2-C3-C4
2024 net income: =B2-B3-B4-B5-B6
2025 net income: =C2-C3-C4-C5-C6
Revenue growth: =IF(B2=0,NA(),(C2-B2)/B2)
2024 gross margin: =(B2-B3)/B2
2025 gross margin: =(C2-C3)/C2
2024 operating margin: =(B2-B3-B4)/B2
2025 operating margin: =(C2-C3-C4)/C2
Enter the formula after each label. Format growth and margins as percentages; do not multiply by 100 and then apply percentage formatting.
| Derived measure | 2024 | 2025 | Check or change |
|---|---|---|---|
| Gross profit (USD) | 16,800,000 | 17,820,000 | Revenue less cost of goods sold |
| Operating profit (USD) | 4,800,000 | 4,320,000 | Gross profit less operating expenses |
| Net income (USD) | 3,200,000 | 2,720,000 | Operating profit less interest and tax |
| Gross margin | 35.0% | 33.0% | Down 2.0 percentage points |
| Operating margin | 10.0% | 8.0% | Down 2.0 percentage points |
| Revenue growth | — | 12.5% | 6,000,000 / 48,000,000 |
Revenue rose, but operating profit fell by $480,000, or 10.0% of the prior year's $4,800,000. The arithmetic bridge is explicit:
| Operating-profit bridge | Amount (USD) |
|---|---|
| 2024 operating profit | 4,800,000 |
| Revenue increase: 54,000,000 - 48,000,000 | 6,000,000 |
| Additional cost of goods sold: -(36,180,000 - 31,200,000) | -4,980,000 |
| Additional operating expenses: -(13,500,000 - 12,000,000) | -1,500,000 |
| 2025 operating profit | 4,320,000 |
This proves the movement, but it does not prove a cause such as inflation, lower pricing or product mix. Look for supporting disclosures before assigning one. The detailed gross profit margin method covers that measure; EBITDA versus operating income explains why those subtotals should stay distinct.
The balance sheet check subtracts liabilities and equity from assets. The cash check subtracts opening cash and the signed cash flows from closing cash:
2024 balance sheet difference: =B7-B8-B9
2025 balance sheet difference: =C7-C8-C9
2024 cash difference: =B14-B10-SUM(B11:B13)
2025 cash difference: =C14-C10-SUM(C11:C13)
| Proof | 2024 (USD) | 2025 (USD) |
|---|---|---|
| Assets less liabilities and equity | 30,000,000 - 18,000,000 - 12,000,000 = 0 | 34,000,000 - 20,500,000 - 13,500,000 = 0 |
| Net cash movement | 4,200,000 - 2,500,000 - 1,200,000 = 500,000 | 4,800,000 - 2,800,000 - 800,000 = 1,200,000 |
| Closing less opening cash | 4,000,000 - 3,500,000 = 500,000 | 5,200,000 - 4,000,000 = 1,200,000 |
| Cash reconciliation difference | 0 | 0 |
In a real report, include any separately reported exchange-rate effect and match the cash definition used by the cash flow statement. Then review the statement of equity and its notes to explain changes in equity; do not assume net income alone explains them. Use the established financial ratio methods for additional measures rather than collecting ratios without a decision to support.
Finish with a short review note: the observed movement, its source, the supported explanation and the unresolved question. Assign those questions to finance or the relevant business owner.
Bring the statement figures you have captured in a workbook or Google Sheet, including their source references: Covirage maps the columns, and its tools compute comparisons and check the supplied reconciliations. The external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for finance teams for the wider reporting context.
Confirm the reporting entity, fiscal year, reporting currency and unit scale before copying numbers. Then read the auditor's report and the principal accounting policies. Those details establish the scope and basis of the statements you will compare.
Revenue growth does not guarantee that gross profit grows fast enough to cover operating expenses. Compare the dollar changes in revenue, cost of goods sold and operating expenses. Then use the notes and management discussion to investigate the causes of those changes.
No. A spreadsheet review can identify arithmetic inconsistencies, trends and questions for management. It does not independently verify the underlying records or provide assurance. Keep the auditor's opinion, its scope and any qualifications separate from your own analytical conclusions.