Coffee Shop at the Wide River

A curious story on applying online product marketing techniques to save an offline retail venue

TL;DR: I’ve spent three months volunteering as a part-time marketer for a small coffee shop and discovered that my online product marketing experience could be used to help this completely offline business build strong relationships with guests while boosting acquisition, retention, and sales. Here I tell my story with the hope that you reuse my experience evolving your online or offline venture.

A quiet hour at the coffee shop

In 2016, SKB Kontur’s product teams moved to the brand new headquarters at the Wide River, a lakeside location at the outskirts of Yekaterinburg, Russia. The company went to great lengths to make the office as comfortable as possible. As for dining, Google’s famous rule of thumb stating that “no one should be more than 200 feet away from food” is pretty much complied with. One thousand employees routinely use 8 kitchens with snacks, a large cafeteria with a variety of meals, a bar with beverages suitable enough to seek the Ballmer Peak, and a small coffee shop which is going to be the primary subject of this story.

Shortly after the opening, Sergey, my co-worker and the entrepreneur running the coffee shop, was busy setting up everything from supply chain management to employee training to quality control. Sergey was also closely looking at the sales and the cash flow, but shortly he had to admit that he had no idea if the coffee shop was doing good or bad.

Does it acquire guests well enough? Does it retain them? What is the potential for sales growth and how to track customer satisfaction? Those questions needed answers, so Sergey asked me to come on board.

Something to worry about

The coffee shop had already been running for a month, so there were enough transactions to be analyzed. I’ve retrieved the data from the point of sale software, put them to a database, ran a few of queries to calculate the numbers for guests, sales, average revenue per guest and per sale, retention, churn, and many other metrics. Then I’ve started plotting them, and suddenly something drew my attention.

My Swiss Army knife: Node.js for ETL, RethinkDB for analytics, Google Sheets for visualization

Oh, just look at these charts. The blue line shows that roughly the same number of guests visited the coffee shop every week: 157, 158 and 154 on week 36, 37 and 38, respectively. Looks good and quite steady, right?

Can you spot the problem on the left? Then compare acquisition and churn rates on the right

Nope, because these were not the same guests! The coffee shop had “penetrated” a total number of 213 guests on week 36 and 37, but 95 of them never came back. Look at those green and orange lines for penetration and churn which increase in parallel on the left chart.

So it was a lucky coincidence that the coffee shop was sustainable in terms of guests and sales (and thus revenue) at that moment of time. There were enough new guests who had been discovering this coffee shop to completely obscure the sad truth that many guests never came back. And it could be a disaster if that stream was going to dry up soon.

Has this ever happened to your online product? You may have enough organic traffic to never discover that you rapidly lose every acquired user because of the massive churn rate. And it could be even worse if you used paid channels.

Two goals that matter

An obvious yet essential goal was to decrease the churn rate by motivating guests to come back to the coffee shop.

A less straightforward goal was to maintain the acquisition rate by finding means to purposefully engage new guests.

These goals definitely look very discreet, and there’s a good reason for that. Just think of the market size. The only people who can possibly come to the coffee shop are the ones working at the Wide River headquarters (slightly less than a thousand) and a fraction of workers from other offices who have reasons to visit the Wide River (maybe a few hundred). It’s simply not possible to substantially increase the acquisition rate because soon there would be no one to acquire. That’s how this very coffee shop differs from your favorite retail catering venue which has relatively infinite market size.

As for online products, that’s rarely the case in B2C. But if you occupy a narrow niche or target a certain B2B market, consider estimating the market size carefully. It may be far less than you’d need to sustain.

Every coffee shop should have cookies

To achieve both goals it was necessary to create new touchpoints with guests across several marketing channels, both owned and earned.

