14 min read

Chargify vs. Spreedly vs. Cheddargetter: Subscription-Billing Service Prices

We’re looking at chargify.com, spreedly.com, and cheddargetter.com to manage subscriptions for a SaaS web app we’re developing at pybrew.com. I made some graphs to see how their prices scale with the number of customers they’re managing for your business.

50 Customers 100 Customers 200 Customers 500 Customers 1000 Customers 5000 Customers 10000 Customers 15000 Customers 20000 Customers

Spreedly charges per transaction, whereas chargify and cheddargetter charge per customer. For these graphs, I’m assuming that it’s simply one transaction per customer per month, but spreedly’s curve will go up or down if you charge more or less frequently than monthly. Also, I didn’t include any costs from payment gateways like authorize.net.

In a few places, these graphs make it look like there are some big price differences. However, after looking at it for a while, I’m not sure that the differences are significant. The most noticeable one is where the chargify price jumps when you get your 501st customer. At that point, you’d be paying $249/month for chargify but only $119.20 for spreedly or only $39.00 for cheddargetter. But, if you’re charging, say, $15/month for your app, and you have 501 customers, then you’re getting $7,515/month in revenue, and the difference of $210 between chargify and cheddargetter is about 2.8% of your revenue, which is the biggest difference in percentage of revenue that I can find in the first 20,000 customers. Once you get past 1,150 customers, spreedly is always the most expensive, but the difference is generally around 1% of revenue, assuming a $15/customer/month subscription model.

There’s another change at 50,000 customers, which is where the cheddargetter cost begins increasing again, so eventually it will cross the chargify curve, which is fixed at $2,499 for unlimited customers. However, I stopped the graphs at 20,000 customers, because I figure, at that point, with a $15/month subscription, you’re bringing in $300,000 per month, so you can afford to do pretty much whatever you want.

For a startup, getting to the point of having 50 paying customers is the hardest and probably takes the most time, and with chargify, those first 50 are free, but overall, I’m not convinced that the price differences alone are enough to make a decision between the three. You might want to choose based on some combination of price and features. As primarily Python coders, we like that Spreedly already has a Django app, thanks to Chris Drackett.

Here’s the quick-and-dirty Python script I wrote to generate the numbers. (Please let me know if you catch a mistake!)

#!/usr/bin/env python

def spreedly(transactions):
    return 19 + .20*transactions

def cheddargetter(customers):
    def _basic(customers):
        cost = 39.00
        if customers > 1000:
            cost += .19*(customers-1000)
        return cost

    def _advanced(customers):
        cost = 169.00
        if customers > 10000:
            cost += .06*(customers-10000)
        return cost

    def _premium(customers):
        cost = 549.00
        if customers > 50000:
            cost += .02*(customers-50000)
        return cost

    if customers <= 20:
        return 0.00
        return min(_basic(customers), _advanced(customers), _premium(customers))

def chargify(customers):
    if customers > 15000:
        return 2499.
    if customers > 10000:
        return 1499.
    if customers > 5000:
        return 749.
    if customers > 500:
        return 249.
    if customers > 50:
        return 49.
    return 0.

if __name__ == '__main__':
    max_customers = 20001
    f = open('prices.txt','w')
    print >>f, "# num_customers\tchargify\tspreedly\tcheddargetter\tspread\trevenue\tpercent_diff"
    max_spread = 0.
    max_percent_diff = 0.
    for c in xrange(max_customers):
        cha = chargify(c)
        spr = spreedly(c)
        che = cheddargetter(c)
        spread = max(cha,spr,che) - min(cha,spr,che)
        if spread > max_spread: max_spread = spread
        revenue = c * 15.00
        percent_diff = revenue > 0. and (100. * (spread/revenue)) or 0.
        if c > 50 and percent_diff > max_percent_diff:
            max_percent_diff = percent_diff
        print >>f, "%d" % c,
        print >>f, "\t%.02f" % chargify(c),
        print >>f, "\t%.02f" % spreedly(c),
        print >>f, "\t%.02f" % cheddargetter(c),
        print >>f, "\t%.02f" % spread,
        print >>f, "\t%.02f" % revenue,
        print >>f, "\t%.02f" % percent_diff
    print "max spread (diff between cheapest and most expensive):", max_spread
    print "max percent diff (spread/revenue):", max_percent_diff

