Monthly plans are "easy" as they map to Stripe's model. Stripe has "usage records". Plan changes are all handled with prorations, etc. It's great.
Yearly seems a lot more complicated. There doesn't seem to be a Stripe-native way to have invoices for overages being sent at the month end. We have to do a ton of billing date/math, keep track of the overages, of when we billed for them, and create invoices manually. It's a mess. We're trying to write valid, tested, solid code for this... but it feels like we're slowly rebuilding parts of Stripe :-)
Has anyone else gone through this? What's stopping Stripe from handling yearly subscriptions with monthly overage invoices? Are we an edge case [0]? Cheers
[0] I'm being facetious - there are clearly many companies whose business model includes yearly plans + overages-billed monthly. Slack, Zapier, etc.
Doing it this way, Stripe should handle the bulk of the logic; yearly and monthly subscriptions would be more or less the same from your end.
To answer your question, yes they are hard, but they make sense from a retention and overall revenue perspective.
It should be irrelevant what Stripe can do as long as they can process payments for you.
Whether you want to offer yearly subscription should only be a matter of your commercial strategy, ie. does it make sense to offer it for your business?