#Rob.Clayton

1 messages ยท Page 1 of 1 (latest)

mental heraldBOT
fleet nest
#

Hi there! We don't reopen threads but happy to continue helping here. Could you restate your question and what you need help with?

unborn forum
#

Let me paste a screenshot:

#

Jack was very helpful, and assisted me in explaining that I needed to create an invoice via the api manually to implement the tier upgrading where we want to charge the full upgrade price now matter how far through a 1 year contract they were

#

Now I was trying to ask him if I could reflect the same idea, but with a monthly payment model

#

so if a customer was paying 12000 a year at 1000 a month, and halfway through they upgrade to a 24000 plan, they have to play the full difference even though it's halfway through the year 24000-12000. So that would mean they actually had to pay 2000 a month to successfully complete the payment at the end of our yearly contract period.

#

You'll need we have the concept of a contract, which is always a year, no matter whether a subscription is paid monthly or yearly.

#

That's the situation, hope it makes sense ๐Ÿ™‚

#

and importantly our customers have to pay a full subscription amount, even if they upgrade halfway through the year, or 3/4 ... or even 1 day before renewal if they were silly enough.
We have reasons, but it doesn't matter why ๐Ÿ™‚

fleet nest
#

Sorry for the delay. Not quite sure I follow

#

Could you explain this again and clarify your question?

so if a customer was paying 12000 a year at 1000 a month, and halfway through they upgrade to a 24000 plan, they have to play the full difference even though it's halfway through the year 24000-12000. So that would mean they actually had to pay 2000 a month to successfully complete the payment at the end of our yearly contract period.

unborn forum
#

ah, will do, just in a call, sorry ๐Ÿ™‚

unborn forum
#

nearly done ... sorry

#

okay ...
I'll do my best, sorry for not being clear.

My company sells subscriptions, which are for a year. We expect a renewal at the end.
By default, we charge for the full year up front.
The subscription actually gives a quantity of data, that is consumed by the customer.
If they consume too much, they need to upgrade their tier.
We do not, however, charge at a percentage of time left in their contract, and the contract period is immutable.
So. Example.
I buy Tier 1 on Jan 1 2023 at $12000, so renewal/rollover would be Jan 1 2024.

8 months into the contract, I want to upgrade to Tier 2.
We do not charge them (12-8)*Tier2 cost, or whatever would happen by default in Stripe.
Our charge is ALWAYS: NEW_TIER_COST - OLD_TIER_COST.
Even though I bought at 8 months into my 12 month contract, I still pay the full difference in the upgrade.
If I make the purcahse 1 day before my roll over, on December 31 ... I better use all my data in 1 day, because I will be charged the full TIER_2 cost the following day when my cycle rolls over.

Does that make sense?

fleet nest
#

I think so! So, in the example above, if I want to upgrade on August 1, I'm expected to pay NEW_TIER_COST - OLD_TIER_COST on August 1 and renewal is now on August 1, 2024?

unborn forum
#

the contract date doesn't change, so renewal stays the same ... Jan 1 2024

#

So they pay for what might be a very short period of time ... but that's up to them to use their date within whatever time is left on the current contract

#

They can change their level, basically, but they can't change their contract period

#

and what they pay is always new_tier_cost - old_tier_cost, no matter what.

#

Jack explained that for a full payment a year ahead model, I do the following:
When you update the subscription, you turn off the proration by setting proration_behavior to none, and you manually add in a new invoice item for the different (i.e., $10000 - $1000 = $9000) and generate an invoice for your customer to pay the invoice.

#

This was based on tier 2 = 10,000 and tier 1 = 1000

#

So, IF that makes sense, I need to work out how to still model a yearly contract, but one they might pay monthly, with the same rules, and where they might change their tier part way through and stil have to pay the new amount by the end of the current contract period

#

The contract period is a construction from my company, I don't think that stripe reflects the same thing when paying per month, but I need to model as above

Hope that's making sense ๐Ÿ™‚

fleet nest
#

I think I follow. So in your example above, if a customer wants to upgrade on August 1, do you want to charge them on August 1? And, if so, how much would that be?

mental heraldBOT
unborn forum
#

for monthly repayment?

#

If for monthly, whether they paid on August 1, September 10, October 7th ... would still be Tier2Cost-Tier1Cost=10000-1000=9000