In fact, there already was a good offline touchpoint due to the coffee shop’s location at the second floor of the office, in the passageway to the parking lot and the smoking room. The office workers who get to work by car or use the smoking room are naturally exposed to the coffee shop because of its location on their way. In contrast, the workers who use public transport, shuttle service or commute by bike and don’t use the smoking room have far less chances to come across the coffee shop. Here’s chart to prove it.

The ~6,5 % difference in car ownership between the coffee shop guests and all office workers (left). An employee card used in the office (right)

You should already be curious how I knew if any coffee shop guest had a car, but that was quite simple. First, there’re several payment methods available at the coffee shop: cash, banking cards, and employee cards. The latter is the most popular (used during ~85 % of transactions) because an employee carries the card as a pass throughout the office as well as because SKB Kontur co-finances the catering spendings as a part of an employee’s benefits package. Second, every employee card has a unique id which is recorded by the point-of-sale software during a transaction. Third, Kontur.Staff (SKB Kontur’s enterprise social network) has a very convenient API which enabled me to match the coffee shop transactions against employee profiles.

Many retail stores struggle hard to collect this kind of data through their loyalty programs. Luckily I was able to identify and distinguish guests because they visited the coffee shop with cookies.

It’s always good to think of user analytics for your online product from the very beginning. Collect data and attribute it to users even if you don’t know how to or don’t want to analyze it at the moment. You surely will.

Guest acquisition

Acquiring new guests was as simple as finding office workers who have never been to the coffee shop and revealing how great it is.

Of course, there’s also the word of mouth. It surely affects the guest acquisition, but little you can do to measure its impact on this very market or influence the referral channel without being annoying to guests. Therefore the coffee shop tried hard to be as great as possible so everyone could be confident spreading the word.

Birthday cake is not a lie

Shortly after I started looking for ways to attract new guests the cakes were ready to appear in the coffee shop’s menu. So I’ve turned them into an ultimate tool of guest acquisition.

One of my co-workers gets informed there’s a cake waiting for him

To everyone’s surprise, the coffee shop announced that every resident of the Wide River headquarters gets a free cake of choice on their birthday. The news has got very positive reception—because everyone loves birthday cakes, right? To make them inevitable, I posted personal congratulations in the birthday notifications’ comments in Kontur.Staff reminding about the cakes.

This approach was truly great in many ways:

  • it was focused on creating value for guests ;
  • it targeted every single office worker (because everyone has a birthday);
  • it informed not only a certain worker about the coffee shop but also broadcasted the message about the coffee shop giving the cakes away to everyone who saw a birthday notification in Kontur.Staff.

The impact. Every month about 75 office residents were entitled to cakes and 50 % of them were actually collected. Half of the residents were either acquired as new guests or activated which means they started visiting the coffee shop more often. It was also plausible that the additional expenses for cakes were covered by the increased sales.

Always think of creating value for your customers in the first place. If any product feature or marketing tool has no value for your customers, it’s not worth implementing.

Coffee at meetups

Nearly every week a “software engineering club” meetup or other major event is hosted in the Wide River office. It usually attracts the audience of 50+ attendees which may still be unfamiliar with the coffee shop.

It’s easy to erase the gap between the audience and the coffee shop by bringing pre-ordered drinks to an event a few minutes before it starts. The organizers liked the idea very much because of the extra comfort the drinks would have added to the events.

Every meetup usually had an event page in Kontur.Staff where an organizer posted the agenda and reminded the audience a few hours before the start time. I’ve added a post asking the audience to leave comments in case anyone would like to pre-order a drink from the coffee shop which would be brought straight to the venue.

The impact. At every event about 10–15 % of attendees pre-ordered drinks, and 20 % of them were acquired as new guests. Certainly more attendees were exposed to the message and eventually came to the coffee shop, but it’s hard to track them to tell for sure.

Guest retention

Retaining guests is as simple as giving them more reasons to come to the coffee shop once again. Some reasons are apparent (e.g., a habit to have a cappuccino with a croissant for breakfast) or invented by guests (e.g., a desire to hold one-on-one meetings in an informal setting). Other reasons could be invented with respect to guests’ interests.