Here’s the gnuplot script I wrote to make the graphs.

set key left
set grid
set xlabel 'number of customers'
set ylabel 'monthly prices ($)'
set terminal png
set xrange[0:50]
set output '00050.png'
plot 'prices.txt' using 1:2 title 'chargify', \
     'prices.txt' using 1:3 title 'spreedly', \
     'prices.txt' using 1:4 title 'cheddargetter'
set xrange[0:100]
set output '00100.png'
set xrange[0:200]
set output '00200.png'
set xrange[0:500]
set output '00500.png'
set xrange[0:1000]
set output '01000.png'
set xrange[0:5000]
set output '05000.png'
set xrange[0:10000]
set output '10000.png'
set xrange[0:15000]
set output '15000.png'
set xrange[0:20000]
set output '20000.png'

Update 2013-01-07: When I migrated from posterous.com to Octopress, I was unable to migrate the comments from the original post into Disqus, so I’m just copying them below so they don’t get lost.

Update 2018-02-08: The code has been on GitHub for some time now: https://github.com/ccg/billing-service-price-comparison

Michael Halligan responded:
Michael Halligan
It would be interesting to compare Recurly with these other three.
djg (Twitter) responded:
It would be more interesting even if these were true competitors. One reason to use a service like these is that if you need to switch payment providers, you don’t lose all your billing information stored at the one you’re leaving. You might have your merchant account terminated without notice because too many chargebacks came in one month, for example.

Spreedly supports a half dozen payment gateways. Paste in your PayPal Pro data and your subscriptions continue rebilling uninterrupted through there instead of through Authnet.

The other services don’t support multiple gateways right now, so if you lose your gateway all that stored billing information is unusable.

marcguyer (Twitter) responded:
If your merchant account is terminated, the gateway through which you transact is irrelevant. You still need a new merchant account. Once you have a new one in place, simply inform your gateway provider and you’re good to go.

However, if you’re terminated for too many chargebacks then you’ve got other problems. You’re just going to get terminated again. At that point, consider getting into a different business.

duffomelia (Twitter) responded:
marguyer, You’re right that if your merchant account is terminated, you still need a new merchant account. However, there are plenty of reasons one might want to switch gateways.
marcguyer (Twitter) responded:
@duffomelia no doubt. Cheddargetter is in the process of integrating more gateways and chargify claims to be doing the same so this isn’t a great argument for or against any of the services.
recurly (Twitter) responded:
This is a good first look at pricing of these three competitors- (and we would love to add Recurly to the comparison as well).

Making a decision on a subscription billing solution should be based on two main items:
1.) the features- i.e. does this fit my application’s current needs, and is the system flexible enough to allow me to change it in response to changing customer/business needs.
2.) Price- does this fit my cost structure today, tomorrow and where I project my business to grow to

As DJC and Marc discuss, what payment provider are you using currently? Chargify limits you to authorize as does Cheddargetter. Spreedly supports multiple gateways but isn’t PCI compliant. Are those items limiting factors and is that risk an issue for you? These are questions to ask.

Pricing is also key- the way you handle your customers and users (and how they grow) has a huge impact on what you get charged (as these graphics show). Recurly charges on a percentage transacted basis- so we only get paid as you get paid. We’re also one of the only solutions that has a maximum cap on what that fee will be- so you won’t be penalized for being successful.

We’re happy to answer these questions for you as they come up and in the end, the competition between us and these other solutions will only help developers. We’re standing by to help :)