If paying monthly, they would have started out paying $83.3 per month (on a $1000 a year contract)
If they upgrade on August 1 the repayment would be (Tier2Cost-amount_paid_so_far) / months_remaining_in_contract

#

So ($9000-$667)/4 = 2083

#

I hope I got my math right there, but I hope you get the picture

fleet nest
#

Got it. What I'm unclear on is what should happen on the day of the upgrade. Do you want the customer to pay the difference at that point in time but keep the billing cycle unchanged?

unborn forum
#

We will never change the billing cycle
So if paying MONTHLY, on the day of the upgrade nothing would happen
But their monthly repayments would be much higher because they have to pay the full amount by the end of the cycle

If paying yearly, they have to immediately pay the difference between what they have already paid and the new tier

Then when their cycle starts again, they will pay the normal monthly amount, if monthly

If yearly, they will pay the full new tier price on roll over

#

does that make sense or have I confused it more ๐Ÿ™‚

#

we have those two scenarios:
paying monthly, paying yearly

#

paying fully for the contract at the beginning of the cycle, or paying it out month on month

trail perch
#

Hi there ๐Ÿ‘‹ taking over, as my colleague needs to step away

Give me a few minutes to get caught up.

unborn forum
#

no worries

#

I'm afraid it's a little complicated, and I haven't described it well ...

#

Our customers are on yearly contracts. The start and end never change once a contract is created.

#

They can pay the full year ahead when the contract renewal date begins, OR they can pay 1/12 per month which will hit the full amount on the new date of renewal

trail perch
unborn forum
#

The complicated part is that they can upgrade their "tier" at any time within the contract, but we always need to charge them the full time ahead

#

I haven't modeled this yet, but I need to conceptually work out how I'll be implementing these two scenarios

#

I've already been told that the way to do it for an upgrade during the year for what we need (read above and ask any questions) is this (tier1cost=1000, tier2cost=10000):
When you update the subscription, you turn off the proration by setting proration_behavior to none, and you manually add in a new invoice item for the different (i.e., $10000 - $1000 = $9000) and generate an invoice for your customer to pay the June invoice.

trail perch
#

I would recommend building out a prototype a this point for the workflows you already know. This will give you a better understanding of the product(s) and you can come back as questions arise. The problem with trying to have everything airtight ahead of prototyping, is you end up asking the wrong questions and we end up accidentally steering you in the wrong direction.

unborn forum
#

what do you mean?
I want to know if the stripe constructs can support the second scenario
I'll go and implement the first method for our full contract payout on renewal and test the tier upgrading ... but I need to know if the monthly payment tier upgrade can actually work before I try it I think ??

#

I can create a custom invoice for the cost difference for the tier1->tier2 upgrade if paying full amount, but I'm not sure if I can charge a different monthly price for the product if I need them to pay the full amount by the end of the year ...
An alternative would be to create a custom invoice for the difference in tier2-tier1 price for what they have already paid so far so they can go back to paying the standard monthly cost for the new tier.???

trail perch
#

Which second scenario?

unborn forum
#

A customer is contracted to us 1 Jan 2023 - 1 Jan 2024
The contract gives them a quantity of data at tier 1 they purchased for $12000

Scenario1
They pay yearly and paid the full $12000 on Jan 1
They upgrade to tier 2 which costs $24000 for the year on August 1.
It doesn't matter when a customer upgrades, they MUST pay the difference in cost between the tiers immediately.
So on August 1 they pay $24000-$12000=$12000 to move to tier2

Scenario2
The same customer, on tier 1, but instead of paying yearly decided to pay monthly.
On Jan1 they pay $1000 ($12000/12)
They upgrade to tier2 on august1. They have paid $8000 so far ($1000 per month).
They now need to pay ($24000-$8000) for the remainder of the year.
That would be $16000, which would be $4000 per month to pay the new total off by the end of the contract.

Alternatively, we could charge them on August 1 for the difference in price they haven't paid on the upgrade, and then charge them the monthly standard price of the new contract.

trail perch
#

All of that seems completely possible with Subscriptions and Subscription Schedules, plus a bit of custom logic for calculating hoe much they ought to pay based on previous payments. Both scenario 2 and the alternative seem entirely possible. Did you have any questions about that?