CSIQCanadian Solar Inc.
Is the business good?
Margins compressing. That is the only one of 4 checks this filer's data supports, so take it as a single data point rather than a settled answer.
Operating profit is falling even as sales grow, costs are outrunning the top line.
Where this answer is blind. The F-score rewards improvement, so an already-elite company can score mid-pack.
How good a business is CSIQ?
Canadian Solar Inc. earns 0.35% on the capital it employs against a 9.0% cost of capital, so growth costs more than it returns.
Return on invested capital · cost of capital 9.0% · 8.6 points below what the capital costs: growth destroys value
- Operating margin
- 0.77%
Operating margin · Solar median 5.5% · fiscal year to FY2025
- Share count, year on year
- +0.64%
Share count, year on year · flat: no meaningful dilution
- R&D as % of revenue
- 1.6%
R&D as % of revenue
| Year | Operating margin |
|---|---|
| FY2020 | 6.3% |
| FY2021 | 3.6% |
| FY2022 | 4.8% |
| FY2023 | 5.9% |
| FY2024 | −0.50% |
| FY2025 | 0.77% |
Details›
- Gross marginfiscal year to FY2025
- 18%
- Operating marginfiscal year to FY2025
- 0.77%
- Net marginfiscal year to FY2025
- −3.3%
- Free cash flow margin
- −22%
- R&D as % of revenue
- 1.6%
- Revenue, trailing twelve months
- $5.60B
- Free cash flow, trailing twelve months
- −$1.21B
- Net income, trailing twelve months
- −$184M
- Return on invested capitaloperating profit after tax ÷ debt + equity − cash
- 0.35%
Margins, capital and share counts from the statements as filed with the SEC; cash conversion is operating cash flow over operating profit after tax.
Customers and suppliers
Who buys from CSIQ and who it buys from, as the companies report it.
- Top five customers17%
Combined share of revenue · FY2025 20-F
None disclosed.
A company has to disclose every customer behind 10% or more of its revenue. Each share comes from the latest annual report of the company that states it and shows on both companies’ pages; CSIQ’s own figures are from its FY2025 20-F. Smaller customers and suppliers go unreported.