November 2021 Portfolio Review
Total Return: +41.9% YTD (+20.4% vs S&P)
Sheesh!
Rapid-fire earnings are always busy, but November was particularly demanding. At one point more than two-thirds of our net worth reported in just over a week with roughly 90% reporting on the month. To be honest, I found the results a mixed bag. That led to waaay more shuffling than usual, especially considering the sheer size of the allocations moved around. I can’t say it was easy, but at least it was productive (I think 😉). Just one more to go with CrowdStrike’s report on December 1.
I’m thankful for a lot – family, friends, neighbors, colleagues, acquaintances. I’m also thankful November’s finally over.
2021 Results:
November Portfolio and Results:
2021 Monthly Allocations:
Key:
darker green: started during month
lighter green: added during month
yellow: trimmed during month
blue: bought and sold during month
red: position exits
positions >10% in bold
Past recaps:
December 2019 (contains links to all 2019 monthly reports)
December 2020 (contains links to all 2020 monthly reports)
Stock Comments:
This has definitely been one of the tougher earnings periods I’ve had to navigate. It included numerous hickeys to monitor along with two flat-out disappointments. As mentioned earlier, that caused a lot more moving and shaking than I usually do in a given month. Below is the good, bad, and ugly of it all…
AFRM – Affirm had about a 10-day stint in our portfolio. AFRM is a “Buy Now, Pay Later” (BNPL) lender offering consumers the chance to purchase items on installment rather than paying the entire amount up front. If you’re old enough to remember the 80’s (like me), think of it as a digital Kmart layaway plan where you get the goods up front rather than after the balance is paid. The difference from credit cards is the installment timing and payment amount is immediately locked in at the time of purchase. Affirm makes its money through an interest rate from the consumer, a transaction fee from the merchant, or a combination of both.
Affirm has a host of merchant partners, but the four getting everyone excited are Shopify, Walmart, Target, and Amazon. These recent partnerships have pushed AFRM to more than 102,000 merchant locations versus 29,000 last quarter and just 6,500 a year ago. That’s astronomical growth. The number of consumers using Affirm has more than doubled in the past year as well from 3.9M to 8.7M. The Amazon partnership is just starting out with Affirm now embedded as a payment option at check out. The deal also makes Affirm Amazon’s exclusive non-credit card BNPL option in the US through January 2023. How quickly these deals ramp up is still TBD, but that’s an impressive number of merchants and consumers feeding into Affirm’s system.
The main pros as I see it are:
BNPL is growing fast with consumers, and Affirm appears to be a leader in the space.
Affirm’s partnerships give it direct access to 60% of the US e-commerce market. That’s a whole lotta market.
The general consumer spending and lending environments appear to be tailwinds for now, especially with the holidays approaching.
The main cons are:
I find Affirm’s business super complicated. It has multiple revenue and expense levers, all of which have lumpiness as they play off each other.
The quality of Affirm’s borrowers is only as good as its underwriting criteria, meaning there is additional default risk if its lending standards somehow falter or are slow to adapt to a change in the broader environment.
Affirm frees up new lending capacity by selling existing loans to third-party lenders. This creates additional risk if those lenders demand better terms or lessen the number of loans they will purchase.
Any company subject to this much macro influence and consumer sentiment will be extra sensitive to broader economic cycles.
I initially decided the pros outweighed the cons and started a 5% position when AFRM drifted back below $150. However, after thinking some more I added this to my list.
New pro:
Management stated there is zero contribution from the Amazon deal in next quarter’s guide. That leaves plenty of room for upside surprise in Q2.
New con:
Management stated there is zero contribution from the Amazon deal in next quarter’s guide. Yet everyone and their mother knows the deal is done and starting to kick in. That leaves plenty of room for market speculation about Q2.
And I guess that last con is what ultimately changed my mind. I just can’t get comfortable with this much speculation. I do not in any way consider myself smarter than the market. Never have. Instead, I see my circle of competence as a process that potentially helps better understand and build more conviction in companies than the average investor. Between the complicated business model, the uncertain Amazon timing, and the possibility more holiday shopping than usual is already done, I’m not feeling very competent assessing Affirm. Being honest with myself, I’m not sure I can find a suitable level of comfort given Affirm’s complexity and unknowns no matter how interesting it might look on the surface. In my eyes that makes it a 50/50 bet, which are odds I try hard to avoid. While I prefer not to carry an oversized cash position, I’m even less interested in forcing it into something without the appropriate conviction.
Oh well. No harm, no foul.
AMPL – On November 9 Amplitude issued its first report as a public company, and the results were enough to keep me interested. Revenue of $42.5M was an acceleration to 72.5% YoY growth and a strong 16% QoQ showing. Remaining Performance Obligation held firm at +79% YoY while the portion expected to be recognized within the next 12 months grew 66% YoY to $126M. Gross margin ticked up slightly to 71.3% versus 70.8% in Q2 and 71.2% last year. Net retention rate improved also to 121% against 119% both last quarter and last year. Management has stated its current goal is 120%+, so no issues there. Overall, it was a solid top line performance.
Amplitude now has 1,417 customers (+54% YoY; +11% QoQ). Management does not plan to update >$100K and >$1M customers until the Q4 report but continues “to see great momentum” in these cohorts. In addition, Amplitude’s flagship Analytics platform maintained its position as the #1 product analytics solution in software review firm G2’s September update on the industry. These are all encouraging signs for a newly public company.
Looking more broadly at execution, expenses were reasonable while losses continue to narrow. This suggests Amplitude is steadily creating leverage as it grows, which is exactly what we want to see. Cash burn increased significantly this quarter, but almost all of it was related to one-time costs for taking the company public. I’d anticipate cash flows quickly smoothing out quickly as we go.
The earnings release was paired with two positive business developments. First Amplitude unveiled a partnership with Snowflake. Through this arrangement Snowflake users can now access and launch AMPL’s products in just a few clicks. I’d have to imagine it’s a major hurdle for a young software firm to create broader and easier access to its platform. Kudos to Amplitude for finding a way to plug into Snowflake’s rapidly growing platform.
Next Amplitude opened a new data center in Germany. This will allow European customers to easily access Amplitude while still adhering to the European Union’s local data privacy standards. With 35% of revenue already coming internationally, this should only improve Amplitude’s service and reach.
The only real glitch I saw in AMPL’s maiden report was a Q4 guide for only 56% growth. That’s slightly lower than I anticipated. However, the CFO stated as “a new public company, we want to be pretty prudent about how we’re thinking about the next quarter guide.” Prudence is fine, though I’m still expecting Amplitude to challenge 70% growth again next quarter. That might seem like a high bar, but a firm this small needs that type of growth if it’s going to follow the trajectory of companies holding larger allocations in our portfolio. At this point, I’m optimistic about AMPL’s chances and even added a few shares during the month.
BILL – A new position, Bill.com is a billing software firm that “simplifies, digitizes, and automates complex back-office financial operations for small and midsized businesses.” It’s basically a one-stop shop for monitoring and managing Accounts Payable, Accounts Receivable, spend management, payments, and cash flows. The company is also working on features for budgeting, reporting, and analytics. It earns revenue mostly from subscription and transaction fees along with a tiny amount from interest collected while holding funds for in-progress transactions.
In its most recent quarter, BILL earned $116M for 152% YoY growth (78% organic). That includes $35M in subscription revenue (+43% YoY/39% organic) and $80.6M in transaction revenue (+319% YoY/+127% organic). The phenomenal growth in transactions has pushed that revenue stream from 42% to 69% of total revenue over the last four quarters. During that same timeframe, payments volume through BILL’s platform has surged from $28.8B to $46.9B (+63%) while gross margin has improved from 76% to 83%. That suggests a considerable amount of operational efficiency being created as the company scales.
Bill.com has augmented its core business with two recent acquisitions. The first was Divvy, which is the main reason for the surge in inorganic growth. Divvy focuses on expense reporting and spend management including facilitating business-linked credit cards. Divvy had a hugely successful Q1 with standalone revenue up 187% YoY. Granted much of this increase is likely due to the return of business travel since last year, but management expresses confidence it can get many of BILL’s current 126K+ customers to join Divvy’s existing 13.5K. If so, there’s plenty of room to run for this new service.
The more recent acquisition of Invoice2go just closed this quarter. Invoice2go is a mobile-first solution providing smaller businesses and sole proprietors with a simple invoicing, estimate, expense tracking, and online payments solution. Geared more toward ease of use, Invoice2go has 226K+ customers in 150 countries. In addition to potential cross-selling opportunities as some of these smaller users grow, Invoice2go will provide management with potential insight into international possibilities for its other products. The ultimate vision is to turn Bill.com into “the all-in-one financial operations platform for entities ranging from the smallest of businesses to midsized companies,” including financial industry businesses themselves like banks and accounting firms. So far, BILL appears to be making progress in this direction.
One thing to note though is all this top line goodness has yet to positively influence the bottom line. As shown below, cash flows and profit margins that were improving slightly over time have dipped sharply the last two quarters due to costs for the Divvy and Invoice2go buys. Since it’s easy to see how these acquisitions augment BILL’s core business, I’m temporarily OK with the dip. However, I’m expecting these metrics to quickly get back on track toward challenging and eventually clearing breakeven.
(Q2 and FY22 are current guides)
In addition, it’s important to recognize Bill.com’s recent return to hypergrowth is being mostly driven by its more variable revenue stream. Its recurring revenue signals like subscriptions and RPO aren’t nearly as attractive as many other software firms. Transactions revenue is much more dependent on usage/volume, which also makes it less reliable and harder to predict. That in turn can increase the likelihood of an earnings surprise…or an earnings disappointment. Management states, “while we haven’t seen any material impact [from supply chain issues] to our business to date, we are monitoring the situation closely.” So am I. Consequently, transactions revenue will be the #1 signal I’ll be watching with this position.
For now, Bill.com’s revenue is small enough to give it some leeway while it focuses on growth. It only needs to show leverage before the market loses patience. Prior holding Livongo trended this same way a couple years before exploding upward once leverage kicked in. Of course, prior holdings Smartsheet and Twilio did the same before the market decided it was tired of waiting and rerated the stocks down. I’m obviously hoping Bill.com mimics Livongo rather than sliding toward Smartsheet/Twilio. This allocation will stay on the smaller side until BILL clarifies its path.
CRWD – This was a news-only month for CrowdStrike while waiting on December 1 earnings. First, CRWD acquired SecureCircle to enhance its Zero Trust data protection capabilities. An all-cash transaction formally closed November 30, SecureCircle’s technology extends CrowdStrike’s protection beyond just endpoint devices to any data residing on those endpoints as well. This enhancement will enable customers to “enforce Zero Trust at the device level, the identity level, and at the data level.” I’m not exactly sure how all these layers work. I only know the more layers the better when it comes to cybersecurity.
Next, CrowdStrike was selected by the Center for Internet Security (CIS) as its “premier partner for endpoint security.” The expansion of an existing relationship, CRWD will now power CIS’s Endpoint Security Services solution for US state, local, tribal, and territorial governments. This new feature will be available to over 12,000 organizations with more than 14 million active endpoints. With governments everywhere are reassessing their digital security, this appears to be a nice win.
Lastly, CrowdStrike’s Falcon platform was named winner of the Best Endpoint Detection and Response Product for the second consecutive year in SE Labs’ annual computer security report. It also earned SE Labs’ highest possible rating in Enterprise Endpoint Protection for the 12th time since 2018. Given the highly competitive nature of the industry, it’s encouraging to see continued third-party recognition for CrowdStrike’s products. Here’s hoping this acknowledgment is prelude to yet another strong earnings report.
DCBO – Meh. I wrote last month Docebo was a tryout position. This month it got the boot after an uninspiring November 11 earnings report.
I was looking for 75%+ growth with enough interesting tidbits to think digital learning had a chance to be more than just a niche product. DCBO delivered neither in what I thought was a middling report at best. Headline growth came in at just 68%. Even after backing out Q2’s one-time $1.1M revenue catch up, 10% QoQ growth versus the reported 5.6% is nothing special for a company this small. Likewise, ARR growth declined QoQ from 12% to 10% even as DCBO landed Zoom as a customer during the quarter.
Total customer growth shows a similar trend by drifting from 7.1% QoQ to 6.5% to 6.1% the last three quarters. That simply doesn’t pass the smell test for significant adoption, especially off such a small base. Even with the average contract increasing slightly to $39K overall and $58K for new lands, the slowdown in new clients can’t be ignored.
Entering this position, I made note of just how small Docebo’s revenue was even though Amazon was using it for AWS certifications. Docebo has now landed Zoom as well yet still muddles along with pretty pedestrian growth rates compared to what some of the known SaaS winners have accomplished at a similar stage. My takeaway for now is:
this product just might be too niche;
Docebo lacks real pricing power;
some combination of 1 and 2.
Regardless, I didn’t see anything this quarter to believe Docebo is lining up as a long-term hypergrowth winner. Oh well. Nothing ventured, nothing gained. **
** Sorry for all the pithy sayings so far. It was a pithy kind of month.
DDOG – November’s minor Datadog news was completion of the Ozcode acquisition. A software tool for debugging code, Ozcode will help DDOG’s customers “accelerate software development and reduce the mean time it takes to resolve issues.” Datadog has long sold a vision of being the preferred solution at every development phase from idea generation to full product release. This purchase looks like another step in that direction.
The major news, of course, was November 4 earnings. I’m happy to say Datadog crushed it in just about every way. The $270M in revenue, $67M in operating cash flow, $57M in free cash flow, $44M in operating income, and $44M in net income were all records. Through the first three quarters of 2021, Datadog has now posted the following (oldest to most recent):
YoY Revenue Growth: 51%, 67%, 75%
QoQ Revenue Growth: 12%, 18%, 16%
Operating Expenses as a % of Revenue: 67%, 63%, 61% (the lower the better on this one)
YoY Gross Profit Growth: 45%, 59%, 73%
QoQ Gross Profit Growth: 11%, 17%, 18%
YoY RPO Growth: 81%, 103%, 128%
QoQ RPO Growth: 7%, 26%, 23%
YoY Growth in $100K+ Customers (now a record 1,800): 51%, 60%, 66%
QoQ Growth in $100K+ Customers: 15%, 12%, 15%
Operating Income Margin: 10%, 13%, 16%
Net Income Margin: 10%, 14%, 16%
In addition, this quarter saw:
A record 77% of customers using 2+ modules versus 75% in Q2 and 71% last year
A record 31% of customers using 4+ modules versus 28% in Q2 and 20% last year
A Net Retention Rate of 130%+ for the 17th consecutive quarter (that I know of at least)
That’s a phenomenal performance no matter how you slice it, especially for a firm on pace to pass $1B in revenue on the year. CEO Olivier Pomel gushed “all of our major products added a record amount of ARR during the quarter.” Likewise, CFO David Obstler said “new logo ARR was up strongly year-over-year.” Obstler also noted ARR growth accelerated in all geographical regions on a year-over-year basis compared to Q2. How many companies can make that statement at any scale?
Looking to fully leverage this “large and dynamic market opportunity,” Datadog made 40 new product-related announcements in Q3. That doesn’t include any of the multiple releases from October’s Dash customer conference (product roundup here). In essence, Datadog is attempting to innovate its way from an effective add-on developer tool to an all-inclusive platform on which corporate clients can run their entire stack. If Datadog can pull it off, this will be one heck of a ride. All I can say is…
LSPD – After an up and down couple of months including a short report, Lightspeed had a hugely important November 4 earnings release. Rather than give a detailed breakdown of the quarter, I’m just going to cut and paste my investing journal from that morning:
5:45 am U.S. Central Time – “Man, these morning reports are frickin’ brutal… I’m glad I don’t live on the West Coast… <SLURP>… $#&%!!!... I knew that coffee was too hot, but what choice do I have? It’s a morning release, and I desperately need the caffeine…”
6:00 am – “<refreshes screen>… Not seeing anything yet… Should I surf the web while I’m waiting? No, stay focused!... Brrrrr, it’s chilly this morning. I really need to straighten up the garage so we can get both cars in before the snow starts flying… Wait, what am I doing up this early again?... Oh yeah, Lightspeed earnings!… C’mon, man, shake yourself!!... The revenue guide is $124M but based on their admittedly limited history I’m looking for something closer to $145M with a Q3 guide of $155-$160M… Hmmm, some other retail/hospitality firms have recently mentioned supply chain or staffing issues. Should I adjust my expectations down?... Nope, too late now. Trust the process. Besides, LSPD will likely need something in that neighborhood to hold its premium anyway… Not to mention I’m too tired at the moment to rethink it…”
6:15 am – “<refreshes screen>… Still nothing… Could I have slept in another 10 minutes?...”
6:20 am – “<refreshes screen>… There it is!... $133.2M with a $145M guide… That seems a little, uhhhh, light… Raised the full-year revenue guide by only $5M while also adding $5M more to estimated FY losses... Shoot, that’s disappointing too… Organic subscription growth fell to 58% from 78% last quarter?!?... Oof… The market’s not going to like any of that… What’d it close at yesterday? $98.97?... $87 now. Uh oh…”
6:25 am – “Well, there are clearly general macro and supply chain issues. Why would I assume LSPD’s merchants are immune?… Is there anything I can check to see if the underlying business is still on track?… I know! Customer locations and payments penetration!... Even if softer economies are limiting GMV, location and penetration numbers should look okay if LSPD’s platform is gaining acceptance… Let’s see, <scans release> 156K customer locations… for only 4% sequential growth?… even with all those new sales leads from acquisitions?!?… THAT’S TERRIBLE!!... Drifting down to $83… Oops, I just threw up in my mouth a little. At least there was some coffee mixed in…”
6:30 am – “OK. One last check. Last quarter’s payments penetration was 10% with a long-term belief roughly 50% of LSPD merchants would adopt the platform… This quarter’s penetration rate was <scans release> 11%... That means Lightspeed is on pace to reach its estimated payments penetration in <counts fingers> 39 quarters?!?... CRAP! NONE OF THIS LOOKS LIKE THE RESULTS OF A DOMINANT GROWTH COMPANY!!!... $81… Oh well, can’t win them all. Time to head for the exits…”
6:33 am – “OK, I own a bunch of LSPD totaling 10% of my portfolio across multiple accounts. Better sell the bigger accounts first since it looks like we’re heading down… Still holding around $81, so at least I’ve got that going for me…”
6:35 am – “Wait a sec! I just entered the sell order in the second account and the first hasn’t filled yet. What the hell is going on?... #$%&!!!... I placed both orders without marking extended hours. AAAARRGH!... Dammit, caffeine! YOU ONLY HAD ONE JOB!!… Ooh, wait. It’s back up to $82.50! Sometimes it’s better to be lucky than good…”
6:40 am – “Well, that totally sucked. At least I dumped everything in the big accounts above $80… A painful loss, but whaddya gonna do? 🤷... There’s just a handful of shares left in our smallest account… $79 bucks… I’ll put in a limit order at $82 and see what happens. You know, price anchoring a little higher so maybe I can get one last ‘win’ to make myself feel better…”
6:45 am – “Screw it. I’m taking the $77 and calling it a day… I sure do hope Datadog and Cloudflare have better reports this afternoon… Hmmm, the market doesn’t open for another hour and 45 minutes… I’d better get another cup of coffee… Hey, did I mention these morning reports are frickin’ brutal?”
The lesson here? Sometimes when the market hands you your ass, it helps to laugh at yourself a little. Lesson learned…and not for the last time, I’m sure.
MNDY – November 10 saw monday.com’s second report as a public company. The day before the release, someone asked what I expected from the quarter. I replied I was looking for continued 90%+ YoY revenue growth, 25%+ QoQ growth in $50K+ customers, and cash flow/loss margins similar to or better than Q2:
As I said, I felt that was the kind of performance needed for MNDY to hold its premium.
So, how’d it go?
Revenue of $83M and 95% YoY growth. ✔️
613 customers >$50K for 30% QoQ growth. ✔️
Operating cash flow margin of 4.6% vs -0.5% in Q2. ✔️
Free cash flow margin of 3.5% vs -2.1%. ✔️
Operating margin of -11.4% vs -14.0%. ✔️
Net margin of -13.7% vs -16.0%. ✔️
The >$50K customer growth is particularly impressive given management’s statement “upmarket growth is one of our top priorities.” Those 613 customers represent 231% YoY (!!!) growth, which believe it or not is an acceleration from last quarter’s 226%. Please note those rates are not flukes inflated by weak or COVID-influenced 2020 comps. They’re the real deal backed by a record 143 net new >$50K customers this quarter, eclipsing Q2’s 135.
Further down the ledger, net retention rate (NRR) for total customers rose to 115%+ from 111% while NRR for those with 10+ users rose to 130%+ from 125%. The improved leverage generated a record gross profit, which more than doubled on both a GAAP (+101% YoY) and non-GAAP (+102%) basis. That in turn meant a record 90.2% (!!!) gross margin, an incredible number for just about any firm.
In conjunction with earnings, monday.com announced the launch of its My Work product. Management calls it “a place for customers and organizations to centralize all items, whether it's deals, campaigns, tasks or anything else, associated with their accounts.” My Work lets users organize customized data across all business units. In that respect it is more than just a project management tool for an individual team or department. Instead, it’s a way to tie communications and workflows together across an entire organization. At its recent customer conference, the company hinted at “big plans for next year” regarding new products and enhancements. My Work looks like a strong opening effort.
Not surprisingly, the strong performance led to a very positive call. I guess it’s hard not to sound confident after such a great quarter. Management guides for $88M in Q4 revenue (+75% YoY) while raising the full year figure to $301M (+87% YoY). A beat similar to this quarter (which doesn’t seem all that unreasonable) would push both figures closer to 90%+. So, to recap…a 90% grower…with 90% gross margins…accelerating customer growth…and accelerating NRR. All while hovering cash flow positive with rapidly narrowing losses? Sign me up for that!
Oh wait, I’m already signed up. In fact, I signed up for a lot more after reviewing this report. Monday.com now sits at a strong #2 in our portfolio.
NET – What can I say? NET gonna NET.
With many shareholders openly wondering if November 4 earnings would be good enough to back the stock’s recent run, Cloudflare obliged with just about the most Cloudflare quarter ever. For the 11th straight time revenue growth landed between 47% and 54%, this time 51%. But what really impressed me were several gems in the secondary metrics:
This quarter’s 79% gross margin was a new high as a public company.
Expenses as a percentage of revenue fell to 78%, the first time below 80% in 16 quarters.
Cloudflare now has 1,260 customers spending >$100K per year, accelerating both annually (+71.2%) and sequentially (+15.8%). Management noted the adds here split 50/50 between new clients onboarding at >$100K and existing customers growing into the category. That suggests both the land and expand parts of the business are in good health.
The company keeps casting its coverage net ever wider (pun intended). It’s now in 250+ cities around the world with 95% of the global population within 50 milliseconds of one of its data centers. That’s an enormous amount of capacity to leverage as the company scales.
The improved execution led to an unexpected $2.2M operating profit and $1.4 in net income, marking Cloudflare’s first profitable quarter ever. This comes a full year earlier than management’s IPO estimate and is a complete reversal from CEO Matthew Prince’s statement last quarter that profitability was likely a long way off. I’m not sure exactly what changed, but I’ll take it.
Ever the metronome, management guides for $185M and 47% growth next quarter. A similar beat would push that growth to…wait for it…53%. Either of those outcomes would be the dozenth consecutive quarter in that plus-or-minus 50% bandwidth. And I’d expect similar supporting metrics. So yeah, NET gonna NET.
Shortly after earnings Cloudflare, Oracle and multiple other firms announced the Bandwidth Alliance to reduce data transfer fees. Cloudflare has been loudly beating the transfer fee drum for quite some time now. Altruistically, it’s a great way to fight for the little guy. Selfishly, it’s a smart way for Cloudflare to leverage its huge data capacity to potentially add new users. Regardless, there appears to be a slew of companies interested in leveling the playing field on transfer fees in hopes of steering corporate budgets toward other products and services. Godspeed, ladies and gentlemen.
And just when you thought Cloudflare might take a breather, it rolled right into Full Stack Week, the latest installment of its Innovation Weeks series. The underlying premise was we tend to think of the internet as a single entity rather than the mix of individual technologies and hardware that make it all work. Full Stack Week detailed all the ways Cloudflare tries to positively impact each link in the chain. Rumor has it CIO (Chief Information Officer) Week is coming next. After a week centered on the stack’s individual components, it makes perfect sense to loop in the people responsible for running and maintaining them. I like the flow here.
Stepping back, I have to give Matthew Prince a ton of credit. There’s a gift to consistently making the complex simple. Given Cloudflare’s habit of releasing intricate features at a blistering pace, I admire his consistency in keeping it all about “security, reliability, and performance.” His call comments make it very easy for non-techies like myself to understand NET’s vision of “building the network that any business can plug into and not have to worry about anything else.” It’s not about reinventing the internet as much as becoming the underlying “fabric” (used multiple times) tying the next version of it together. And for the more technically inclined, Prince smoothly dropped just about every buzzword you can think of – “cloud”, “edge”, “blockchain”, “Web 3.0” – into the conversation. Prince is basically saying Cloudflare can scratch any and every itch no matter where you fall on the technical spectrum. That’s pretty heady stuff in my opinion.
Last month I commented on the balance between numbers and narrative when assessing companies. I think it’s fair to say narrative has driven more of Cloudflare’s 2021 run. Though I tend to prefer reliable execution to the whims of investor sentiment, far be it from me to complain about which component keeps pushing a stock I own higher. I really liked the quarter, especially the unexpected profit. In fact, that development pushed my conviction enough to add a considerable number of shares on the trip back below $200. Yeah, I know that’s still expensive. But the market’s made that the going rate for a company determined to be everything to everyone on the internet. Now all it needs to do is keep executing.
UPST – Forget any other November releases, interviews, or commentary on Upstart you might have seen. The overwhelming piece of news for shareholders this month was November 9 earnings. Last month I boldly wrote this:
Occasionally you find a company where the numbers and narrative feed off each other in a way that almost exponentially drives the stock. It’s like hitting the sweet spot of the S-curve. Zoom had a stretch like this in 2020. So did Livongo. I’d argue Upstart is in one of those windows as we speak. There’s no telling how long it will last, but it’s not unreasonable to think another blowout quarter could produce yet another rise in the stock.
Well, it turns out UPST’s window slammed shut about 5 minutes after the results hit the wire. I was anticipating something like $250M in revenue with 375K loans transacted and a $290M Q4 guide to consider everything intact (and that was considerably lower than many predictions I saw). I was also hoping for a $100M or so full year revenue raise to $850M, which would fall reasonably in line with the $100M and then $150M raise the last two quarters. Alas, we got $228M in revenue, 363K loans, a $265M Q4 guide, and a full year raise to only $810M. That’s 0-for-4 if you're counting.
An “O-fer” (to use a little baseball speak) is a big no-no in high growth investing, and the market usually reacts harshly. It certainly did here. I did as well, selling all my non-taxable shares immediately upon seeing the release between $270 and $267 on the way down (yay me so far). I kept a roughly 1.5% taxable position since I don't want to take the 2020 tax hit on a short-term cost basis of $126. After thinking it through and seeing some other takes on the quarter, I bought a bit back between $237 and $245 then a smidge more at $215 (somewhat less than yay me so far). I plan on keeping this allocation where it is for now. While I can always change my mind, I currently view UPST as more of a good business than one of my truly best ideas.
Unlike Lightspeed’s hindsight macro and competitor clues that trouble might have been brewing, I’m not finding similar for Upstart. Though credit is cyclical by nature – just take a peek at UPST’s 2Q20 if you don’t believe me – most indicators suggest we remain in a positive part of the cycle. Overall lending remains robust, and other loan-based companies like LendingClub and Affirm saw positive post-earnings reactions. The trail of breadcrumbs we did have made it hard to think Upstart wouldn’t at least hold serve this quarter.
Well, it turns out nothing in life is ever guaranteed (who knew?!? 😉). Most of Upstart’s incredible 2021 run has been driven by a huge increase in loan transactions. Given the loose money environment, it seemed reasonable to expect another very strong result. Unfortunately, this quarter’s total fell short of expectations with an even bigger decline in average loan size. Fewer loans at a smaller dollar amount is certainly not a good combo for topline revenue. Not to mention the fact Q3’s lower than expected baseline creates a line of doubt into Q4 and 2022 that wasn’t there before. So, what’s the haircut when a “very strong” expectation is paired with a “moderately solid” result? Well, 30%+ so far according to the market.
This new uncertainty is simply one of the extra risks in a business with no annual recurring revenue (ARR). I was looking for 375K+ loans. Upstart transacted 363K while also having to admit that number might have been adversely affected by a large, coordinated effort to trick its model into approving fraudulent applications. I have no idea what figure the market anticipated, but the post-earnings drop suggests it might have been even more disappointed than I was. Again, that’s something UPST will need to address without the benefit of any ARR.
Think of it this way. The market just told us 363K loans was a disappointing number (I think loan transactions is such a key metric because it ultimately kickstarts UPST’s entire performance). Coming off that result, you know how many loans Upstart had on the books to begin Q4? Zero! Because widget sales always reset at zero. And let’s face it, loans are UPST’s widgets. Since Upstart didn’t sell as many as expected, the market has decided to take a pause until expectations are reset and/or the company reproves itself.
Until this report, a 2021 investment in Upstart had been a hugely profitable ride on a skyrocketing personal loan S-curve. (If you got in early enough, it is likely still handsomely profitable.) The market is telling us it believes Q3 bent that curve into a less appealing shape. Even with all the new loan products management hinted at, I consider it a HUGE gamble to assume auto loans, shorter-term loans, mortgages, or whatever other lending S-curves you can think of will be material before Upstart’s personal loan curve sees either another slowdown or broader macro pressure. Sure, one of these secondary curves could become the lending equivalent of the iPad, in which case there’s still plenty of upside. But what if – in an example closer to home – these secondary products turn into a bunch of Zoom Phones instead? How’s that one working out?
There’s also a small part of me that can’t help but wonder if management attempted to distract us a bit this quarter. In its short history thus far, Upstart’s core messaging has been laser-focused on just two markets: personal loans and auto loans. Yeah, there were hints of others, but it was clear those were the two that mattered. Why devote so much of this call’s opening remarks to hyping new products that aren’t anywhere close to ready yet? And why all at once? Some of these offerings won’t even be off the drawing board until 2023, let alone developed enough to move the needle. If nothing else, plugging a list of far-off hypotheticals feels a little more razzle dazzle than past comments targeted on more immediate opportunities. Maybe it’s coincidence, maybe not (and maybe it’s just my post-loss paranoia peeking through). I only know it is the first time so many vague “could be” items received so much attention.
Please don’t misunderstand. There’s a chance UPST is still a very profitable investment from here. It only needs to meet or beat the market’s now lowered expectations. That’s why I bumped it back up. But the truth is Upstart failed to meet expectations this quarter no matter how hard anyone tries to spin it. What’s the investing takeaway? Well, for one I have a new appreciation for just how difficult it is to gauge businesses with any type of exposure to macro forces or consumer sentiment. No matter how many tea leaves we try to read, these are simply more complicated businesses to follow than pure software firms. Mulling it over I think my lesson is not necessarily a mistake assessing Upstart’s business but more in managing the allocation. I'm beginning to wonder if even the best companies with macro or consumer exposure should be capped at an allocation of say 10% (at least in this investing style). When I think of macro/consumer companies like Peloton, Roku, Lightspeed, Upstart or even the transaction side of Bill.com, they all seem to have awesome stretches until they don't. And "don't" is simply a lot harder to see coming with these types of firms than SaaS companies. I’ll probably ponder this more once my recently licked UPST wounds are more fully healed (hmmm, a year-end reflection perhaps?).
ZS – November’s initial ZScaler news was a deeper security integration with the videoconferencing functions of Microsoft Teams and Zoom. Designed to automatically locate and remedy performance issues, these “new integrations now enable security, networking, and help desk teams to work together to efficiently triage Microsoft Teams and Zoom quality issues, decrease resolution times, and optimize employee productivity.” In an age when video calls are becoming an ever-larger part of daily communication, this should be a win-win deal for everyone involved.
The more relevant update, at least to me, was ZScaler moving earnings up a day from December 1 to November 30. For most people that’s not a big deal. In my selfish little world, however, that meant ZS’s earnings write up moved from December’s recap to this one. Let’s just say that wasn’t my preference in an already long-winded month. My initial, real-time reaction was “$#%&! If ZScaler’s going to make me do this extra work, it better frickin’ come through with a good report!”
My revisionist history reaction is “Ehh. No big deal. I knew CEO Jay Chaudhry and gang had it all along.”
In the end ZScaler turned in one heck of a quarter. The $230.5M in revenue was its biggest beat in more than two years with the resulting +62% growth the first finish above 60% in ten quarters. Likewise, 17% QoQ growth was a huge jump from 12% last quarter and 13% a year ago. Those are remarkable figures considering quarterly revenue has almost tripled since the company last challenged those rates. Given this quarter’s excellent billings (+71 YoY) and RPO results ($1.7B and +98% YoY!!!), there appears to be plenty of pipeline for continued growth.
ZScaler now totals 5,600+ customers (+23% YoY) including 500+ of the Global 2000 and 170+ of the Fortune 500. A record 1,616 (+53% YoY) now spend >$100K annually while 224 (+87% YoY!!!) have crossed the $1M/year mark. The net retention rate exceeded the company’s 125%+ target with the CFO adding it was “higher than the 128% we reported last quarter.” With expense margins hitting their usual range, the top line surprise produced a record $93.7M in operating and $83.4M in free cash flow. The $24M in operating profit was a record as well. All in all, I’m not sure what more you could ask for.
Unsurprisingly, it was an enthusiastic conference call. Chaudhry noted growth is strong “across all verticals, customer segments, and geographies.” Asia more than doubled year-over-year. The company continues to innovate with over 150 features added to its remote work protection suite in the last year. Its 150+ data centers now process more than 200 billion transactions per day, a total which has doubled over the last 18 months. The beauty of ZScaler’s model is each one of those transactions is an opportunity to improve its security capabilities. That not only strengthens the business but could lead to flywheel and network effects benefiting customers as well. No matter how you look at it, ZS appears to be in a great spot.
Best of all, the unexpected Q1 beat was accompanied by a strong Q2 guide and full year raise. That implies the recent outperformance isn’t just a one-time thing but rather an uptick in overall business. That’s exactly what shareholders have been hoping for from all these cybersecurity tailwinds. As Chaudhry and the CFO both noted, ZS is “the only security vendor with the two highest FedRAMP certifications” for selling to the US federal government. That’s potentially a huge advantage heading into what should be a big year for public sector cybersecurity spending. As it currently stands, management calls for $242M in Q2 revenue and 54% growth. A typical beat would put that number closer to 63%. Combined with the billings and RPO strength, I think there’s a reasonable chance ZScaler holds 60%+ a few quarters at least. I’m excited to see if it can follow through.
All in all, I loved the quarter and promptly added roughly 1.5% more after hours. The allocation above includes the extra shares, but the return figures are using the pre-report close. That means a slightly larger allocation tomorrow if the after hours gain holds. Regardless, I’m happy to bump this one up. Given how the rest of the month played out I appreciate ZScaler throwing me a pre-December bone.
My current watch list…
…in rough order is Snowflake (SNOW), ZoomInfo (ZI), Asana (ASAN), and Global-E (GLBE). I considered rebuying SNOW on its recent drop but decided to wait instead being this close to December 1 earnings. A strong report would likely be worth restarting a position.
And there you have it.
November was not only a tough earnings season but a rough stretch in general for growth stocks. Subsequently, an encouraging start dissolved into my first market-trailing month since March. Even after the LSPD disappointment, post-earnings gains from DDOG and NET pushed me to an all-time high of 66.6% YTD at the November 9 close. That dopamine hit lasted all of about 15 minutes until the UPST and AMPL reports hit the wire. That jump-started my busiest afterhours session ever. When the dust settled it looked something like this:
By market close the next day, our whole portfolio was down 9.1% from that high. While I’ve experienced bigger single-day percentage drops, I’m pretty sure this was my largest one-day dollar loss ever. If not, it was darn close. But it’s important to remember that’s one of the perks of a portfolio growing steadily larger over time. And just in case I hadn’t kept that in mind, the market gave me a gentle -6.5% reminder November 22. (I can assure Mr. Market I was paying attention, but thanks anyway. 🙄). I guess the perk on the second dip was an opportunity to redeploy a large part of that LSPD/UPST cash burning a hole in my pocket.
In all seriousness, there’s a bigger point to be made here. We’d love for every company we own to nail every earnings report. Unfortunately, it doesn’t work that way. Luckily, we only need to be right more often than we’re wrong for the winners to make up for the losers and then some (like DDOG and NET more than made up for LSPD).
In what has become a recurring theme the last few months, I continue to wrestle with an unusually large cash position. Each time I’m close to getting it all back in, some company or other spits the bit and coughs up more. That 33.6% cash total on November 10 was an all-time high for sure. While I’m not crazy about it, at least I’m not lowering my standards or excusing underperformance just because I prefer less cash. As we exit November, I consider DDOG and MNDY the only holdings which check most if not all my personal boxes. Everything else has some shortcoming or uncertainty I’ll just have to live with while trying to figure it all out. The plan for now is to…uhhh…stick to the plan. We’ll just have to see how it goes.
Thanks for reading, and I hope everyone has a great December. Oh, and Happy Holidays to all no matter which one you might or might not celebrate.
Thank you! Your month end reports are very helpful. I read this this morning….and then boom, not sure what to make of today’s drop. Was going to buy some more Snow, it dropped so low but waited for report then boom AH it’s going way up…sort of like ZS that fell like a rock today. And CRWD: AH staying still, even though they seemingly had a strong report. Very confusing- I can’t decide whether to add to high convictions, or wait to see if things keep dropping. I know you can’t time the market but it was such a big drop on so many I’ve got, many of yours and others like HD, it’s a challenge. I can DCA for sure and am going to think on that. Hope it’s a good evening for you. Thanks so much for sharing.