Taking advantage of trending topics

The idea was to identify the topics which might be interesting to guests at the moment and bring related books or other printed media to the coffee shop so everyone could have fun and rewarding time. I think there’re two ways to find such topics: either to be super-empathetic to the audience or to be part of that audience.

I’ve employed these topics:

  • the release of Maxim Ilyakhov’s book on writing simple, clear and persuasive text which got obsessed virtually every marketer and UX designer as well as some other office workers;
  • the publication of the controversial Russian localization of the script for Harry Potter and the Cursed Child, the latest story by J. K. Rowling which turned out to have a sizeable amount of fans (due to the proper mean age of office workers, I guess);
  • the premiere of Rogue One, the last to date movie of the Star Wars franchise which simply must have a fair share of followers throughout any community of software developers.
Ilyakhov’s book being read by Katya, a distinguished writer of simple, clear and persuasive text (left)

The impact. A pack of LEGO Star Wars stickers was literally cut to pieces providing valuable decoration material for guests’ laptops. Ilyakhov’s book and Rowling’s script were zealously read during daytime and asked to be taken home overnight and on weekends. Eventually, Ilyakhov’s book even got stolen from the coffee shop, and there hardly can be a better indicator of this effort matching guests’ interests.

Holiday celebration

Popular holidays provide an unobtrusive way to create additional reasons for guests to come back for a holiday contest or celebration party.

On Halloween, the coffee shop gave away a pumpkin- or ghost-shaped cookie to each guest who showed up wearing a thematic costume or anything that had allusions to one. Getting a cookie was easy and fun even for someone completely unprepared.

Halloween cookies (left). Pumpkins yet to be carved (center). Contest winners and their masterpieces including the famous cat-pumpkin (right)

There also was a way to invest more time to get more fun and a substantial reward. The coffee shop held a pumpkin carving contest with the following rules: any person or group could pick up a pumpkin in the morning, carve it nicely during the day and bring it back in the evening to find which one was the most creative and exemplary. Obviously, the cat-pumpkin won the vote and all contestants were awarded a tea party with a tasty pumpkin cake.

The impact. A few dozen cookies were given away to dressed up guests. Lots were sold one by one and in batches as the word spread and guests found how convenient the cookies were for complimenting the colleagues.

Content marketing & SMM

The enterprise social network is widely used throughout the company, so it was an obvious decision to use Kontur.Staff to get in touch with guests which have been to the coffee shop at least once. And you’re already familiar with a few ways it was used for.

300 % growth of the community: ~100 to 400+ members within three months

Sergey had already created the “community” for the coffee shop in Kontur.Staff which works pretty much like any Facebook community: you invite users to join and publish posts which appear in their feeds. I’ve invited all known guests at once (quite easy to spot that day on the graph) and set up a process to do it on weekly basis.

I guess it worked almost like magic: one day you occasionally come to the coffee shop, sip your caramel latte and a few days later get an email that goes like this:

Dear friend, thanks for coming to the coffee shop last week. We kindly ask you to join the community in Kontur.Staff. There we share our news and tell everything about our drinks — not to mention the interviews with baristas!

The conversion rate was above 80 %, that’s why the community gained 300+ members within three months.

Oh, what about the interviews with baristas? In the beginning, the content strategy was focused on making guests familiar with the menu so no one is hesitant to ask for a mochaccino or a flat white.

Community front page (center). Two posts featuring non-coffee drinks and well-known guests (left and right)

Twice a week they got posts explaining everything about the coffee drinks: their names, recipes, stories and countries of origin, etc. I don’t think everyone has got a copy of Flat White Economy after reading a post on flat whites, but I know for sure that there was an increment to flat white sales indicating the growth of awareness and interest.