dh (Twitter) responded:
Thanks for the nice comparison of pricing. We really want people to have true success before they pay anything to Chargify and 50 customers seemed best. As for gateways supported, that is a pretty small issue, what is more important is true PCI compliance.

As for a Python library, one of our beta customers was kind enough to release what they have worked on so far at http://github.com/getyouridx/pychargify

flybrand (Twitter) responded:
We have used spreedly for a while - Nathaniel is based in RTP so there was a personal connection. Very pleased with the service.
lancewalley (Twitter) responded:
Thanks for including Chargify - we definitely appreciate it.

We’re building our team & technology to answer the needs of beta customers. The feedback is great and is helping us prioritize.

Our development pipeline is full of good stuff and we’re always happy to hear what’s important to you. It’s still very early!

hoffmang (Twitter) responded:
None of the smaller subscription/recurring billing services are PCI compliant. As such, your cards are likely held hostage by a gateway and not even by Chargify/Spreedly/CheddarGetter/Recurly. However, if any of these four are storing credit cards without an appearing on the PCI Service Provider’s list, they are violating Visa/MC rules and risk their customers’ ability to take credit cards.

Now you need to find out if the tokenization systems at the gateways these services work with do either of two critical items.

1. Will the gateway transfer the card data you acquired to you or another service provider that is PCI compliant?

2. Does the gateway implement card updater or any other sorts of retention systems on the cards it has tokenized for you? Loosing customers to passive opt out really hurts.

Please don’t lose the ability to bill your early adopters…

-Gene (CEO, Vindicia)

chrisdrackett (Twitter) responded:
It may also be worth noting that spreedly with their kickstart is half the price and no monthly fee (grated it costs more money up front.)
Chad Glendenin responded:
Chad Glendenin
Thanks for all the feedback. I have looked at Recurly, so I’m not sure why I forgot to add them to the graph. I’ll make a new graph that includes Recurly.

I think it’s worth noting that so far, the companies mentioned have all been friendly and responsive, which makes it ever harder to know which way to go. For example, a couple weeks ago, I casually asked on Twitter if any Django developers had chosen one of those services, and I got replies straight from Spreedly and Chargify within minutes.

recurly (Twitter) responded:
Thanks Chad, I think this discussion is a great example of how powerfully twitter can help pull together several competitors to all debate the merits of each product in one place. Having a strong developer focus is crucial in this space and we’re looking forward to helping devs out- regardless if they’re using Python, Ruby, PHP or .net.

With Recurly’s pricing based solely on what’s transacted through our service, we’re only paid if you get paid. If you’re using a Freemium model, there’s no cost for your free users and we offer a seamless way to let them upgrade into a premium billing level. Just another reason to consider Recurly.

We look forward to seeing how this discussion continues :) Thanks again for the forum.

Jarin Udom responded:
Jarin Udom
Recurly is awesome. It was still in the finishing stages of development when I first got on, but they have been awesome at working out the little kinks and it is pretty baller now. I like the way they handle freemium subscriptions too :)
pjammer (Twitter) responded:
good price comparison and i was glad to hear you say basing these on price alone isn’t enough.
IMHO: The only way to keep costs low for the nth client is to roll your own.

A service like the ones you mention above are on top of what you need to roll your own. Remember, YOU still have to get a merchant account. You still are going to be charged transaction fees and then their fees on top of it (in the case of chargify, anyways, but i’m sure it’s similar to all of the ones you’ve tested).

How do these services compare for odd little things that happen in real life situations?

For instance, Paypal will create a recurring subscription and pass a Success message back to you, however, when they actually go to try and bill the client, it won’t go through. so now you have to go back to the client and ask them to sign up again to remedy the situation.

Plus chargify, at least, uses a US based system that only US clients can use, which means chargify would be US based only.

