I have an online SaaS which users subscribe to. After a first trial period (one week), users can renew the service monthly. There's no deadline to pay for the service. As soon as the user pays the monthly fee, the expiration date is extended of exactly 1 month, irrespective of when the user pay. So for example, a user may pay three times in a row on the same day to extend the current expiration date 3 months ahead.
This is a very simple model and it works very well.
Unfortunately the SaaS pricing model has another variable: the number of mobile devices per subscription.
Each month a user pays:
P x N
P is the monthly fee for a single mobile device, and
N is the number of devices the user currently have.
The free trial starts with 1 mobile device.
Now, given a fixed number of mobile devices, the user pays P x N for each month, which is fine, but how to handle changes to the number of devices?
If the change happen at the end of the current billed month, I just update N and ask the user to pay for the new amount. But a user may change the number of users during the current billed period (which is more likely).
I can't figure out how to handle this. Till now, if a user increases the number of mobile devices, the system asks for a small sum of
M x C
where M is the number of extra devices and C is the monthly fee for a single devices discounted for the partial month (remember we are in the middle of a billed month)
This pricing model is extremely confusing to the users which can't figure out why they need to pay such a weird amount (the amount changes every time, depending on when the user increases the number of devices)
I'll provide an example
Let's say the monthly fee for a single device is $3.99 and the user has 4 devices. Each month the user pays:
$3.99 x 4 = $15.96
Now, the user increases the number of mobile devices to 6. Which means the users added 2 extra devices to the subscription. The user does it 10 days before the current month expires.
As soon as the users does that, the system asks for the following amount of money:
$3.99 x (10/30) x 2 = 2.66
This is because the user has to pay for 2 extra users for the current month, but only 1/3 of the current month is still available, so the user has to pay a little less (in this case only 1/3 of the full amount).
How can I present such computation in a clear way? It requires a lot of wording to explain that (as you can see on my post here)
Any other way to handle this? Giving for free the current partial month is not an option. Delaying the extra payment and attach it to the next renewal might seem confusing as well if the user doesn't remember it. Forcing user to add devices only at renewal time might be frustrating because users may want to add devices right now.
Instead, removing devices is extremely easy: the system allows the user to decrease the number of devices at any time and for free. As a side effect, the users are incentivized to do it only at the end of the current month but this is not a big deal.
Digging online I found that this is very common problem usually solved by proration billing. There is a fairly substantial amount of literature online. I guess now the question is how to present the billing information to the customer in such a way it's easy to understand
Here's an example of what I'm going to do.
First the user clicks on "change number of users". The user is presented with this page
Then, the user select a value from the combobox (the desired new number of users). Here's the updated page:
The "partial month" bit, although being correct, looks confusing. I can't figure out a way to avoid fractions. Instead of 11/31 I could display 0.35 which is even more confusing as it's not clear enough where the 0.35 comes from. Moreover, depending on the current month, the user may see 11/28 or 11/30 or 11/31.
I could just display a percentage (the percentage of the remaining month) but then the multiplication wouldn't make sense (can't multiply absolute values with percentages)