Later other topics were covered:

  • announcements of all contests, holiday celebrations, and activities in the coffee shop (some of them mentioned above);
  • occasional updates when the coffee shop could be helpful to all office workers (like being open and ready to serve food and drinks when there was a major event in the office on weekends);
  • and finally, three interviews with baristas which were hugely successful.

The impact. Almost unexpectedly, the interviews collected lots of comments and likes, presumably because people liked to know more about people they’ve been socializing with at the coffee shop. Another cause for such reception was that Kontur.Staff users were not exposed to interviews at all. This type of content was unconventional for Kontur.Staff, that’s why guests perceived the interviews as very novel and rewarding.

Communicate to your customers via the channels they are familiar with. Experiment with unconventional types and formats of content to get more attention and better involvement.

Effortless impact tracking

It was crucial to track the impact of the activities described above, but the pipeline I’ve initially set up to process sales data and calculate metrics was unusable in the long run. Despite various improvements, it required too much manual labor to update the metrics and thus jeopardized the whole idea of impact tracking. I had a hard time fighting against the temptation to skip updating the metrics to save a bit of precious time.

The dashboard

Therefore the pipeline evolved. Sergey was deliberate enough to pick a cloud-based point of sale software in the first place, so I gave up downloading Excel workbooks in favor of getting data points through its API. Then I replaced numerous Google Sheets charts with custom visualizations of carefully selected metrics built upon D3.js. Finally, I was able to monitor the metrics effortlessly and in real time.

Watch the dashboard live at

Monitoring the right thing

While building the dashboard an important decision was made to calculate and visualize all metrics in week-long periods. It was a natural choice due to the weekly pace of office work, but it shaped the metrics greatly. Instead of daily average users (DAU) and monthly revenue per paying user (monthly ARPPU) typically used in online products, the dashboard got more relevant metrics like weekly average guests and weekly average revenue per guest.

Here’s the rationale for metrics selection:

  • weekly guests and weekly sales are the most important vanity metrics (they should grow or it was all for nothing);
  • weekly average revenue per sale and weekly average revenue per guest are the most important revenue metrics expressed on a per-unit basis;
  • weekly guest acquisition and total office workers penetration show the progress towards the goal to maintain the acquisition rate;
  • weekly guest retention shows the progress towards the goal to decrease the churn rate.

These metrics are conveniently coupled, so you’re able to see if the changes to acquisition or retention are to blame for sales growth. Or estimate average sales per guest per week simply by looking at the dashboard.

Choose metrics carefully. They should make sense for your product and lead to insightful conclusions. Get them as fast as you can, and never go in blind. Find ways to track the impact effortlessly and in real time.


Let’s sum it up. I started executing the activities described above when the coffee shop has already been operating for a month. Here’s what changed after the fourth month:

  • the coffee shop has penetrated 46 % of office workers (29 % after the first month of operation) acquiring 150+ new guests;
  • churn rate dropped from 60 % to 40 %;
  • weekly average guests increased by 10–15 % while weekly average revenue per guest and weekly average revenue per sale increased by 10 %, hence the revenue increased by 20–25 %;
  • the coffee shop has built warm and friendly relationships with guests.

While these changes sound great, I have to mention that not all of them were in direct connection with marketing activities. For instance, the increase in average revenue per sale would have been indistinguishable without the cakes making it to the menu. Or building the relationships with guests would have been impossible without Sergey’s passion for making the best coffee shop as well as baristas’ skills and friendliness.

The impact on me. I was thrilled to see that my skills in online product marketing could be nicely applied to the coffee shop. It’s not really a big revelation since the marketing is all about the value for customers but surely a good thing to reiterate.

The impact on you. I hope that my story will inspire you to further evolve your online product or offline venture and you’ll be able to apply my experience to create more value for your customers.

Thanks for reading! Did you like the story? Click the heart below, then follow me on Medium and Twitter if you want more stuff like this.

Developer relations lead at SKB Kontur. Cinephile, keen athlete.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store