# OneSignal Pricing: Calculate MAU, Email and Event Storage Costs

Calculate a OneSignal budget from the actual plan, organization and channel meters. Reconcile the billable subscription count with product usage before multiplying it by a rate. Then model required features, peak demand and the second year. That sequence exposes avoidable collection and messaging costs without removing a customer experience the product still needs.

Canonical URL: https://www.martechdevs.com/blog/onesignal-pricing

By [Jafrin Akter Alo](https://www.martechdevs.com/authors/jafrin-akter-alo)

Data Engineer and Co-founder at [Martechdevs](https://www.martechdevs.com) and [Growth and Analytics Partners](https://www.growthandanalytics.com)

[LinkedIn](https://linkedin.com/in/jafrinalo)

Last updated: 2026-10-27

Next step: [Braze vs Reteno for Subscription Apps: Pricing, RevenueCat and Migration](https://www.martechdevs.com/blog/braze-vs-reteno)

A hypothetical team can have 8,000 customers, more than 10,000 active mobile subscriptions and a separate web-push audience. Its useful starting point is the gap between those populations and the reason each destination exists.

Start with the actual organization, plan and invoice units. The [Braze alternatives guide](https://www.martechdevs.com/blog/braze-alternatives) covers the broader platform choice; this guide explains OneSignal's price calculation and the operating decisions behind it.

## What are OneSignal's current pricing components?

Growth adds channel usage to a USD 19 monthly platform fee. Professional and Enterprise require custom annual proposals. Use the self-serve calculation only where those published Growth rates apply.

Published USD Growth rates, before tax and additional services:

| Component | Published rate or allowance | Input to use |
| --- | --- | --- |
| Growth platform | USD 19/month | Selected paid organization |
| Mobile push | USD 0.012 per billable mobile MAU | Mobile-subscription activity under the applicable meter |
| Web push | USD 0.004 per subscribed browser | Separate web-push subscription count |
| Email | 20,000 monthly sends included; USD 1.50 per extra thousand | Billable sends above the allowance |
| In-app messaging | Included with mobile-push purchase on current plans | Verify any legacy impression-based arrangement |

Free email allows 10,000 monthly sends, and Free web push has a 10,000-subscriber-per-send limit. Those are not free allowances to subtract from Growth's mobile or web-push bill. [OneSignal pricing](https://onesignal.com/pricing).

Build the estimate from the required channels. A mobile-only application, a web-push publisher and an email-led product can have different costs at the same customer count. Keep SMS/RCS, Event Streams, stored-event overages and additional services as separate lines when they are part of the design.

## What changed on the Free plan?

OneSignal introduced an organization-level 1,000-MAU limit for Free mobile push and in-app messaging. It applied to new organizations from 1 September 2026 and existing organizations from 1 October 2026. The announcement provides a twenty-four-hour upgrade window after exceeding the limit before affected sending pauses. [Free-plan change](https://onesignal.com/blog/whats-changing-on-onesignals-free-plan/).

Free now includes three active Journeys, while Growth includes five, with unlimited message steps. A journey count can decide the package even when the audience fits the cost estimate. [OneSignal plan features](https://onesignal.com/blog/whats-changing-on-onesignals-free-plan/).

Check the live eligibility warning and the intended channels before assuming all messaging has stopped. Mobile eligibility, web-push send size and monthly email allowance are separate controls. Set an owner for the upgrade decision before the application reaches a limit that affects a customer-facing journey.

Avoid treating the Free boundary as a production forecast with no headroom. A launch, import or another app added to the organization can change the counted population. Test the expected growth scenario and the actual plan-change path before the deadline becomes an incident.

## Does one person count once or once per device?

Each device or browser destination has its own subscription; an External ID links those destinations to a person. Count the relevant subscriptions rather than collapsing them into one person record. [Subscription model](https://documentation.onesignal.com/docs/en/subscriptions).

Current self-serve billing counts each active Mobile Subscription, including SDK sessions or API `last_active` updates. Linking two devices to one person does not collapse their MAU count. Mobile and web billing counts round down to tens. Mobile push opt-in does not determine that count; web push uses subscribed browsers. [Channel units](https://documentation.onesignal.com/docs/en/billing-faq).

Use OneSignal's subscription classification when exporting the counts. The billing category called mobile also covers supported non-phone platforms; it is not simply a count of physical handsets. Preserve the subscription identifier, platform, organization and relevant activity evidence in the reconciliation.

The billing guide separates the paid cycle from Free's trailing thirty-day window. The pricing FAQ and Pro Terms retain thirty-day MAU wording. This self-serve example follows the billing guide; confirm a contracted account's definition in its order. [Pricing FAQ](https://onesignal.com/pricing), [Pro Terms](https://onesignal.com/proterms).

Do not substitute the analytics team's unique-person MAU without reconciling it. That denominator may merge devices, exclude anonymous sessions or use a different time window. Those choices can be reasonable for product analysis while answering a different billing question.

Our [lifecycle messaging implementation](https://www.martechdevs.com/lifecycle-messaging) connects identity, SDK behavior and channel permissions to that reconciliation. Resolve why a subscription exists before deciding whether removing it would reduce waste or interrupt a useful message.

## How do you calculate a Growth subtotal?

Add the platform fee, rounded billable mobile and web counts, and email usage above the included allowance. Then add the costs excluded from this limited model.

This Python helper estimates the listed mobile, web-push and email lines using the current self-serve billing interpretation. It accepts nonnegative whole counts. It deliberately stops above 50,000 mobile MAU or 500,000 monthly emails so a reader reviews the applicable commercial scope instead of silently extrapolating. The email limit can be reviewed with OneSignal; it is not a universal permanent ceiling.

```python
from decimal import Decimal

def growth_subtotal(*, mobile_subscriptions, web_subscriptions, email_sends):
    counts = (mobile_subscriptions, web_subscriptions, email_sends)
    if any(type(value) is not int or value < 0 for value in counts):
        raise ValueError("counts must be nonnegative integers")
    if mobile_subscriptions > 50000 or email_sends > 500000:
        raise ValueError("review the volume and commercial scope first")
    mobile_billable = (mobile_subscriptions // 10) * 10
    web_billable = (web_subscriptions // 10) * 10
    email_excess = max(email_sends - 20000, 0)
    mobile_cost = Decimal(mobile_billable) * Decimal("0.012")
    web_cost = Decimal(web_billable) * Decimal("0.004")
    email_cost = Decimal(email_excess) / 1000 * Decimal("1.50")
    return {
        "mobile_billable": mobile_billable,
        "web_billable": web_billable,
        "email_excess": email_excess,
        "platform_usd": Decimal("19"),
        "mobile_usd": mobile_cost,
        "web_usd": web_cost,
        "email_usd": email_cost,
        "subtotal_usd": Decimal("19") + mobile_cost + web_cost + email_cost,
    }
```

Supply organization totals for the chosen billing period. The function preserves decimal precision before invoice rounding; it is not an invoice generator or a test of Free-plan eligibility. Its result excludes tax, SMS/RCS, event storage, Event Streams, support and contract-specific adjustments.

Consider an original hypothetical organization with 10,007 billable-cycle mobile subscriptions, 5,005 subscribed web browsers and 80,000 billable email sends. Assume the published Growth rates and selected features apply.

| Line | Calculation | Monthly estimate USD |
| --- | --- | ---: |
| Platform | Fixed fee | 19.00 |
| Mobile | 10,000 rounded subscriptions × 0.012 | 120.00 |
| Web push | 5,000 rounded subscriptions × 0.004 | 20.00 |
| Email | 60,000 excess sends ÷ 1,000 × 1.50 | 90.00 |
| Selected subtotal | Platform plus those three usage lines | 249.00 |

Reconcile the calculation with the billed quantities and selected channels in the dashboard. If the number differs, check the plan model, organization scope, billing dates, active subscription inventory and additional line items before assuming a multiplication error.

## What could the second year cost as usage grows?

Model the second year with changed usage and required features, even when the published rates stay constant. A smaller platform fee does not prevent a larger audience or email programme from increasing the total.

The following extends the same hypothetical example. Year two assumes 13,007 mobile subscriptions, 6,505 web subscriptions and 104,000 email sends each month. The rates are held constant for teaching purposes; neither year includes additional services or a contract discount.

| Selected line | Year-one monthly USD | Year-two monthly USD | Reason for change |
| --- | ---: | ---: | --- |
| Platform | 19 | 19 | Same assumed Growth plan |
| Mobile | 120 | 156 | Rounded count rises from 10,000 to 13,000 |
| Web push | 20 | 26 | Rounded count rises from 5,000 to 6,500 |
| Email | 90 | 126 | Excess sends rise from 60,000 to 84,000 |
| Subtotal | 249 | 327 | Same rates, higher usage |

Twelve unchanged months would total **USD 2,988** in year one and **USD 3,924** in year two, a USD 936 increase. These are usage scenarios, not annual quotes. If the required journeys, webhooks or controls need another package, replace the Growth assumptions before comparing totals.

Price the expected month and a peak month separately. Averaging an audience spike across a year can conceal cash needs and a limit that the product will encounter during the peak itself.

## When does custom-event storage add another charge?

Sending Custom Events is free on paid plans; storing them for segmentation and profile history is a separate choice. Events can still power live Journeys, conversion metrics and Liquid personalization without retained history. [Custom Event availability](https://documentation.onesignal.com/docs/en/custom-events).

Storage starts when an authorized user accepts its billing terms. Growth includes one million stored events across the organization; the overage rate is shown in the account. Billing reads the retained count at cycle close. Lowering retention can reduce that count after the overnight deletion runs. The maximum retention window is ninety days, and the feature is rolling out, so confirm availability in the actual app. [Storage billing and retention](https://documentation.onesignal.com/docs/en/custom-event-storage).

Choose retention from the decisions that need history. A seven-day inactivity segment, an immediate purchase trigger and a long-term warehouse report can require different storage arrangements. Do not keep every event in the messaging platform solely because it is available upstream.

OneSignal stores at most sixty events per user, event name and event-timestamp hour. Excess events are not reflected in stored-history segments; live event consumption is separate. A storage estimate should therefore use the retained population, while a segment test must prove that the required history exists. [Hourly storage limit](https://documentation.onesignal.com/docs/en/custom-event-storage).

Keep event storage and outbound Event Streams as separate budget lines. An event being accepted, stored, exported and used in a journey are different operations. Add the dashboard's actual rates and scope before calling the channel subtotal the complete OneSignal bill.

## Which changes can reduce cost without breaking the customer experience?

Fix unnecessary subscription creation, unwanted sends and unneeded history, while preserving consent, identity and useful messages. A lower count is valuable only if the intended customer journey still works.

### Review when the SDK creates a subscription

OneSignal's mobile SDK supports privacy controls for delaying initialization. Use them when they match the approved product and privacy flow. Treat the choice as an implementation decision with consequences for pre-login messaging, identity and data collection, rather than a switch to change solely because a bill increased. [Mobile SDK privacy controls](https://documentation.onesignal.com/docs/en/mobile-sdk-reference).

Test the states before consent or login, after approval, after logout and when a different person uses the same device. Confirm which notifications and in-app experiences remain available. A person-level login does not erase the separate device subscriptions used for billing.

### Remove records with an explicit lifecycle policy

Deleting active Mobile Subscriptions can lower paid-cycle MAU without immediately lowering the rolling Free cap. Deleting an email subscription does not erase past sends. [Deletion and billing](https://documentation.onesignal.com/docs/en/billing-faq).

Before deletion, identify the producer that could recreate the record, the history needed for support and the preference state that must survive. Do not restore an opted-out recipient through a cleanup import. Verify the post-change dashboard count and actual messaging eligibility separately.

### Separate environments and reduce unnecessary sends

Organizations manage billing across apps, and OneSignal supports separate environments and multiple organizations. Use that structure to keep development and production explicit; do not split production traffic merely to evade a plan limit. [Organizations and environments](https://documentation.onesignal.com/docs/en/apps-organizations).

For email, segment by relevant purpose and current eligibility, maintain invalid-address handling and review repeat sends. Bounces and most failures leaving OneSignal are billable. [Email usage](https://documentation.onesignal.com/docs/en/billing-faq).

Use [cross-journey frequency controls](https://www.martechdevs.com/blog/lifecycle-frequency-caps) to avoid repeated nudges and the [preference-centre design](https://www.martechdevs.com/blog/customer-preference-centre) to keep channel permissions explicit. Cost reduction should improve the quality of the programme rather than simply withholding a useful service message.

## Are there startup offers or free credits to include?

Use the Free plan for the scope it supports, and budget any additional promotion only after confirming eligibility, expiry and covered usage. A promotional headline can remain visible after its terms expire.

OneSignal's Shipaton offer covered eligible participants and new Growth subscriptions, but redemption ended on 30 September 2026 and its code expired for all users on 22 October 2026. It is not an available discount for a new forecast. [Shipaton terms](https://onesignal.com/shipaton).

The Messengers programme is an application-based advocacy arrangement, with participation obligations and advertised product benefits. It is not a generic startup price. Confirm acceptance and current allowance terms before including it in a budget. [Messengers programme](https://onesignal.com/messengers-program).

Keep the undiscounted operating case alongside any concession. If the economics only work while credits last, decide whether the future programme is valuable enough before building a dependency on it.

## When should you request an annual or custom proposal?

Request a scoped proposal when volume or a required capability exceeds the selected self-serve arrangement. OneSignal directs accounts above 50,000 mobile MAU to sales, and its plan table places Journey webhook steps on annual plans. [Volume guidance](https://documentation.onesignal.com/docs/en/billing-faq), [feature gates](https://onesignal.com/pricing).

| Situation | First option to evaluate | Runner-up | Evidence needed |
| --- | --- | --- | --- |
| Early product with a bounded mobile pilot | Free, if its current limits fit | Growth | Actual organization count and required journeys |
| Predictable mobile/web/email programme within Growth scope | Growth | Custom proposal if economics or controls justify it | Reconciled units and a peak-month budget |
| More complex orchestration or contract-level requirements | Professional or Enterprise proposal | A job-matched alternative | Required features, workload and operating ownership |
| Existing implementation has duplicated subscriptions or sends | Repair the current design | Migration after a complete comparison | Root cause and cost of preserving the necessary journeys |

Review the actual order before treating an annual arrangement as a flexible monthly subscription. OneSignal's Pro Terms give the Order Form precedence and preserve subscribed-period fees on convenience termination. They also provide for certain direct messaging-provider cost increases to pass through after notice. Those terms are distinct from ordinary Growth plan changes. [OneSignal Pro Terms](https://onesignal.com/proterms).

Use a written quote that lists channel units, billing windows, allowances, storage, Event Streams, support, commitment and changes permitted at renewal. A lower headline rate can be outweighed by a larger minimum commitment or a capability that requires another system.

## What must pass before you change the plan or implementation?

Reconcile the meter, test the customer effect and confirm the financial result before approving the change.

![Identify the plan and organization, then reconcile billable units and windows before forecasting. A plan that lacks required journey features returns to a scoped proposal and repeats the plan, unit and window checks. Any SDK, audience or retention change must pass customer and cost checks before release and monitoring.](https://www.martechdevs.com/assets/blog/onesignal-pricing.svg)

Diagram connections:

- Identify plan and organization scope to Billable units and windows reconcile?. 
- Billable units and windows reconcile? to Inspect subscriptions activity and invoice lines: No. 
- Inspect subscriptions activity and invoice lines to Identify plan and organization scope. 
- Billable units and windows reconcile? to Model required channels and peak usage: Yes. 
- Model required channels and peak usage to Selected plan supports the required journeys?. 
- Selected plan supports the required journeys? to Obtain scoped plan or alternative proposal: No. 
- Obtain scoped plan or alternative proposal to Identify plan and organization scope. 
- Selected plan supports the required journeys? to Test proposed SDK retention or audience change: Yes. 
- Test proposed SDK retention or audience change to Customer and cost checks pass?. 
- Customer and cost checks pass? to Hold change and repair the cause: No. 
- Customer and cost checks pass? to Release and monitor actual usage: Yes

## Checklist

- [ ] The actual plan and billing organization are recorded.
- [ ] Mobile subscriptions, web subscriptions and email sends are separate inputs.
- [ ] The paid billing window is not confused with Free-plan eligibility.
- [ ] The estimate includes required storage, Event Streams and other channels.
- [ ] Rounding, excluded lines and invoice differences are explainable.
- [ ] SDK and identity changes preserve the approved consent and customer flow.
- [ ] Deletion and retention do not remove necessary history or restore excluded recipients.
- [ ] Journey and feature gates fit the selected package.
- [ ] Promotional expiry and the second-year case are budgeted.
- [ ] The observed invoice and customer outcomes are checked after rollout.

If the count is hard to explain, start with the [$99 martech audit](https://www.martechdevs.com/pricing). A [scoped CRM and lifecycle implementation](https://www.martechdevs.com/crm-lifecycle#offer) can connect subscription identity, channel permissions and the budget to the journeys the product actually needs.

## Frequently asked questions

### Does sending fewer mobile push messages automatically reduce Growth's mobile charge?

No. The published mobile rate is based on the applicable active-subscription population, not the number of push messages sent. Fewer sends may improve the customer experience, but the audience meter can remain unchanged. Reconcile the counted subscriptions and required collection behaviour before forecasting savings, and keep web-push subscribers, email sends and stored events as separate commercial units.

### Can we subtract the Free mobile allowance after upgrading to Growth?

No. The Free-plan mobile limit is an eligibility boundary for that plan, not a published deductible allowance within Growth's mobile rate. Apply the paid rate to the relevant billable population and add the platform fee. Use the included email allowance only on the email line; mixing Free and paid entitlements produces an estimate that does not match the selected package.

### How much does OneSignal SMS cost?

OneSignal publishes no SMS or RCS price; both are quoted by its sales team. Its Pro Terms also let it pass carrier and provider costs through after notice. Budget SMS separately from the Growth plan's push and email rates, and ask for the per-message rate in every country you send to before you launch a campaign.

### Is OneSignal free?

Yes, for small apps. OneSignal's Free plan covers up to 1,000 mobile monthly active users per organization for push and in-app messages, 10,000 emails a month and web push to 10,000 subscribers per send. Above 1,000 mobile MAU you need Growth, which starts at USD 19 a month plus USD 0.012 per mobile MAU and USD 0.004 per web push subscriber.

### What should we compare before migrating to another notification platform?

Compare the complete customer workflow, billable units and migration effort. Include subscription identity, device registration, logout, permissions, deep links, failed delivery, in-app behaviour and reporting. A cheaper per-user headline can use a different denominator or leave integration work outside the subscription. Test the same synthetic cases in both finalists and include overlap, maintenance and any retained tools in the decision.

## Sources

1. [OneSignal: Pricing and plan features](https://onesignal.com/pricing).

2. [OneSignal: Free-plan changes](https://onesignal.com/blog/whats-changing-on-onesignals-free-plan/).

3. [OneSignal: Usage and billing](https://documentation.onesignal.com/docs/en/billing-faq).

4. [OneSignal: Subscription identities](https://documentation.onesignal.com/docs/en/subscriptions).

5. [OneSignal: Organizations and environments](https://documentation.onesignal.com/docs/en/apps-organizations).

6. [OneSignal: Pro Terms](https://onesignal.com/proterms).

7. [OneSignal: Custom Events](https://documentation.onesignal.com/docs/en/custom-events).

8. [OneSignal: Event storage and retention](https://documentation.onesignal.com/docs/en/custom-event-storage).

9. [OneSignal: Mobile SDK privacy controls](https://documentation.onesignal.com/docs/en/mobile-sdk-reference).

10. [OneSignal: Shipaton offer terms](https://onesignal.com/shipaton).

11. [OneSignal: Messengers programme](https://onesignal.com/messengers-program).
