2017 was the Year of Subscriptions, a Rough Draft

Have you noticed how many companies have switched to the subscription model?

  • Ulysses, the software I use to type this right now;
  • Adobe, although they have been running under subscription model for quite a time;
  • Day One, that purposely always restricted the number of private journals (now it is clear why);
  • Amazon also, with their Prime business model and Kindle Unlimited;
  • Realmac and [Sketch], two companies that used to publish software for Mac are now running successful ventures on the subscription boat.

Yes, my friends, software as a service has hit the mainstream.

What was a utopia years ago, today is commonplace. But it is not new: the internet has widely increased its adoption. Telecoms have always used this model. What is your monthly phone bill, but a payment to a subscription plan of your choice?

The model has become very popular due to the potential to generate a steady revenue stream for the company, even better when the customer buys a whole year worth of services in advance.

Back in 2001, when I was still developing websites (in PHP!), I had a client that was trying to engage her customers in the subscription mindset. There were some examples of companies running on subscriptions and offering excellent discounts for yearly payments. Based on that information, I suggested her to go the same way.

She didn’t like the idea, as she was very attached to the costs of her venture: she wondered: why would I decrease my revenue over a year if I can get the monthly payment?

I didn’t know how to answer this at that time, but today I am aware: it's how your customers perceive value in your product.

The Yearly Sign up

When you subscribe to Software as a Service, it will be good for both parts.

First of all, it is mandatory that the service provider takes care of the relationship with its customers, as users can suspend their monthly payment at any time.

Second of all, companies, on the other hand, earn the means to fund themselves long enough and invest significant time in their craft, delivering better products updates more often, one ability crucial to success in the SaaS world. It becomes a virtuous cycle.

However, how many subscriptions have you paid lately by a year that you found out, about days or weeks later, you wouldn’t use, or you didn’t like, or it was worse than you thought it was?

That’s why there are discounts for yearly subscriptions: if your average customer drops out before one year of usage, you profit of asking for one year worth of payments in advance rather than reminding s/he to pay monthly. Besides, asking for money once it’s better than asking twelve times, even better when it has a discounted offer.

It passed through my mind again last week as I was experimenting some new guided meditation apps. I was reluctant on signing-up for annually until I was sure I would use them. I made the mistake of buying one service for one year and never using it, nor even once. I pay attention to all my subscriptions from that day on.

As a customer, one tactic that will vaccinate you from purchasing something you don’t like, that I use, is just asking yourself:

  1. Have I the time to use this service every day, or at least, every week?
  2. If it is a content provider service, is the premium content right for you? Can you explain to a friend and get him excited about the service too?
  3. Can I have a free trial period and cancel at anytime before making the first purchase?

As a professional, I get very excited by this business model. It brings stability to self-funded companies and breaks the idea that everything on the internet must be free-to-use, a mindset I think it’s prejudicial to the industry and the clients. See, when you don’t pay for the product, you are the product.

Tags: business model, revenue, saas, subscription

How to write a decay function in Python

Splitting atoms in nuclear reaction result in decay

At my exercise of reinforcement learning, I needed to write a decay function for Ɛ-greedy strategy. The mathematical function should look something like:

f(x) =  decay^x

But in the algorithm, I don't have access to the iterator value (x in the above formula), only the current epsilon (Ɛ) and the decay factor I defined.

It turns out it is not necessary to use x to obtain the same value. If x is the current step in the iteration, all that is needed to do is:

Ɛ = Ɛ * decay

It would translate to

Ɛ = Ɛ * decay ^ X

Where X would be the total amount of steps in the iteration. In python, the code would look like:

self.epsilon = self.epsilon * self.decay

Although simple, it took me some time to visualize both functions are equal but written in different forms.

Tags: decay, epsilon-greedy, programming, python, reinforcement learning