bryan_johnson (Twitter) responded:
We (Braintree) also have a recurring billing solution (http://bit.ly/a2V97f) that is bundled with the payment gateway and merchant account.

Merchants need to be very careful when storing their customers credit card data with a payment gateway provider because most will hold it hostage if they ever want to move. It’s a huge gotcha with big implications.

To address this problem, we recently created the Credit Card Data Portability Standard. You can read more about it here: http://www.braintreepaymentsolutions.com/blog/data-portability

Bryan Johnson

thejohnny (Twitter) responded:
Just to update the thread regarding PCI DSS compliance, Spreedly is PCI compliant. Spreedly also offers visibility into its status at http://bit.ly/is-spreedly-pci-compliant. Status is updated after each vulnerability scan (some 35K+ vulnerability checks) performed on the network. As far as I’m aware, Spreedly is the only company in this space providing QSA (Qualified Security Assessor) verification of its PCI compliance status.
jnusser responded:
Just a follow-up note to @thejohnny John’s note above. I’m sure that any PCI compliant billing solution would be happy to share their report on compliance (ROC). I know we here at Vindicia regularly share our report to interested companies. We’ve also been PCI compliant since 2004 ;).

The key point for compliance with PCI DSS is how the entire organization approaches the issue. Will the billing system just provide a linkage to a payment gateway that tokenizes customer credit cards? Or will the solution provide multiple ways for each department to easily access the information according to their roles?

Also, what happens when the payment data is initially submitted by customers? Vindicia recently introduced Hosted Order Automation to allow companies to fully offload the PCI burden while still offering an enterprise-class billing system with integrated payment gateway.

More information can be found here - http://bit.ly/eliminatePCI

christianeaton (Twitter) responded:
Chargify have changed their pricing so that it goes to $39 a month after 10 clients rather than 50. They then go up again at 500, so at the lower end (from 10 to 20) they’re only slightly more than CheddarGetter, but at the higher end (past 500) they’re still much more expensive.
virtualconnections responded:
can anyone comment on Beanstream?
jessicahanapin responded:
Thanks for the graph - it’s always great to see comparisons laid out so straight-forwardly!

A few updates on CheddarGetter, however. They’re switching to a new pricing system which is focused on making recurring billing affordable for startups. Their smallest plan costs $19/month and $0.25/transaction, and covers up to $3K monthly revenue. The next plan up costs $79/month and $0.20/transaction, but you are allowed an unlimited monthly revenue. For both of these plans, you can have unlimited customers and unlimited transactions. That makes CheddarGetter very doable for small businesses, and much cheaper than other plans for large clients. If you do think that you will have many customers, they also have an Enterprise plan, rates for which are available by contacting their friendly support team.

The best part about these new plans is that it’s not just about money - CheddarGetter also rolled out some new features that make recurring billing much easier to undertake, such as PayPal integration (if you want it), a quick setup wizard, hosted payment pages, and more. Check out the post on their blog here: http://blog.cheddargetter.com/post/4211900640/new-pricing-plans.

Also, just to settle a few matters, CheddarGetter does work with many third-party payment gateways (authorize.net, PayPal, etc). At the same time, they offer their own gateway (called CheddarGateway), which continues to streamline the process of setting up your online billing.

I highly suggest them!

isaakdury (Twitter) responded:
Thanks for the great write-up. Here in Australia we don’t have any subscription engine offerings due to our tight regulations, so we have to rely on the aforementioned.

May I ask if anyone has had any success with incorporating any of the above into a Shopify type offering… this seems to be the one downfall.

Thanks again for the post and all of the comments! Very helpful!

joshuapinter (Twitter) responded:

Would *love* to see some updated graphs with their current pricing plans. And maybe throwing in Recurly as well.

joshuapinter (Twitter) responded:
Actually, just found this helpful web tool to compare Recurly, Spreedly and Chargify’s plans. I haven’t checked yet but I imagine it’s for their current pricing models as well.

Billing Savvy : http://www.billingsavvy.com/