Vipshop Holdings Ltd

VIPSdata completeness 100%16 fiscal years on file
The thesis, from the filings

Vipshop Holdings Ltd earns about 19% on equity, far above its ~9% cost of capital, and has bought back 26% of its shares over 5 years — the marks of a durable business run for its owners. The estimate methods put fair value between $104.82 and $146.41 a share.Whether it’s worth owning at today’s price is the last question — and yours to answer, below.

i. The business — what you’d actually own
FigureFY 2021FY 2022FY 2023FY 2024FY 2025
Revenue$18.4B1$15B2$15.9B3$14.9B4$15.1B5
Net income$736.4M6$915.1M7$1.16B8$1.07B9$1.04B10
Operating cash flow$1.06B11$1.53B12$2.03B13$1.25B14$1.07B15
Capital expenditure$428.8M16$352.4M17$305.2M18$373.1M19$284M20
Free cash flow (derived)$629.6M11$1.17B12$1.73B13$877.6M14$782M15
Total debt$310M21$389.6M22$200.8M23$328.7M24$835.8M25
Cash & equivalents$2.56B26$3.18B27$3.58B28$3.61B29$3.29B30
Diluted shares138.7M128.2M112.6M107.9M102.4M

Superscripts are receipts. Each links to the SEC filing the number came from (full list at the bottom).

ii. Your slice — ownership made literal
If you owned
shares
Net assets behind them
$572.71
your share of equity
Profit it earned you last year
$101.15
Free cash flow it threw off
$76.38
Debt you’d be carrying
$81.63

10 shares is a claim on $572.71 of net worth that earned you $101.15 and generated $76.38 of cash last year, against $81.63 of debt.

iii. Is this a good business?
Moat signal · return on equity
19% avg · 5y
FY21 14%FY22 19%FY23 22%FY24 20%FY25 18%

It earned about 19% on equity, year after year, against a ~9% cost of capital — the footprint of real pricing power. Competition usually drags returns like this back down; here it hasn't.

seeing a moat in the numbers →
Management signal · capital allocation
−26% shares · 5y

Share count is down 26% over 5 years — management has been buying back stock, quietly handing owners a bigger slice. Total debt has risen 170% over the same window.

reading capital allocation →

Signals, not verdicts — read from the filings above. Numbers don’t prove a moat; they show its footprint. You decide.

iv. What it’s worth — engine v0.1.0

The 3 estimate methods that apply put fair value between $104.82 and $146.41 a share. They rest on different assumptions, so where they diverge is the story; the Graham Number is a stricter floor, not a target.

DCF · Growth Exit 10Y
$137.19
assumptions (10)
  • riskFreeRate4.7%
  • equityRiskPremium5.0%
  • beta100.0%
  • equityWeight85.0%
  • costOfDebtSpread1.5%
  • taxRate21.0%
  • terminalGrowth2.5%
  • projectionYears10
  • fcfGrowth0.0%
  • fcfBase$877.6M
DCF · Growth Exit 5Y
$146.41
assumptions (10)
  • riskFreeRate4.7%
  • equityRiskPremium5.0%
  • beta100.0%
  • equityWeight85.0%
  • costOfDebtSpread1.5%
  • taxRate21.0%
  • terminalGrowth2.5%
  • projectionYears5
  • fcfGrowth0.0%
  • fcfBase$877.6M
Earnings Power Value
$104.82
assumptions (8)
  • riskFreeRate4.7%
  • equityRiskPremium5.0%
  • beta100.0%
  • equityWeight85.0%
  • costOfDebtSpread1.5%
  • taxRate21.0%
  • normalizedEarnings$1.04B
  • growthAssumed0.0%
Graham Number
$114.2
assumptions (1)
  • grahamMultiplier2250.0%

Different models answer different questions — which to trust when →

v. The price question — last, on purpose
Is today’s price fair?
See live price ↗
Type a price. The ledger answers.
Or set your own belief
FCF growth, next 5 years0.0%
Discount rate (WACC)8.93%
Terminal growth2.5%
At your growth, a share is worth $146.41
The three cases
Bear0.0%$146.41
Base0.0%$146.41
Bull5.0%$176.06

Bear/base/bull growth = 0% / filed history / history + 5pp. Type a price to see the return each case implies.

