I don't even know what the name of this type of billing is but it has to exist - here is the scenario - you join my service and buy a service pack for x number of users of something that's good for a year, 4 months later you buy another and 2 months later another. Now you have three annual billing dates - it would be nice when you bought the second one to automatically drag the other forward on a pro-rated basis and say "or pay this amount and have both service packs billing synched to the same day" and offer that for every incremental purchase.
I don't want someone buying levels of service in batches to be stuck with 5 or 10 separate annual bills every year - they know the service is annual but they are getting a bill more than once a year - it could result in non-payment. Does anything solve this?
This kind of pricing is called per-seat pricing. Some companies that use it are Gitlab, and ClickUp. You can see how this works on https://docs.clickup.com/en/articles/2280598-billing-faq .
Basically, you have a regular billing cycle. When you add one more seat, you issue a one time payment for that seat, for the remaining time in the current already on-going billing cycle (eg. if the bill is created on the 1st of each month, and somebody adds a new paid seat on 10th, you will issue a one-time bill for the 20/21 days, depending on the current month). Then from the next billing cycle, you just count the total used seats as usual. When downgrading, usually it's a situation of "tough luck, that seat was already bought for this month, we'll adjust starting from the next".
Thanks that actually gives me a path forward - pro-rate on the up-ratch, and tough luck on the down-ratchet. I can work with that LOL.
Isn't this just an upgrade to a more expensive subscription, with the already paid pro-rated amount subtracted? I think a lot of payment providers support this, right? Or am I understanding you incorrectly?
think about it like you went to godaddy and bought a domain for a year and then two months later you bought another one for a year but it was important to you that you dont get billed twice next year because its a hassle so godaddy says "how about you pay for domain #2 for a year and also optionally for 2 more months of the first domain so that their expiration dates are now in synch"
Now I understand. So basically you want to allow variable length subscriptions, so the user (or you) can decide to let them end at the same date.
That's basically it - keep trying to add a bit to the end dates of earlier buys so that they synch with the newest purchase so that in the following year there will only be one billing action. purchase 1 is $12 - 1$/month, purchase 2 is the same thing but it happens 2 months later - buyer can pay another $12 or pay $14 (purchase 2 + (2/12 of purchase 1)) and next year the bill to renew both now falls on the renewal day of purchase 2 only.
I see vladcalin grasped the situation better. It's the same product, but per seat. Yeah, that is how Harvest does it as well. Works great. Good luck implementing it!
I don't think I've got much expertise to answer this question @unemployability :(
But marking you @csallen on this thread in case you know someone who might be able to answer this doubt!