| Market Cap | — | |
| Enterprise Value | — | |
| Revenue | CNY 11.43B | +10.8% |
| Gross Profit | CNY 2.59B | +16.3% |
| EBITDA | CNY 3.40B | −22.6% |
| Net Income | CNY 949.6M | −72.3% |
| Diluted EPS | CNY 0.55 | −75.8% |
| Free Cash Flow | -CNY 1.33B | — |
Bars are the value as filed for every stored fiscal year (oldest → newest, the latest bar solid); a year the store has no value for is left EMPTY, never drawn as a zero. Free cash flow is operating cash flow less capital expenditures for the same year — the only figure here computed from two lines, and a year missing either one is a gap. The 3y/5y/10y CAGRs are the analytics core’s own (positive-base only); no rate is recomputed on this strip, and no rate is shown for a series the core doesn’t publish one for. Diluted EPS is drawn on ONE share basis: as-filed per-share figures from before a split are stated on the old basis, so where the implied share count breaks (net income ÷ EPS, ±1.45× band — the same acceptance band the API’s own classifier uses) the earlier bars are left undrawn and any CAGR horizon reaching past the break is suppressed rather than shown as a rate across two different bases.
Every bar is a figure as filed. The blue bars are the reported subtotals (Revenue → Gross profit → Operating income → Pretax income → Net income), drawn from zero at exactly the number in the filing — never a sum computed here. The coloured steps between them are the filed component lines, applied as decreases (the taxonomy stores expenses as positive magnitudes) or, for “Other non-operating”, exactly as signed in the filing.
Residuals. Whatever part of a reported subtotal-to-subtotal gap the served lines do not name is drawn as its own hatched step and labelled a residual. Stretching a neighbouring step to make the arithmetic close — what a conventional waterfall does — would put a number on screen that nobody filed.
Nested lines left out: interest expense. This filer tags that line AND a broader line that already contains it — Apple, for instance, files a marketing figure that sits inside its own SG&A, and many filers report an interest-expense line that is also inside their net “other non-operating”. Applying both would double-count and break the reported subtotal, so the bridge keeps the decomposition that reconciles and names the dropped line here. Every figure is still shown, unchanged, in the statements grid below.
The ghost. Each dashed outline is the same step in the prior period (2024), anchored at this period’s running level so the reader sees whether the step grew or shrank. It contributes nothing to this period’s arithmetic.
Reconciliation.
| Step | Applied | Running level | % of revenue | 2024 |
|---|---|---|---|---|
| Revenue · reported | CNY 11.43B | CNY 11.43B | 100.0% | CNY 10.32B |
| Cost of revenue | -CNY 8.85B | CNY 2.59B | −77.4% | CNY 8.10B |
| Gross profit · reported | CNY 2.59B | CNY 2.59B | 22.6% | CNY 2.22B |
| R&D | -CNY 32.7M | CNY 2.55B | −0.3% | CNY 36.3M |
| Selling & marketing | -CNY 149.4M | CNY 2.40B | −1.3% | CNY 116.4M |
| SG&A | -CNY 897.9M | CNY 1.51B | −7.9% | CNY 917.9M |
| Other (residual) · residual | -CNY 1.56B | -CNY 55.8M | −13.7% | — |
| Operating income · reported | -CNY 55.8M | -CNY 55.8M | −0.5% | CNY 1.15B |
| Other non-operating | CNY 7.2M | -CNY 48.5M | 0.1% | CNY 21.8M |
| Other (residual) · residual | CNY 761.7M | CNY 713.2M | 6.7% | — |
| Pretax income · reported | CNY 713.2M | CNY 713.2M | 6.2% | -CNY 614.9M |
| Income tax | -CNY 469.7M | CNY 243.4M | −4.1% | CNY 156.1M |
| Other (residual) · residual | CNY 706.2M | CNY 949.6M | 6.2% | — |
| Net income · reported | CNY 949.6M | CNY 949.6M | 8.3% | CNY 3.43B |
Every figure is a filed cash-flow line, summed over the fiscal years listed below. The taxonomy stores payments as positive magnitudes, so each use is applied here as a decrease. Nothing is annualised, inflation-adjusted or imputed.
The window. Operating cash flow is the anchor, so the bridge covers exactly the 11 fiscal years that serve it (2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025). A year the store has no operating cash flow for is outside the window entirely — its capex and buybacks are not summed either.
Partial legs. Acquisitions (1/11 years), Stock issued (5/11 years) — the filer did not tag those lines in every window year, so the bar sums only the years that did and UNDERSTATES the full window. The unfiled years are absent, never estimated.
Debt is netted. Long-term debt issued less repaid is shown as one net step, because a refinancing that issues and repays the same amount is not two events of capital allocation. Short-term / commercial-paper movement is a different tag and is not included — it lands in the remainder.
The remainder is not free cash flow. It is what the named lines do not account for: net purchases and sales of investment securities (the largest piece for a cash-rich filer), short-term-debt movement, other financing and investing items, FX, and the change in the cash balance itself. Calling it “cash retained” would assert a reconciliation this bridge has not done.
The hatch inside operating cash flow. CNY 2.36B of the pool is the stock-based-compensation add-back (20% of it, filed in 11 of 11 years) — a real cost of employing people, settled in shares rather than cash, which is why it sits inside operating cash flow. The dilution it causes shows up in the share count, not here.
| Fiscal year | Operating Cash Flow | Capex | Acquisitions | Dividends | Buybacks | Debt issued | Debt repaid |
|---|---|---|---|---|---|---|---|
| 2015 | -CNY 80.3M | CNY 733.0M | — | — | — | CNY 584.5M | CNY 137.7M |
| 2016 | -CNY 129.0M | CNY 987.8M | CNY 103.6M | — | — | CNY 1.27B | CNY 373.9M |
| 2017 | -CNY 167.8M | CNY 1.72B | — | — | — | CNY 3.09B | CNY 1.40B |
| 2018 | -CNY 12.9M | CNY 4.26B | — | — | — | CNY 2.81B | CNY 834.2M |
| 2019 | CNY 293.4M | CNY 4.56B | — | — | — | — | CNY 1.97B |
| 2020 | CNY 320.9M | CNY 8.04B | — | — | — | — | CNY 4.19B |
| 2021 | CNY 1.20B | CNY 9.70B | — | — | — | — | CNY 5.18B |
| 2022 | CNY 2.81B | CNY 5.87B | — | — | — | — | CNY 1.35B |
| 2023 | CNY 2.07B | CNY 3.19B | — | — | — | — | CNY 4.42B |
| 2024 | CNY 1.94B | CNY 3.17B | — | — | — | — | CNY 5.63B |
| 2025 | CNY 3.37B | CNY 4.69B | — | — | — | — | CNY 7.99B |
A blank cell means the filer did not tag that line for that year — never a zero.
| Quality trend | 2025 | Δ vs 2020 | Trend · 12y | vs own | vs sector |
|---|---|---|---|---|---|
| Gross Margin | 22.6% | −4.4pp | p46 | p13 | |
| Operating Margin | −0.5% | −12.2pp | p29 | p25 | |
| Net Margin | 8.3% | +19.9pp | p88 | p57 | |
| Return on Invested Capital | −0.0% | — | p50 | p14 | |
| Return on Equity | 3.9% | +7.7pp | p83 | p33 |
No composite. The three scores are not averaged into one “quality” number. They point in different directions (F is a 0–9 count, higher-better; Z is a distress distance, higher-safer; M is a manipulation screen, lower-cleaner) and were fitted on different samples for different questions — a blended figure would be ours, not theirs, and would hide exactly the disagreement that is worth reading.
Sector context. The percentile columns on the trend rows are the ones this payload serves: “vs own” ranks the latest value inside this company’s own served history, “vs sector” inside its sector pool. A blank sector cell means the pool was too thin to rank honestly (or the metric is a currency level, where a cross-currency rank would be meaningless) — never a filled-in guess. The three SCORES carry no sector percentile: the payload’s percentile block covers the served ratios only, so “is this Z good for Services?” is a question we cannot answer from what is served, and we don’t pretend to.
No score history. A 12-year F-Score / Z-Score strip is not drawn. The point-in-time factor store carries valuation, returns, margin, momentum and growth factors — not these composites — and recomputing them here from the annual columns would produce a series that disagrees with the headline above (different vintage of facts, different restatement handling). A score that disagrees with itself is a wrong number, so the history is omitted rather than approximated.
The nine named F-Score checks, the Merton distance-to-default / default probability, ROIIC and the growth-durability CAGRs live on FS · Financial Strength; the full ratio grid — every served ratio, with its own trend and both percentiles — is the Ratios section below.
The five drivers multiply to -5.6% vs reported ROE -5.3%. High ROE from margin and turnover is earned; from the equity multiplier it is borrowed.
| Line | 2014↗ | 2015↗ | 2016↗ | 2017↗ | 2018↗ | 2019↗ | 2020↗ | 2021↗ | 2022↗ | 2023↗ | 2024↗ | 2025↗ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | CNY 468.3M | CNY 703.6M | CNY 1.06B | CNY 1.62B | CNY 2.79B | CNY 4.12B | CNY 5.74B | CNY 7.82B | CNY 9.27B | CNY 9.78B | CNY 10.32B | CNY 11.43B |
| YoY % | +50.2% | +50.1% | +53.1% | +72.8% | +47.6% | +39.2% | +36.2% | +18.5% | +5.5% | +5.5% | +10.8% | |
| Cost of Revenue | CNY 388.2M | CNY 515.0M | CNY 790.3M | CNY 1.21B | CNY 2.17B | CNY 3.08B | CNY 4.19B | CNY 6.04B | CNY 7.32B | CNY 7.83B | CNY 8.10B | CNY 8.85B |
| YoY % | +32.7% | +53.5% | +52.8% | +79.7% | +41.9% | +36.0% | +44.2% | +21.2% | +7.0% | +3.4% | +9.2% | |
| Gross Profit | CNY 80.2M | CNY 188.6M | CNY 265.7M | CNY 408.5M | CNY 622.4M | CNY 1.04B | CNY 1.55B | CNY 1.78B | CNY 1.95B | CNY 1.95B | CNY 2.22B | CNY 2.59B |
| YoY % | +135.3% | +40.8% | +53.7% | +52.4% | +67.5% | +48.7% | +14.8% | +9.7% | -0.0% | +13.9% | +16.3% | |
| R&D Expense | CNY 1.6M | CNY 3.6M | CNY 9.1M | CNY 7.3M | CNY 13.9M | CNY 21.6M | CNY 40.0M | CNY 39.3M | CNY 31.9M | CNY 38.2M | CNY 36.3M | CNY 32.7M |
| YoY % | +122.5% | +156.0% | -20.2% | +91.6% | +55.4% | +85.2% | -1.8% | -18.9% | +19.6% | -4.8% | -10.0% | |
| Selling & Marketing Expense | CNY 40.6M | CNY 57.6M | CNY 71.6M | CNY 90.1M | CNY 110.6M | CNY 129.9M | CNY 134.9M | CNY 148.6M | CNY 146.5M | CNY 140.9M | CNY 116.4M | CNY 149.4M |
| YoY % | +42.0% | +24.3% | +25.9% | +22.7% | +17.5% | +3.9% | +10.1% | -1.4% | -3.8% | -17.4% | +28.3% | |
| SG&A Expense | CNY 113.7M | CNY 128.7M | CNY 227.4M | CNY 228.9M | CNY 329.6M | CNY 411.4M | CNY 702.5M | CNY 1.02B | CNY 1.05B | CNY 966.0M | CNY 917.9M | CNY 897.9M |
| YoY % | +13.2% | +76.6% | +0.7% | +44.0% | +24.8% | +70.8% | +45.5% | +2.5% | -7.7% | -5.0% | -2.2% | |
| Operating Income | -CNY 75.7M | -CNY 1.2M | -CNY 42.4M | CNY 82.2M | CNY 168.4M | CNY 479.8M | CNY 672.9M | CNY 569.5M | CNY 713.2M | -CNY 2.21B | CNY 1.15B | -CNY 55.8M |
| YoY % | +104.7% | +185.0% | +40.3% | -15.4% | +25.2% | |||||||
| Interest Expense | — | — | — | — | — | — | — | — | CNY 1.88B | CNY 1.94B | CNY 1.92B | CNY 1.79B |
| YoY % | +3.1% | -0.6% | -7.1% | |||||||||
| Interest & Investment Income | — | — | — | — | — | — | — | — | CNY 42.2M | CNY 94.0M | CNY 89.8M | CNY 154.0M |
| YoY % | +122.6% | -4.5% | +71.6% | |||||||||
| Other Non-Operating Income | -CNY 412,000 | CNY 1.2M | CNY 284,000 | CNY 435,000 | CNY 5.4M | CNY 5.6M | CNY 5.0M | -CNY 1.6M | CNY 5.3M | CNY 25.3M | CNY 21.8M | CNY 7.2M |
| YoY % | -75.8% | +53.2% | +1149.7% | +2.4% | -11.0% | +380.8% | -13.9% | -66.9% | ||||
| Equity Method Income | — | — | — | — | — | -CNY 1.2M | -CNY 3.4M | -CNY 968,000 | -CNY 9.9M | CNY 110,000 | -CNY 347,000 | CNY 715.9M |
| Impairment of Real Estate | — | — | — | — | — | — | CNY 0 | CNY 0 | CNY 12.8M | CNY 3.01B | CNY 0 | CNY 1.56B |
| YoY % | +23518.0% | -100.0% | ||||||||||
| Pretax Income | -CNY 134.6M | -CNY 110.6M | -CNY 284.7M | -CNY 333.0M | -CNY 439.7M | -CNY 426.4M | -CNY 548.4M | CNY 948.8M | CNY 828.3M | -CNY 3.94B | -CNY 614.9M | CNY 713.2M |
| YoY % | -12.7% | |||||||||||
| Income Tax | -CNY 4.6M | -CNY 12.0M | -CNY 8.3M | -CNY 6.1M | -CNY 9.4M | CNY 15.7M | CNY 120.8M | CNY 242.5M | CNY 276.2M | -CNY 15.6M | CNY 156.1M | CNY 469.7M |
| YoY % | +671.7% | +100.7% | +13.9% | +201.0% | ||||||||
| Income from Continuing Operations | — | — | — | — | — | — | — | — | -CNY 1.11B | -CNY 3.93B | -CNY 777.1M | CNY 949.6M |
| Income from Discontinued Operations | — | — | — | — | — | — | — | — | -CNY 161.6M | -CNY 359.4M | CNY 4.07B | — |
| Net Income (incl. NCI) | — | -CNY 98.6M | -CNY 276.4M | -CNY 326.9M | -CNY 430.3M | -CNY 442.1M | -CNY 669.2M | -CNY 1.19B | -CNY 1.27B | -CNY 4.29B | CNY 3.30B | CNY 959.4M |
| YoY % | -71.0% | |||||||||||
| Net Income | -CNY 130.0M | -CNY 98.6M | -CNY 276.4M | -CNY 326.9M | -CNY 430.3M | -CNY 442.1M | -CNY 666.4M | -CNY 1.19B | -CNY 1.27B | -CNY 4.29B | CNY 3.43B | CNY 949.6M |
| YoY % | -72.3% | |||||||||||
| Net Income to Common | -CNY 309.1M | -CNY 216.6M | -CNY 403.4M | -CNY 326.9M | -CNY 430.3M | -CNY 500.2M | -CNY 737.7M | -CNY 1.31B | -CNY 1.51B | -CNY 4.34B | CNY 3.35B | CNY 895.3M |
| YoY % | -73.3% | |||||||||||
| EPS (Basic) | — | — | — | — | — | -CNY 0.45 | -CNY 0.59 | -CNY 0.90 | -CNY 1.03 | -CNY 2.96 | CNY 2.27 | CNY 0.59 |
| YoY % | -74.0% | |||||||||||
| EPS (Diluted) | — | — | — | — | — | -CNY 0.45 | -CNY 0.59 | -CNY 0.90 | -CNY 1.03 | -CNY 2.96 | CNY 2.27 | CNY 0.55 |
| YoY % | -75.8% | |||||||||||
| Weighted Avg Shares (Basic) | — | — | — | — | — | 1.10B | 1.25B | 1.45B | 1.46B | 1.47B | 1.48B | 1.52B |
| YoY % | +13.7% | +15.9% | +0.8% | +0.3% | +0.5% | +3.1% | ||||||
| Weighted Avg Shares (Diluted) | — | — | — | — | — | 1.10B | 1.25B | 1.45B | 1.46B | 1.47B | 1.48B | 1.64B |
| YoY % | +13.7% | +15.9% | +0.8% | +0.3% | +0.5% | +11.5% |
The sector classification is SIC-derived, not official GICS. Statement lines are XBRL facts as filed with the company's home regulator (SEC EDGAR for US filers; ESEF/EDINET and other national regulators for foreign filers); ratios and other derived figures are computed from them. A blank cell means the tag was absent — never imputed.