Default growth 0.0%= this company’s own filed history (median-to-median FCF CAGR, clamped 0–20%). Your adjustments are recorded anonymously. They become the “what do owners actually believe” dataset.

Sources — the receipts
  1. 20-F · period ending 2021-12-31 · accession 0001193125-22-123600 (RevenueFromContractWithCustomerIncludingAssessedTax)
  2. 20-F · period ending 2022-12-31 · accession 0001193125-23-106425 (RevenueFromContractWithCustomerIncludingAssessedTax)
  3. 20-F · period ending 2023-12-31 · accession 0001193125-24-100774 (RevenueFromContractWithCustomerIncludingAssessedTax)
  4. 20-F · period ending 2024-12-31 · accession 0001193125-25-083419 (RevenueFromContractWithCustomerIncludingAssessedTax)
  5. 20-F · period ending 2025-12-31 · accession 0001104659-26-044015 (RevenueFromContractWithCustomerExcludingAssessedTax)
  6. 20-F · period ending 2021-12-31 · accession 0001193125-22-123600 (ProfitLoss)
  7. 20-F · period ending 2022-12-31 · accession 0001193125-23-106425 (ProfitLoss)
  8. 20-F · period ending 2023-12-31 · accession 0001193125-24-100774 (ProfitLoss)
  9. 20-F · period ending 2024-12-31 · accession 0001193125-25-083419 (ProfitLoss)
  10. 20-F · period ending 2025-12-31 · accession 0001104659-26-044015 (NetIncomeLoss)
  11. 20-F · period ending 2021-12-31 · accession 0001193125-22-123600 (NetCashProvidedByUsedInOperatingActivities)
  12. 20-F · period ending 2022-12-31 · accession 0001193125-23-106425 (NetCashProvidedByUsedInOperatingActivities)
  13. 20-F · period ending 2023-12-31 · accession 0001193125-24-100774 (NetCashProvidedByUsedInOperatingActivities)
  14. 20-F · period ending 2024-12-31 · accession 0001193125-25-083419 (NetCashProvidedByUsedInOperatingActivities)
  15. 20-F · period ending 2025-12-31 · accession 0001104659-26-044015 (NetCashProvidedByUsedInOperatingActivities)
  16. 20-F · period ending 2021-12-31 · accession 0001193125-22-123600 (PaymentsToAcquirePropertyPlantAndEquipment)
  17. 20-F · period ending 2022-12-31 · accession 0001193125-23-106425 (PaymentsToAcquirePropertyPlantAndEquipment)
  18. 20-F · period ending 2023-12-31 · accession 0001193125-24-100774 (PaymentsToAcquirePropertyPlantAndEquipment)
  19. 20-F · period ending 2024-12-31 · accession 0001193125-25-083419 (PaymentsToAcquirePropertyPlantAndEquipment)
  20. 20-F · period ending 2025-12-31 · accession 0001104659-26-044015 (PaymentsToAcquirePropertyPlantAndEquipment)
  21. 20-F · period ending 2021-12-31 · accession 0001193125-22-123600 (ShortTermBorrowings)
  22. 20-F · period ending 2022-12-31 · accession 0001193125-23-106425 (ShortTermBorrowings)
  23. 20-F · period ending 2023-12-31 · accession 0001193125-24-100774 (ShortTermBorrowings)
  24. 20-F · period ending 2024-12-31 · accession 0001193125-25-083419 (ShortTermBorrowings)
  25. 20-F · period ending 2025-12-31 · accession 0001104659-26-044015 (ShortTermBorrowings)
  26. 20-F · period ending 2021-12-31 · accession 0001193125-22-123600 (CashAndCashEquivalentsAtCarryingValue)
  27. 20-F · period ending 2022-12-31 · accession 0001193125-23-106425 (CashAndCashEquivalentsAtCarryingValue)
  28. 20-F · period ending 2023-12-31 · accession 0001193125-24-100774 (CashAndCashEquivalentsAtCarryingValue)
  29. 20-F · period ending 2024-12-31 · accession 0001193125-25-083419 (CashAndCashEquivalentsAtCarryingValue)
  30. 20-F · period ending 2025-12-31 · accession 0001104659-26-044015 (CashAndCashEquivalentsAtCarryingValue)