The financial scandal at Luckin Coffee ($LK), the $12B Chinese startup that IPOd on Nasdaq last yr is crazy.

This wk Luckin ended an internal investigation confirming 2019 revenues were inflated by $300M. An anonymous short seller did A++ work to unveil the fraud in Jan/thread
1. Luckin grew from nothing to 4.5K stores and a $12B valuation over two years, one of the fastest growing Chinese startups - Starbuck's rival in China.
2. In Jan, many notable short sellers received an email from an anonymous source titled "Coffee's for Closers" siting "a new generation of Chinese Fraud 2.0 has emerged."

The email included an exceptionally detailed report (89 pgs) building a case for fraud at Luckin.
3. The unknown reporter employed 92 full-time & 1,418 part-time staff to run surveillance & record the store traffic of 620 stores over a long period (~15% of total stores). They also tracked 11,260 store video hours, directly obtained from Luckin (investors can do that)
4. They found that Luckin was overstating its number of orders per store per day. In Q4'-19 management indicated ~495 items sold per store per day, but the on the ground research found this number to be closer to 263 -- an 88% inflation
5. To coverup the fake transactions, Luckin had their internal order system jump order numbers at the stores to "make up"orders. If one watched a store for an hour, they would see order numbers jump from 237, to 240, 242, for example. Store employees even got a message saying :
6. "Starting from Nov. 23rd the pick-up number
rules will be changed. Currently, the pick-up number increases one by one (e.g. 271,
272, 273...). After upgrade, it will increase randomly (e.g.
271, 273, 274...) It’s normal to see skipped pick-
up numbers"
7. The report shows that Luckin inflated the average price per item too. In Q4'19, the short seller gathered 25,843 customer receipts from 10,119 customers in 2,213 stores in 45 cities. They discovered that the avg price was RMB 9.97, 12% lower than what Luckin publicly stated.
8. In Q3'19, Luckin claimed store-level profitability. Stock hit $50 by Feb.

The inflated avg price/item and the item/store/day fit Luckin's case for steady-state profitability. However at 263 orders/store/day and price of RMB 10, Luckin is far from storer-level profitable.
9. So how did they hide it on the P&L? Where did the "profits" generated from the stores go? To counter the fraud in revenue & in-store profit, Luckin inflated it's sales & marketing expenses by the exact same amount, resulting in the same overall loss on the P&L,the report shows
10. Execution: Luckin used a network of 3rd party companies to buy vouchers in bulk and use those vouchers across the stores to inflate revenues.

It also fabricated expense payments to another set of companies under "supplier of raw materials".
11. "the records show numerous purchases by dozens of little-known companies in cities across China. These companies repeatedly bought bundles of vouchers, often in large amounts. Rafts of orders sometimes came in during overnight hours."
12.Wsj:"the rafts of purchases&payments formed a loop of transactions that allowed the company to inflate sales& expenses with a relatively small amount of capital that circulated in&out of the company’s accounts." Original source of funds to kickstart the transactions is unclear
13. Many of these third party entities are one way or the other linked back to Chales Lu the Chairman of Luckin. The CEO and COO were also in on this
15. It wasn't game over for Luckin after the short seller report came out. Citrion tweeted they are long Luckin for instance https://twitter.com/CitronResearch/status/1223302786747527169?s=20
16. This is an insane story given the profile of some of the western investors in the company: BlackRock, GIC, Point72.

Luckin's auditor was EY - the same accounting firm that failed to notice the scale of fraud at Wirecard.

$LK was finally delisted from Nasdaq this week.
You can follow @YasminRazavi.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: