What makes a good subscription billing system?
Tags: aws, sendwithses, subscriptionbilling, awspinpointalternative
Published: 2019-12-09 11:21:10

# What makes a good billing system?
A few months back i was asked to collaborate on a payments solution for **[Send With SES](https://www.sendwithses.com)** - a wrapper service to send Emails, SMS, and Push Notifications from your own [AWS](https://aws.amazon.com/) Account. The mandate was to make the subscription billing process very smooth and 100% transparent to end users.

## We studied the current trend. The general process for SaaS companies is to have ...
 - [exotically](https://freshdesk.com/pricing) named subscription plans.
 - mostly 3-4 plan varieties compared in a columnar format - but some [very complex](https://www.intercom.com/pricing).
 - one of the plan (definitely not the cheapest one) is given a special label, like “[Popular](https://sendgrid.com/pricing/)”.
 - an 'Enterprise Plan' that doesn't have a price. Just a 'Contact Us'.
 - roundabout cancellations process.
 - delete data on subscription cancellations.
 - This is followed by some FAQs where one of the question is “Can i cancel my subscription?”, to which the answer is, “Of course you can anytime.”

Nothing wrong about these patterns. To each his own. Somebody started this and it became an acceptable trend. Our objective was to make things more simpler.

## So our question was, "How can we simplify things and be better?"

A customer who wishes to use a subscription product or service faces multiple decision points. We narrowed these down to the following …
1. Selecting a subscription plan.
2. Upgrading/downgrading plans.
3. Adding/managing credit cards.
4. Payment history.
5. Data retention.
6. Billing communications.
7. Refunds.
8. Cancellations.

Once we identified customer decision points we had to figure out ways to simplify them. Simplifying each process boiled down to be more of a Management decision or a UIUX decision than a technical one. In all cases we found that simplifying a process automatically made the process more transparent.

Here's some points on what we did with small explanations of why. Some are Management decisions while the rest are UIUX decisions. YMMV.

1. **Unified Billing Dashboard.** We made a single page UI for everything related to billing ... *View All Plans, Switch Plans, Add/Delete Cards, Set Default Card, Billing History, Download Invoices, Cancel Subscription* ... **EVERYTHING** can be achieved from one single page. Our objective was to achieve any end-user-intent within 2 clicks.
![sendwithses.com unified billing dashboard](https://thepracticaldev.s3.amazonaws.com/i/4hsd8ymz5j7afwpam6lb.png)
 
2. **No Exotic Names:** Our plans are simply named, **Free, Small, Medium, Large, and Extra Large.** So when somebody says, "We are using the 'Medium Plan' in Send With SES", others in their office will automatically know there are alternate plans like ‘Small’ or ‘Large’. This is not the case when you say something like, "We are using the 'Garden Plan'". Our plan names are easy to remember and communicate.
![sendwithses.com pricing](https://thepracticaldev.s3.amazonaws.com/i/vykxkb1xfrrieullxdjz.png)

3. **All Plans Include All Features.** The first question that comes up when signing up for a subscription is, “*Which plan do i select?*" So the potential user does a feature comparison of all available plans and the associated mental math. We save potential customers a lot of mental time and trouble by saying "[All our plans include all features](https://docs.sendwithses.com/pricing)". So a 'Free' user has **ALL** the features that an 'Enterprise' user has. Only the usage amount varies.
   
4. **All Prices Mentioned Upfront.** The next question that comes up when signing up for a subscription is, "*How much will i be spending*?" Most companies list prices for all plans except the Top/Enterprise Plan which just has a 'Contact Us' button. This creates some uneasiness, "*Will i be ransomed into this product/service if i start to grow*?" We avoid this situation by listing the price for our 'Extra Large' plan (which is our unlimited top end Enterprise plan).

5. **Free Plan - No Credit Card Needed.** This is something many do. Nothing different about us here.

6. **Refunds.** - All refunds are prorated and processed automatically. For example, if a user signs up for the 'Medium Plan ($150)' on 1st and cancels on 15th, they are immediately issued a refund of $75. We do have a [refund policy](https://docs.sendwithses.com/services-and-privacy-terms/refund-policy) to prevent plan abuse and protect our platform.

7. **Subscription Cancellations.** - Don’t bury the cancel subscription button. If a customer wants to exit - they will. We placed a large and prominent TrashBin icon below the pricing plans. In our case, simply switching back to the 'Free Plan' will stop customer billing immediately. 
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/mgxcrqlaby7z5libahzl.png)

8. **Data Retention.** - A customer may no longer need a paid subscription plan but may need historical data generated when they were on a paid plan. As mentioned earlier, simply switching back to our 'Free Plan' will stop customer billing immediately but they will not lose any old data that was generated.
 
9. **Easy Upgrade/Downgrade Plans.** - All available plans are shown in Billing Dashboard. When user selects any plan, a popup is presented which shows the amount that will be billed, the card it will be billed to, and some important billing support information. A plan can be changed in two clicks.
![sendwithses.com plan change](https://thepracticaldev.s3.amazonaws.com/i/712qp9ulebopd2irmo4w.png)

10. **Easy Add/Remove Credit Cards.** - The top-right of the Billing Dashboard has a 'My Cards' button. Clicking it will open a popup where user can add/delete credit cards and set default card.
![sendwithses.com payment cards](https://thepracticaldev.s3.amazonaws.com/i/t1udsaq0vh3cki3jb1cu.png)

11. **Payment History.** - Full historical table with invoice download options. Also shows date and time of billing. 
![sendwithses.com full payment history with invoice downloads](https://thepracticaldev.s3.amazonaws.com/i/u3icwa76ho3j7to8ob2b.png)

12. **Total Cost Calculator.** - Given the unique nature of our product (i.e. in addition to **Send With SES** charges, end user may incur extra charges in their AWS Account), we made a [Total Cost Calculator](https://docs.google.com/spreadsheets/d/1ZV3nr6DLwHShrPIHtPll-UjZ-DCadcjsYy-UpDEXq5E/edit#gid=0) that is linked to from the [pricing page](https://docs.sendwithses.com/pricing). 
![sendwithses.com total cost calculator](https://thepracticaldev.s3.amazonaws.com/i/8oatyl3byho6usq3pj92.png)

13. **Customer Communication.** - We keep customer communications to a bare minimum. The only automated emails we send out are a one-time welcome email on registration, an upcoming payment email, and an invoice-receipt email after payment is made. 

## Concluding ...
Is our approach working? Probably yes. Since launch (Jan-2018) we have received only one billing related support query.



= = = = = 
**About Send With SES.**

[**Send With SES**](https://sendwithses.com/) is a wrapper built around [AWS](https://aws.amazon.com/ses/) for sending Emails, SMS, and Push Notifications (coming soon) to your customers at low cost while ensuring high deliverability. 

You can consider Send With SES as an alternative to [AWS Pinpoint](https://aws.amazon.com/pinpoint). Unlimited Contacts/Subscribers. Scale to billions of messages. Just sign in to get started with the Free Plan. No credit card needed.
= = = = =