Pricing models
Billing is organized around subscription plans, i.e. a profile pays periodically to use the service. Each payment leads to a charge (on a credit card for example) and is recorded as a transaction when the charge is successful.
Discounts are either one-time off coupon codes, or advance discounts for payment of multiple periods in advance (ex: monthly plan with a 20% discount if paid annually).
A SaaS product built on DjaoDjin can mix and match three major pricing models:
A SaaS product built on DjaoDjin also supports unique group buy workflows.
Per-period pricing
The simplest billing scenario is to define one recurring monthly plan to access all features in the product.
For a $29/month subscription plan, we would enter the following information under the Pricing section in the plan page:
Unit | usd |
---|---|
Period amount | 29 |
Period type | monthly |
Period length | 1 |
Then we would set a Subscribed to ... rule in the Access Rules Dashboard for URL path /
.
Quick setup
- Every 2 weeks
-
Type: WeeklyLength: 2Renewal: auto-renew
- Quarterly plan
-
Type: MonthlyLength: 3Renewal: auto-renew
- Expires after 4 Years
-
Type: YearlyLength: 4Renewal: repeat
Through a combination of period type and period length, it is possible to support any kind of period billing from per-hour use to multi-years contracts.
The renewal type is also customizable.
Forever (i.e. until cancellation) automatic recurring billing (
auto-renew
) is the default but non-recurring billing
(one-time
), as well as non-automatic recurring billing
(repeat
) can be implemented.
Renewal type | Recurring | Automatic |
---|---|---|
auto-renew | yes | yes |
repeat | yes | no |
one-time | no | no |
The one-time option is often used in circumstances where a virtual product or service is sold, such as online courses for example. Many businesses would customize an e-commerce platform for that purpose but there are clear advantages of using a SaaS billing platform for those use cases; one of them being to easily manage expirations for professional certifications.
Insurance products are typically recurring, but because premiums may be high and customers do not login to the Website on a daily basis, it is often beneficial to turn off the automatic invoicing feature to prevent chargebacks. Furthermore, by selecting repeat instead of auto-renew, it is possible to have all the advantages of a recurring business without requiring customers to put a credit card on file. This happens quite often in sports clubs or trade associations, where renewal requires some kind of annual approval from the member.
Usage-based pricing
Usage-based pricing is a consumption-based pricing model that allows customers to pay according to the amount of services they use in a billing period.
Usage-based pricing requires to define a plan and attach
use charges to it. A use charge consists of a
use_amount
(in the plan currency unit),
a free quota and a maximum limit.
The use amount is the unit price per item being used (ex: number of seats, number of HTTP requests, Megabytes).
Free quota defines the quota under which the usage is included in the plan. Maximum limit defines the upper bound of usage after which no additional charges is incurred, but service might be cut.
For a $29/month subscription plan that includes 10Gb of disk space and charges 1 cents per Gb after that, we would use the following plan and use charge:
Unit | usd |
---|---|
Period amount | 29 |
Period type | monthly |
Period length | 1 |
Use amount | 0.01 |
---|---|
Quota | 10 |
Maximum Limit | ‐ |
DjaoDjin is not responsible for keeping track of usage. This is something the application must do, then call the API endpoint Adds to the order balance to include usage in the next current billing cycle.
Market-broker pricing
A Website that provides authoring and distribution tools for content providers can be setup as a marketplace where the Website (aka broker) takes a cut of each sell.
In a marketplace pricing model, each provider plan is created with a positive broker fee percentage.
Discounts
Discounts come in two forms:
- Coupon codes that you distribute and that users enter at checkout to get a one-time price reduction.
- Advance discounts for payment of multiple periods in advance that display as options on the pricing page and at checkout.
The checkout workflow is designed to present opportunities to a user to enter a discount code and/or pick between multiple advance payment discount options.
Coupons
One-time discounts can be expressed in percentage (50%) or total value ($25).
By default one-time discounts apply to all plans that have for provider the owner of the coupon. It is possible to restrict the use of a coupon to one or a combination of:
- Specific dates - The coupon code expires after a certain date.
- Plan - The coupon code applies to a specific plan only.
- Number of use - The coupon code can only be used a specified number of times (ex: first 10 customers to enter the code).
Tip
You can use coupon codes with 100% discounts to test the onboarding workflow without entering a credit card and/or to implement a free trial period.
Advance discounts
Advance discounts can be expressed in percentage (50%), total value ($25) or periods (1 month).
The advance discount type (percentage
,
currency
, period
) and
advance discount value (a number) specify how much
is discounted. Advance discount length specifies
how much periods must be paid for the discount to apply.
For example, a 20% discount on a monthly plan for a year paid in advance would be entered as:
Type | percentage |
---|---|
Value | 20 |
Length | 12 |
Once one or more advance discounts have been setup on plan, a user will be presented at checkout with the standard plan pricing and one option for each advance discount. Example:
$29 | Subscription to plan (1 month) |
$278 | Subscription to plan (12 months a 20% off) |
Group buy
A business that serves professionals or enterprise customers always has to deal with a distinct payer and subscriber. The person authorizing payments is often not the person using the service day-in and day-out.
Group Buy is a feature to enable one profile to pay and subscribe another profile to a plan. It is enabled on the buyer profile page by clicking the Group Buy checkbox.
The group buy feature comes out handy in HCM products like the ones that track healthcare and other licensed workers that need to renew professional certifications on a regular basis while their employer pays for the renewal.