Gorillas and Google Sheets
Thoughts on 10-min Grocery Delivery and Google Sheets Text Functions
Welcome to the 2 new Ops Hackers that have joined us since last week!
Before we continue on on with Google Sheets functions…
I wanted to pass along what I read this week that was interesting from an ops perspective: “Take a look inside a dark store” by Sifted
As you’ve probably seen in the news, super quick (i.e. 10- to 15-minute) grocery delivery companies like Getir, Gorillas, and JOKR have been raising huge funding rounds recently to deliver grocery and convenience items quickly to consumers. The COVID pandemic created the perfect environment for these companies to grow rapidly: 1) increased consumer demand for delivery amidst social distancing measures 2) a “flatter investment world” creating geo-agnostic FOMO amongst investors, and 3) increased appetite for private market investment to chase higher (and riskier) returns.
The article goes into detail on the picker and courier operations at Getir in the UK and shares some data on what the unit economics might be like. Based on my prior experiences at Uber and chasing profitability, I’ve always wondered about how these new delivery companies could reach that milestone, especially in markets with higher hourly wages. Remember, these companies may appear similar to Instacart or even food delivery startups like Uber Eats or DoorDash, but their business model is quite different:
They offer quicker deliveries (10-15 minutes vs. 30-40 minutes), which might not seem like much, but has significant operational implications (see #4 - they rely on employees for deliveries and not gig economy workers).
They sell groceries and other CPG items, which have a much lower margin than delivery food (similar to Instacart in this regard, but these companies have a lower SKU count at 1.5-2K vs. 15K-30K at traditional grocery stores).
They are not a 2-sided marketplace (yet); they own the dark stores that supply the goods sold on the platform. So they own/rent the space and likely carry inventory risk.
They employ their couriers, and therefore have more control over their courier operations.
All of these factors point to profitability possibly being a bigger challenge for these companies. Given this, I was surprised to learn that there doesn’t seem to be a ton of operational efficiencies in their processes. Especially on the picker operations front, although it makes sense:
“The current automation solutions are built for very large fulfilment centres,” says [Turancan Salur, son of CEO Nazim Salur and UK General Manager]. “When there are solutions that come onto the market that work for smaller spaces, we want to be the first ones to try them out.”
For these companies to become profitable and the business model proven to be sustainable, a combination of the following will need to happen:
Reach critical mass in consumer demand, which locks in the flywheel of 1) a high picker and courier utilization rate, 2) route density (i.e. less distance to travel per delivery dropoff), and 3) a positive LTV:CAC (i.e. longer retention and more repeat purchases from customers they paid to acquire)
Increasing take-rate, either from suppliers (i.e. selling in-app ad space to CPG companies) and/or from consumers by increasing margin / delivery fee
Automation and increased sophistication in picker and courier operations. While replacing couriers and pickers with autonomous vehicles and warehouse robots won’t happen any time soon, these quick grocery delivery companies should introduce sophistication to their product & operations (if they haven’t already) like… 1) exerting more control over demand-supply balance (e.g. dynamic delivery zones, surge pricing), 2) testing whether 10 minutes is indeed the sweet spot (see below tweet on how DoorDash figured this out), 3) testing whether 1,500 SKUs is the right number for selection, etc.
#3 takes time to experiment and figure out, and #2 can only happen after #1. This is why we’re seeing a fundraising arms race play out amongst these quick grocery delivery companies. I believe these companies will continue to be aggressive in marketing / growth and we’ll see more consolidation in the space in the coming months. Once consolidation happens and we graduate from this phase of land grab is when we’ll start seeing more interesting innovations on the operational side (#3).
Do you agree / disagree? Do you work at one of these companies and have insights to share? Let me know by commenting below!
OK, we’re back to talking Google Sheets, one of our favourite tools! As a reminder, this is part of a multi-post series on Google Sheets:
In Part 1, we covered Best Practices when using Google Sheets.
In Part 2, we covered Logical Functions.
In Part 3 (this email), we’ll cover text functions.
In Part 4, we will hopefully wrap up Google Sheets by covering the rest of the functions, including lookup / data, date, and miscellaneous functions.
You can find this week’s spreadsheet of examples here:
Follow along this week’s Google Sheets function examples in this sheet.
To illustrate how the functions work in real life, we’ll be using Kaggle’s dataset on Goodreads data, found here. I’ve copied the first 2,000 rows into the example sheet, in the “raw_data” tab.
Text Functions
A bit self-explanatory, but text functions manipulate text strings in cells.
1. SPLIT
You’ve probably used the CONCATENATE function before, where you can combine text strings in different cells into one text string. The SPLIT function is the opposite of that - you can split one text string into multiple ones by feeding it the original text and a delimiter. A delimiter is a character or a set of characters that demarcate where the text should be split.
In this example, you can see that the “authors” column lists multiple authors for some books.
Because this data set follows a clean convention of using a slash (/) to note mark multiple authors, we can use the split function to show individual authors in their own columns, like this:
2. REGEX
I briefly mentioned regular expressions (or regex) in my post on Integromat, and promised that we’d do a deeper dive on it one day. Today’s not that day unfortunately, but I did want to showcase what you could theoretically do if you learned how to use regex.
As a reminder, a regex is a sequence of characters that specifies a search pattern1. It helps you find, extract, or replace a string of characters that you don’t know the specific value of, but you know what it would look like (a good example being an email address, i.e. some combination of letters and numbers, then an at sign, then more letters and numbers, then a period, then some letters).
Google Sheets has 3 different regex-based functions: REGEXMATCH (checks whether a string matches a pattern you provide), REGEXEXTRACT (parses out just the part of a string that matches a pattern), and REGEXREPLACE (replaces just the part of a string that matches a pattern).
In the example below of book titles, you can see that any book that’s a part of a series (like Harry Potter) follows a naming convention like this ([series name]) #[number or number-number])
, where the book’s title is followed by an opening parenthesis, the series’ name, space, a # sign, a number (or two numbers with a dash in between in the case of collections) and a closing parenthesis.
Now that we know the pattern of what to expect, we can extract this information from the book title to show it (where applicable, for books in a series) in separate columns.
If we type in the following formula:
=iferror(regexextract(C5,".* \((.*) #([0-9]+-*[0-9]*)"),"")
We get two columns that breaks out the series name in column D (Harry Potter) as well as the book number in the series (6)! In the formula, we’re telling Google Sheets if you can find this pattern ([series name]) #[number or number-number])
, then extract the series name and the number into separate columns.
Regex is like magic when you have to work a lot with scraping or just text data in general. The regex in this example seems pretty gnarly but once you understand the concept and hacks around it, it becomes easier to digest. We will definitely cover regex in another post soon, and I’ll walk you through the free online resources I used to learn regex.
3. LEFT + FIND: Left + Find
This one’s a short one that lets you extract just the first name in a column with full names. You’ll be using a combination of LEFT and FIND functions to accomplish this.
Also, as a bonus - you get to learn from one of my favourite influencers, Miss Excel! :)
LEFT and FIND example (works in Google Sheets too!)
That’s it for this week. Let me know what you thought about the post by commenting below or emailing me at hi@joerhew.com!
…And a favour to ask of you:
🙏 If you’re 1) enjoying this newsletter and 2) know of someone who might too, please share Ops Hacks with them! 🙏
Another great one.
I especially enjoyed your opinion on the 10min-15min e-grocer dark store business.
It will be interesting to see over time and as the business develops where the delivery time sweet spot ends up.