I want to talk about an aspect of RavenDB that is usually ignored. Its pricing structure. The model we use for pricing RavenDB is pretty simple, we charge on a per core basis, with two tiers depending on what features you want exactly. The details and the actual numbers can be found here. We recently had a potential customer contact us about doing a new project with RavenDB. They had a bunch of questions to us about technical details that pertain to their usage scenario. They also asked a lot of questions about licensing. That is pretty normal and something that we field on a daily basis, nothing to write a blog post about. So why am I writing this?
For licensing, we pointed to the buy page and that was it. We sometimes need to clarify what we mean exactly by “core” and occasionally the customer will ask us about more specialized scenarios (such as massive deployments, running on multiple purpose hardware, etc). The customer in question was quite surprised by the interaction. The contact person for us was one of the sales people, and they got all the information in the first couple of emails from us (we needed some clarification about what exactly their scenario was).
It turned out that this customer was considering using MongoDB for their solution, but they have had a very different interaction with them. I was interested enough in this to ask them for a timeline of the events.
It took three and a half months from initial contact until the customer actually had a number that they could work with.
|1||Login to MongoDB Atlas, use the chat feature to ask for pricing for running a MongoDB cluster in an on-premise configuration||Got an email address to send in MongoDB to discuss this issue|
|1||Email to Sales Development Representative to explain about the project and the required needs. Ask for pricing information.||The representative suggests to keep using Atlas on the cloud, propose a phone call.|
|3||30 minutes call with Sales Development Representative. Representative is pushing hard to remain on Atlas in cloud instead of on-premise solution.||After insisting that only on-premise solution is viable for project, representative asks to get current scenarios and projected growth, MongoDB will generate a quote based on those numbers.|
|6||After researching various growth scenarios, sending an email with the details to the representative.|
|37||Enough time has passed with no reply from MongoDB. Asking for status of our inquiry and ETA for the quote.|
|65||After multiple emails, managed to setup another call with the representative (same one as before). Another 30 minutes call.||The representative cannot locate previous detailed scenario, pushed to using Atlas cloud option again. The Sales Development Representative pulls a Corporate Account Executive to email conversation. A new meeting is scheduled.|
|72||Meeting with Corporate Account Executive, explain the scenario again (3rd time).||Being pressured to use the cloud option on Atlas. Setting up a call with MongoDB's Solution Architect.|
|80||Before meeting with Solution Architect, another meeting by request of Corporate Account Executive.||Tried to convince to use Atlas again, need to explain why this needs to be an on-premise solution.|
|87||Meeting with Solution Architect, presenting the proposed solution (again).||Had to explain (yes, again) why this is an on-premise solution and cannot use Atlas. Solution Architect sends a script to run to verify various numbers on test project MongoDB instance.|
|94||Seven days since all requested details were sent, requested quote again, asked if something is still missing and whether can finally get the quote.|
|101||Got the quote!||Fairly hard to figure out from the quote what exactly the final number would be, asking a question.|
|102||Got an answer explaining how to interpret the numbers that were sent to us.|
To repeat that again. From having a scenario to having a quote (or even just a guesstimate pricing) took over 100 days! It also took five different meetings with various MongoDB representatives (and having to keep explaining the same thing many times over) to get a number.
During that timeframe, the customer is not sure yet whether the technology stack that they are considering is going to be viable for their scenario. During that time frame, they can’t really proceed (since the cost may be prohibitive for their scenario) and are stuck in a place of uncertainty and doubt about their choices.
For reference, the time frame from a customer asking about RavenDB for the first time and when they have at least a fairly good idea about what kind of expense we are talking about is measured in hours. Admittedly, sometimes it would be 96 hours (because of weekends, usually), but the idea that it can take so long to actually get a dollar value for a customer is absolutely insane.
Quite aside from any technical differences between the products, the fact that you have all the information upfront with RavenDB turns out to be a major advantage. For that matter, for most scenarios, customers don’t have to talk to us, they can do everything on their own.
The best customer service, in my opinion, is to not have to go through that. For the majority of the cases, you can do everything on your own. Some customers would need more details and reach out, in which case the only sensible thing is to actually make it easy for them.
We have had cases where we closed the loop (got the details from the customer, sent a quote and the quote was accepted) before competitors even respond to the first email. This isn’t as technically exciting as a new algorithm or a major performance improvement, but it has a serious and real impact on the acceptance of the product.
Oh, and as a final factor, it turns out that we are the more cost efficient option, by a lot.