From df30c3df864e785fc26058a4244b8134c759f10c Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Fri, 9 Jan 2026 09:34:09 +0000 Subject: [PATCH 1/9] Adding pricing examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds four worked pricing examples to help customers estimate costs for common use cases: - Livestream chat – high-concurrency event chat with batching (Chat) - Support chat – 1:1 customer support with consumption vs MAU comparison (Chat) - Data broadcast – one-to-many updates with conflation (Pub/Sub) - Realtime dashboard – many-to-few device monitoring (Pub/Sub) Each example includes assumptions, cost summary, message breakdown, and relevant optimisation notes (batching, conflation, etc). --- src/data/nav/platform.ts | 21 ++++++ .../pricing/examples/data-broadcast.mdx | 68 +++++++++++++++++ .../platform/pricing/examples/livestream.mdx | 72 ++++++++++++++++++ .../pricing/examples/realtime-dashboard.mdx | 73 +++++++++++++++++++ .../pricing/examples/support-chat.mdx | 68 +++++++++++++++++ 5 files changed, 302 insertions(+) create mode 100644 src/pages/docs/platform/pricing/examples/data-broadcast.mdx create mode 100644 src/pages/docs/platform/pricing/examples/livestream.mdx create mode 100644 src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx create mode 100644 src/pages/docs/platform/pricing/examples/support-chat.mdx diff --git a/src/data/nav/platform.ts b/src/data/nav/platform.ts index ce1a3b6682..5cbb4d0cc3 100644 --- a/src/data/nav/platform.ts +++ b/src/data/nav/platform.ts @@ -124,6 +124,27 @@ export default { link: '/docs/platform/pricing/limits', name: 'Limits', }, + { + name: 'Pricing examples', + pages: [ + { + link: '/docs/platform/pricing/examples/livestream', + name: 'Livestream chat', + }, + { + link: '/docs/platform/pricing/examples/support-chat', + name: 'Support chat', + }, + { + link: '/docs/platform/pricing/examples/data-broadcast', + name: 'Data broadcast', + }, + { + link: '/docs/platform/pricing/examples/realtime-dashboard', + name: 'Realtime dashboard', + }, + ], + }, { link: '/docs/platform/pricing/faqs', name: 'Pricing FAQs', diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx new file mode 100644 index 0000000000..f442737f98 --- /dev/null +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -0,0 +1,68 @@ +--- +title: Data broadcast +meta_description: "Calculate Pub/Sub pricing for live sports betting platforms delivering real-time odds updates. Example shows how message conflation reduces costs from $1,800 to $360/month for 10K users across 50 matches." +meta_keywords: "sports betting, live odds, real-time odds updates, message conflation, Pub/Sub pricing, betting platform, live sports data, odds streaming, realtime data delivery, Ably Pub/Sub pricing" +intro: "This Pub/Sub example demonstrates consumption-based pricing for a realtime data broadcast – a single source publishing frequent updates to many subscribers." +--- +For this example, we're using a sports betting scenario (odds updates → bettors), but the same pattern applies to any broadcast where only the latest value matters: stock tickers, live scores, auction platforms, transport arrivals, etc. + +### Assumptions +- 10,000 monthly active users +- 50 live matches per month +- 200 concurrent viewers per match +- 2-hour match duration +- 60-minute average session duration +- 10 raw odds updates per second from data provider +- Message conflation enabled (500ms interval) + + + +### Cost summary +The high-level cost breakdown for this scenario. Messages are billed for both inbound (published to Ably) and outbound (delivered to subscribers) – 147.6M messages = 3.6M inbound + 144M outbound. +| Item | Calculation | Cost | +|------|-------------|------| +| Messages (with conflation) | 147.6M × $2.50/M | $370 | +| Connection minutes | 2.4M × $1.00/M | $2.40 | +| Channel minutes | 4.8M × $1.00/M | $4.80 | +| Package fee | | [See plans](/pricing) | +| **Total** | | **~$377/month** | + +### Connection and channel minutes +How connection and channel minute costs are calculated. + +| Metric | Calculation | Monthly | Cost | +|--------|-------------|---------|------| +| Connection minutes | 10K users × 4 sessions × 60 mins | 2.4M | $2.40 | +| Channel minutes | 40K sessions × 60 mins × 2 channels | 4.8M | $4.80 | + + +### Why conflation, not batching? + +For live betting, message conflation is the right optimization because: + +- Old odds are semantically stale — batching would group outdated prices together +- Users need the latest price, not a history of price changes +- Conflation reduces both inbound and outbound message costs + +Use server-side batching instead when every message matters (e.g., chat, notifications). + + + +### Further optimization: Delta compression + +For richer payloads (full market depth, live statistics), delta compression can reduce bandwidth costs by sending only the difference between updates. + +| Payload type | Full size | With delta | Bandwidth reduction | +|--------------|-----------|------------|---------------------| +| Full market (10+ selections) | 8 KiB | ~2 KiB | 75% | +| Live stats + odds bundle | 15 KiB | ~4 KiB | 73% | + + \ No newline at end of file diff --git a/src/pages/docs/platform/pricing/examples/livestream.mdx b/src/pages/docs/platform/pricing/examples/livestream.mdx new file mode 100644 index 0000000000..bc2c5bd2a3 --- /dev/null +++ b/src/pages/docs/platform/pricing/examples/livestream.mdx @@ -0,0 +1,72 @@ +--- +title: Major livestream event +meta_description: "Calculate Ably Chat pricing for livestream events with high-concurrency chat. Example shows 25K concurrent viewers, message batching reducing costs by 95%, and total cost of ~$2,430 for a 1-hour major event." +meta_keywords: "livestream chat, high concurrency chat, message batching, chat pricing, realtime messaging, room reactions, chat moderation, event chat, scalable chat, Ably Chat pricing" +intro: "This Ably Chat example demonstrates consumption-based pricing for a major live event – thousands of viewers chatting simultaneously during a broadcast. Livestream chat involves high message velocity over a short duration, where batching is essential to manage costs at scale." +--- + +### Assumptions +The scale and features used in this calculation. +| Scale | Features | +|-------|----------| +| 25,000 concurrent viewers | ✓ Message batching (100ms window) | +| 1-hour event duration | ✓ Moderation (100% of messages) | +| 100 messages per second | ✓ Room reactions | +| 360,000 total messages | | +| 10,000 room reactions (burst pattern) | | + + + +### Cost summary +The high-level cost breakdown for this scenario. Messages are billed for both inbound (published to Ably) and outbound (delivered to subscribers) – a single message to 100 subscribers generates 101 billable messages. + +| Item | Calculation | Cost | +|------|-------------|------| +| Messages (with batching) | ~901M × $2.50/M | $2,252 | +| Room reactions (with batching) | ~70M × $2.50/M | ~$175 | +| Connection minutes | 1.5M mins × $1.00/M mins | $2 | +| Moderation (Ably) | ~360K msgs × 1 rule invocatio | $1 | +| Package fee | | [See plans](/pricing) | +| **Total** | | **~$2,430** | + + +### Message breakdown +How the message cost breaks down by type. + +| Type | Inbound | Outbound | Total | Cost | +|------|---------|----------|-------|------| +| Chat messages | 360K | 900M | 900.36M | $2,251 | +| Moderation* | 360K | — | 360K | $0.90 | +| Room reactions | 10K | 70M | 70.01M | $175 | +| **Total** | **730K** | **970M** | **970.73M** | **$2,427** | + + + +### Batching impact +How batching reduces costs at scale. Actual savings depend on your message patterns – bursty traffic batches more efficiently than steady streams. + +| Scenario | Cost | Messages | Savings | +|----------|------|----------|---------| +| Without batching | ~$22,500 | ~9B messages | — | +| With batching | ~$2,350 | ~900M messages | **$20,150** | + +### Room reactions calculation + +10,000 room reactions to 25,000 viewers would generate 250M outbound messages unbatched. + +With batching enabled and assuming 80% of reactions occur in bursts (during key moments), total outbound messages drop to ~70M: + +- **Burst reactions (80%):** 8,000 reactions batched into ~800 deliveries × 25K viewers = 20M messages +- **Individual reactions (20%):** 2,000 × 25K viewers = 50M messages + +**Total:** 70M messages × $2.50/M = **~$175** + + \ No newline at end of file diff --git a/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx b/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx new file mode 100644 index 0000000000..586525b004 --- /dev/null +++ b/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx @@ -0,0 +1,73 @@ +--- +title: Realtime dashboard +meta_description: "Calculate Pub/Sub pricing for healthcare patient monitoring dashboards. Example shows real-time vitals tracking for 100 patients monitored by 5 care coordinators, with total cost of ~$98/month including presence and history features." +meta_keywords: "healthcare dashboard, patient monitoring, real-time vitals, healthcare IoT, care coordination, patient monitoring devices, clinical dashboard, realtime healthcare data, Pub/Sub pricing, Ably healthcare" +intro: "This Pub/Sub example demonstrates consumption-based pricing for a realtime dashboard – many data sources publishing to a small number of viewers." +--- +For this example, we're using a healthcare scenario (patient vitals → care coordinators), but the same pattern applies to any dashboard with high inbound volume and low fan-out: IoT sensor monitoring, logistics tracking, infrastructure observability, etc. + +### Assumptions +The scale and features used in this calculation. + +| Scale | Features | +|-------|----------| +| 100 patients with home monitoring devices | ✓ Presence (shift handover visibility) | +| 5 care coordinators viewing dashboard | ✓ History retrieval (late joiners see recent readings) | +| 8-hour monitoring shifts, 22 days/month | | +| Vitals transmitted every 10 seconds (6 per minute) | | +| 15 clinical alerts per patient per day | | + +### Cost summary +The high-level cost breakdown for this scenario. + +| Item | Calculation | Cost | +|------|-------------|------| +| Messages | 38.24M × $2.50/M | $95.60 | +| Connection minutes | 1.11M × $1.00/M | $1.11 | +| Channel minutes | 1.11M × $1.00/M | $1.11 | +| Presence & history | ~6,600 messages | Less than $0.02 | +| Package fee | | [See plans](/pricing) | +| **Total** | | **~$98/month** | + +### Message breakdown +Patient devices transmit vitals (heart rate, SpO2, blood pressure) every 10 seconds, plus clinical alerts when readings breach thresholds. Each message is delivered to all 5 care coordinators subscribed to the monitoring channel. + +| Message type | Calculation | Monthly | +|--------------|-------------|---------| +| Vitals updates (inbound) | 100 patients × 6/min × 480 mins × 22 days | 6.34M | +| Clinical alerts (inbound) | 100 patients × 15/day × 22 days | 33K | +| **Total inbound** | | **6.37M** | +| Outbound to care team | 6.37M × 5 coordinators | 31.87M | +| **Total messages** | | **38.24M** | + +**Message cost:** 38.24M × $2.50/M = **$95.60** + +### Connection and channel minutes +How connection and channel minute costs are calculated. + +| Metric | Calculation | Monthly | Cost | +|--------|-------------|---------|------| +| Patient device connections | 100 × 8 hrs × 22 days × 60 mins | 1.06M | $1.06 | +| Care coordinator connections | 5 × 8 hrs × 22 days × 60 mins | 52.8K | $0.05 | +| **Total connection minutes** | | **1.11M** | **$1.11** | +| Channel minutes | 105 users × 8 hrs × 22 days × 60 mins | 1.11M | $1.11 | + +### Presence and history + +These features add negligible cost at this scale but provide important clinical functionality. Presence shows which coordinators are actively monitoring during shift changes, while history lets late joiners see recent readings. + +| Feature | Calculation | Monthly messages | +|---------|-------------|------------------| +| Presence events | 5 coordinators × 2 events × 22 days | 220 inbound | +| Presence fan-out | 220 × 4 other coordinators | 880 outbound | +| History retrieval | 5 coordinators × 1 request/shift × 22 days × 50 msgs | 5,500 | +| **Total** | | **~6,600** | + +**Total cost:** ~6,600 messages × $2.50/M = **~$0.02** + + + diff --git a/src/pages/docs/platform/pricing/examples/support-chat.mdx b/src/pages/docs/platform/pricing/examples/support-chat.mdx new file mode 100644 index 0000000000..9edf628cc0 --- /dev/null +++ b/src/pages/docs/platform/pricing/examples/support-chat.mdx @@ -0,0 +1,68 @@ +--- +title: Enterprise Support Chat +meta_description: "Calculate Ably Chat pricing for enterprise customer support chat. Example shows 50K MAU, one-to-one messaging, and why consumption pricing at ~$78/month outperforms MAU pricing at $2,500/month for support use cases." +meta_keywords: "support chat, customer support, enterprise chat, one-to-one messaging, chat pricing, MAU pricing, consumption pricing, support agent chat, customer service chat, Ably Chat pricing" +intro: "This Ably Chat example demonstrates consumption-based pricing for enterprise customer support – one-to-one conversations between agents and customers. Support chat typically involves brief, infrequent sessions, making consumption-based pricing significantly more cost-effective than MAU pricing for this pattern." +--- + +### Assumptions +The scale and features used in this calculation. + +| Scale | Features | +|-------|----------| +| 50,000 MAU (customers) | ✓ Typing indicators | +| 300 support agents | ✓ Presence | +| 5 conversations per customer/month (250,000 total) | ✓ History retrieval (20% of conversations, 50 messages each) | +| 20 messages per conversation | | +| 15 typing events per conversation | | +| 4 presence events per conversation | | +| 20-minute average conversation | | + +### Cost summary +The high-level cost breakdown for this scenario. + +| Item | Calculation | Cost | +|------|-------------|------| +| Messages | 27M × $2.50/M | $67.50 | +| Connection minutes | 5.53M × $1.00/M | $5.53 | +| Channel minutes | 5M × $1.00/M | $5.00 | +| Package fee | | [See plans](/pricing) | +| **Total (Consumption)** | | **~$78/month** | + + +### Message breakdown +How the message cost breaks down by feature. Batching has minimal impact in 1:1 chat since there's only one recipient per message – batching benefits scale with room size. + +| Feature | Events | Inbound | Outbound | Total messages | +|---------|--------|---------|----------|----------------| +| Chat messages | 5,000,000 | 5,000,000 | 10,000,000 | 15,000,000 | +| Typing indicators | 3,750,000 | 3,750,000 | 3,750,000 | 7,500,000 | +| Presence | 1,000,000 | 1,000,000 | 1,000,000 | 2,000,000 | +| History retrieval | 50,000 requests | — | 2,500,000 | 2,500,000 | +| **Total** | | | | **27,000,000** | + +**Message cost:** 27M × $2.50/M = **$67.50** + +### Connection and channel minutes +How connection and channel minute costs are calculated. + +| Type | Calculation | Minutes | Cost | +|------|-------------|---------|------| +| Customer connections | 250K conversations × 20 mins | 5,000,000 | $5.00 | +| Agent connections | 300 agents × avg 80 mins/day × 22 days | 528,000 | $0.53 | +| Channel minutes | 250K conversations × 20 mins | 5,000,000 | $5.00 | + +### Consumption vs MAU comparison +Consumption-based pricing works better for support chat because customers connect briefly and infrequently, using far less than the MAU allowances (20K messages, 2K connection minutes). + +| Model | Calculation | Monthly cost | +|-------|-------------|--------------| +| Consumption-based | As above | ~$78 | +| MAU pricing | 50,000 MAU × $0.05 | $2,500 | + + + From 5b0a9bb4461148593b452b46d0a91e883040802c Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Wed, 14 Jan 2026 14:20:51 +0000 Subject: [PATCH 2/9] Update src/pages/docs/platform/pricing/examples/data-broadcast.mdx Co-authored-by: Mark Hulbert <39801222+m-hulbert@users.noreply.github.com> --- src/pages/docs/platform/pricing/examples/data-broadcast.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx index f442737f98..dd5fb95782 100644 --- a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -2,7 +2,7 @@ title: Data broadcast meta_description: "Calculate Pub/Sub pricing for live sports betting platforms delivering real-time odds updates. Example shows how message conflation reduces costs from $1,800 to $360/month for 10K users across 50 matches." meta_keywords: "sports betting, live odds, real-time odds updates, message conflation, Pub/Sub pricing, betting platform, live sports data, odds streaming, realtime data delivery, Ably Pub/Sub pricing" -intro: "This Pub/Sub example demonstrates consumption-based pricing for a realtime data broadcast – a single source publishing frequent updates to many subscribers." +intro: "This example uses consumption-based pricing for a realtime data broadcast use case, where a single source is publishing frequent updates to many subscribers using Ably Pub/Sub." --- For this example, we're using a sports betting scenario (odds updates → bettors), but the same pattern applies to any broadcast where only the latest value matters: stock tickers, live scores, auction platforms, transport arrivals, etc. From 9911d46b57201d4e7734e20a1b7d04c2cd294d49 Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Wed, 14 Jan 2026 14:38:12 +0000 Subject: [PATCH 3/9] Update src/pages/docs/platform/pricing/examples/data-broadcast.mdx Co-authored-by: Mark Hulbert <39801222+m-hulbert@users.noreply.github.com> --- src/pages/docs/platform/pricing/examples/data-broadcast.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx index dd5fb95782..17f1ff40f3 100644 --- a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -30,7 +30,7 @@ The high-level cost breakdown for this scenario. Messages are billed for both in | **Total** | | **~$377/month** | ### Connection and channel minutes -How connection and channel minute costs are calculated. +The following table shows how connection and channel minute costs are calculated in this example: | Metric | Calculation | Monthly | Cost | |--------|-------------|---------|------| From f3dd12a302094f04092bb0abaab44a14b7170f45 Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Wed, 14 Jan 2026 14:43:43 +0000 Subject: [PATCH 4/9] Update src/pages/docs/platform/pricing/examples/data-broadcast.mdx Co-authored-by: Mark Hulbert <39801222+m-hulbert@users.noreply.github.com> --- src/pages/docs/platform/pricing/examples/data-broadcast.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx index 17f1ff40f3..3323d5fcdb 100644 --- a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -40,7 +40,7 @@ The following table shows how connection and channel minute costs are calculated ### Why conflation, not batching? -For live betting, message conflation is the right optimization because: +For live betting, [message conflation](/docs/messages#conflation) is the right optimization because: - Old odds are semantically stale — batching would group outdated prices together - Users need the latest price, not a history of price changes From 853b58b3200f8441ff3294dd2f29c9f05500b169 Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Wed, 14 Jan 2026 14:47:50 +0000 Subject: [PATCH 5/9] Update src/pages/docs/platform/pricing/examples/support-chat.mdx Co-authored-by: Mark Hulbert <39801222+m-hulbert@users.noreply.github.com> --- src/pages/docs/platform/pricing/examples/support-chat.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/platform/pricing/examples/support-chat.mdx b/src/pages/docs/platform/pricing/examples/support-chat.mdx index 9edf628cc0..e33aaf1561 100644 --- a/src/pages/docs/platform/pricing/examples/support-chat.mdx +++ b/src/pages/docs/platform/pricing/examples/support-chat.mdx @@ -53,7 +53,7 @@ How connection and channel minute costs are calculated. | Channel minutes | 250K conversations × 20 mins | 5,000,000 | $5.00 | ### Consumption vs MAU comparison -Consumption-based pricing works better for support chat because customers connect briefly and infrequently, using far less than the MAU allowances (20K messages, 2K connection minutes). +Consumption-based pricing works better for support chat because customers connect briefly and infrequently, using far less than the Monthly Active User (MAU) allowances which are 20,000 messages and 2,000 connection minutes. | Model | Calculation | Monthly cost | |-------|-------------|--------------| From 5749b76f82280708e705cb11b6450ee04dd3306d Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Wed, 14 Jan 2026 15:27:41 +0000 Subject: [PATCH 6/9] Update src/pages/docs/platform/pricing/examples/data-broadcast.mdx Co-authored-by: Mark Hulbert <39801222+m-hulbert@users.noreply.github.com> --- src/pages/docs/platform/pricing/examples/data-broadcast.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx index 3323d5fcdb..1668bc585f 100644 --- a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -54,7 +54,7 @@ Without conflation: 723.6M messages = ~$1,809/month (80% savings). ### Further optimization: Delta compression -For richer payloads (full market depth, live statistics), delta compression can reduce bandwidth costs by sending only the difference between updates. +For richer payloads such as full market depth or live statistics, [delta compression](/docs/channels/options/deltas) can reduce bandwidth costs by sending only the difference between updates. | Payload type | Full size | With delta | Bandwidth reduction | |--------------|-----------|------------|---------------------| From 962d1175588c8ecfe57e48682637cbac00b51612 Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Thu, 15 Jan 2026 11:40:51 +0000 Subject: [PATCH 7/9] Update src/pages/docs/platform/pricing/examples/livestream.mdx Co-authored-by: Paddy Byers --- src/pages/docs/platform/pricing/examples/livestream.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/platform/pricing/examples/livestream.mdx b/src/pages/docs/platform/pricing/examples/livestream.mdx index bc2c5bd2a3..1390d05fee 100644 --- a/src/pages/docs/platform/pricing/examples/livestream.mdx +++ b/src/pages/docs/platform/pricing/examples/livestream.mdx @@ -27,7 +27,7 @@ The high-level cost breakdown for this scenario. Messages are billed for both in | Messages (with batching) | ~901M × $2.50/M | $2,252 | | Room reactions (with batching) | ~70M × $2.50/M | ~$175 | | Connection minutes | 1.5M mins × $1.00/M mins | $2 | -| Moderation (Ably) | ~360K msgs × 1 rule invocatio | $1 | +| Moderation (Ably) | ~360K msgs × 1 rule invocation | $1 | | Package fee | | [See plans](/pricing) | | **Total** | | **~$2,430** | From 46969ec7b60df6d4148dec8050f2d763191b39b3 Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Fri, 16 Jan 2026 11:30:02 +0000 Subject: [PATCH 8/9] Implemented feedback on pricing examples Made several fixes to the pricing examples based on feedback. - Updated the intro texts to be tied more closely to the technical use case (eg data broadcast) vs the specific use case (eg live sports betting) - Added "pricing example" to all titles - Updated titles to use ## instead of ### - Ensured all messaging is in the second person perspective. - Added a message breakdown to the data broadcast example - Added some additional text to the "further reading section" to ensure bullets load correctly. - Added some bridge text between Assumption & the Cost Summary to make the Cost Summary more clear on where the figures come from. - Other minor amendments such as correcting rounding. --- .tool-versions | 2 +- .../pricing/examples/data-broadcast.mdx | 36 +++++++++----- .../platform/pricing/examples/livestream.mdx | 47 ++++++++++--------- .../pricing/examples/realtime-dashboard.mdx | 32 +++++++------ .../pricing/examples/support-chat.mdx | 17 ++++--- 5 files changed, 77 insertions(+), 57 deletions(-) diff --git a/.tool-versions b/.tool-versions index c21f78518e..904bd54bc8 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,3 @@ ruby 3.4.5 nodejs 22.19.0 -yarn 1.22.19 \ No newline at end of file +yarn 1.22.22 \ No newline at end of file diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx index f442737f98..44aa55d031 100644 --- a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -1,12 +1,12 @@ --- -title: Data broadcast -meta_description: "Calculate Pub/Sub pricing for live sports betting platforms delivering real-time odds updates. Example shows how message conflation reduces costs from $1,800 to $360/month for 10K users across 50 matches." -meta_keywords: "sports betting, live odds, real-time odds updates, message conflation, Pub/Sub pricing, betting platform, live sports data, odds streaming, realtime data delivery, Ably Pub/Sub pricing" +title: Data broadcast pricing example +meta_description: "A pricing example that uses Ably Pub/Sub for data broadcast. Example shows how message conflation reduces message costs from ~$1,800 to ~$370/month for 10K users across 50 matches." +meta_keywords: "sports betting, live odds, realtime odds updates, message conflation, Pub/Sub pricing, betting platform, live sports data, odds streaming, realtime data delivery, Ably Pub/Sub pricing" intro: "This Pub/Sub example demonstrates consumption-based pricing for a realtime data broadcast – a single source publishing frequent updates to many subscribers." --- -For this example, we're using a sports betting scenario (odds updates → bettors), but the same pattern applies to any broadcast where only the latest value matters: stock tickers, live scores, auction platforms, transport arrivals, etc. +This example uses a sports betting scenario where odds are updated and fanned out to bettors. The same pattern applies to any broadcast where only the latest value matters, such as stock tickers, live scores, auction platforms and transport arrivals. -### Assumptions +## Assumptions - 10,000 monthly active users - 50 live matches per month - 200 concurrent viewers per match @@ -15,21 +15,32 @@ For this example, we're using a sports betting scenario (odds updates → bettor - 10 raw odds updates per second from data provider - Message conflation enabled (500ms interval) +These assumptions generate 147.6M messages, 2.4M connection minutes, and 4.8M channel minutes. + -### Cost summary +## Cost summary The high-level cost breakdown for this scenario. Messages are billed for both inbound (published to Ably) and outbound (delivered to subscribers) – 147.6M messages = 3.6M inbound + 144M outbound. | Item | Calculation | Cost | |------|-------------|------| -| Messages (with conflation) | 147.6M × $2.50/M | $370 | +| Messages (with conflation) | 147.6M × $2.50/M | $369 | | Connection minutes | 2.4M × $1.00/M | $2.40 | | Channel minutes | 4.8M × $1.00/M | $4.80 | | Package fee | | [See plans](/pricing) | | **Total** | | **~$377/month** | -### Connection and channel minutes +## Message breakdown +How the message total is calculated. Conflation reduces outbound delivery from 10 updates/sec to 2 updates/sec (500ms interval). +| Item | Calculation | Messages | +|------|-------------|------| +| Inbound (from data provider) | 10 updates/sec × 7,200 sec × 50 matches | 3.6M | +| Outbound (to viewers, with conflation) | 2 updates/sec × 7,200 sec × 200 viewers × 50 matches | 144M | +| **Total** | | **147.6M** | + + +## Connection and channel minutes How connection and channel minute costs are calculated. | Metric | Calculation | Monthly | Cost | @@ -38,7 +49,7 @@ How connection and channel minute costs are calculated. | Channel minutes | 40K sessions × 60 mins × 2 channels | 4.8M | $4.80 | -### Why conflation, not batching? +## Why conflation, not batching? For live betting, message conflation is the right optimization because: @@ -49,10 +60,10 @@ For live betting, message conflation is the right optimization because: Use server-side batching instead when every message matters (e.g., chat, notifications). -### Further optimization: Delta compression +## Further optimization: Delta compression For richer payloads (full market depth, live statistics), delta compression can reduce bandwidth costs by sending only the difference between updates. @@ -62,7 +73,8 @@ For richer payloads (full market depth, live statistics), delta compression can | Live stats + odds bundle | 15 KiB | ~4 KiB | 73% | \ No newline at end of file diff --git a/src/pages/docs/platform/pricing/examples/livestream.mdx b/src/pages/docs/platform/pricing/examples/livestream.mdx index bc2c5bd2a3..edf51a46e5 100644 --- a/src/pages/docs/platform/pricing/examples/livestream.mdx +++ b/src/pages/docs/platform/pricing/examples/livestream.mdx @@ -1,60 +1,60 @@ --- -title: Major livestream event +title: Major livestream event pricing example meta_description: "Calculate Ably Chat pricing for livestream events with high-concurrency chat. Example shows 25K concurrent viewers, message batching reducing costs by 95%, and total cost of ~$2,430 for a 1-hour major event." meta_keywords: "livestream chat, high concurrency chat, message batching, chat pricing, realtime messaging, room reactions, chat moderation, event chat, scalable chat, Ably Chat pricing" intro: "This Ably Chat example demonstrates consumption-based pricing for a major live event – thousands of viewers chatting simultaneously during a broadcast. Livestream chat involves high message velocity over a short duration, where batching is essential to manage costs at scale." --- -### Assumptions +## Assumptions The scale and features used in this calculation. | Scale | Features | |-------|----------| -| 25,000 concurrent viewers | ✓ Message batching (100ms window) | -| 1-hour event duration | ✓ Moderation (100% of messages) | -| 100 messages per second | ✓ Room reactions | -| 360,000 total messages | | -| 10,000 room reactions (burst pattern) | | +| 1-hour event duration | ✓ Message batching (100ms window) | +| 100 messages per second | ✓ Moderation (100% of messages) | +| 360,000 messages sent → ~900M delivered (with batching) | ✓ Room reactions | +| 10,000 room reactions → ~70M delivered (with batching) | | +| 25,000 viewers × 1 hour = 1.5M connection minutes | | -### Cost summary +## Cost summary The high-level cost breakdown for this scenario. Messages are billed for both inbound (published to Ably) and outbound (delivered to subscribers) – a single message to 100 subscribers generates 101 billable messages. | Item | Calculation | Cost | |------|-------------|------| -| Messages (with batching) | ~901M × $2.50/M | $2,252 | -| Room reactions (with batching) | ~70M × $2.50/M | ~$175 | -| Connection minutes | 1.5M mins × $1.00/M mins | $2 | -| Moderation (Ably) | ~360K msgs × 1 rule invocatio | $1 | +| Messages (with batching) | 900M × $2.50/M | $2,250 | +| Room reactions (with batching) | 70M × $2.50/M | $175 | +| Connection minutes | 1.5M mins × $1.00/M mins | $1.50 | +| Moderation (Ably) | ~360K msgs × 1 rule invocation | $1 | | Package fee | | [See plans](/pricing) | -| **Total** | | **~$2,430** | +| **Total** | | **~$2,428** | -### Message breakdown +## Message breakdown How the message cost breaks down by type. | Type | Inbound | Outbound | Total | Cost | |------|---------|----------|-------|------| -| Chat messages | 360K | 900M | 900.36M | $2,251 | -| Moderation* | 360K | — | 360K | $0.90 | +| Chat messages | 360K | 900M | 900.36M | $2,250 | | Room reactions | 10K | 70M | 70.01M | $175 | -| **Total** | **730K** | **970M** | **970.73M** | **$2,427** | +| Moderation* | 360K | — | 360K | ~$1 | +| **Message costs** | **730K** | **970M** | **970.73M** | **$2,426** | -### Batching impact +## Batching impact How batching reduces costs at scale. Actual savings depend on your message patterns – bursty traffic batches more efficiently than steady streams. | Scenario | Cost | Messages | Savings | |----------|------|----------|---------| -| Without batching | ~$22,500 | ~9B messages | — | -| With batching | ~$2,350 | ~900M messages | **$20,150** | +| Without batching | $22,500 | 9B messages | — | +| With batching | $2,250 | 900M messages | **$20,250** | -### Room reactions calculation +## Room reactions calculation 10,000 room reactions to 25,000 viewers would generate 250M outbound messages unbatched. @@ -63,10 +63,11 @@ With batching enabled and assuming 80% of reactions occur in bursts (during key - **Burst reactions (80%):** 8,000 reactions batched into ~800 deliveries × 25K viewers = 20M messages - **Individual reactions (20%):** 2,000 × 25K viewers = 50M messages -**Total:** 70M messages × $2.50/M = **~$175** +**Total:** 70M messages × $2.50/M = **$175** \ No newline at end of file diff --git a/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx b/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx index 586525b004..2e4543b0a3 100644 --- a/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx +++ b/src/pages/docs/platform/pricing/examples/realtime-dashboard.mdx @@ -1,12 +1,13 @@ --- -title: Realtime dashboard -meta_description: "Calculate Pub/Sub pricing for healthcare patient monitoring dashboards. Example shows real-time vitals tracking for 100 patients monitored by 5 care coordinators, with total cost of ~$98/month including presence and history features." -meta_keywords: "healthcare dashboard, patient monitoring, real-time vitals, healthcare IoT, care coordination, patient monitoring devices, clinical dashboard, realtime healthcare data, Pub/Sub pricing, Ably healthcare" +title: Realtime dashboard pricing example +meta_description: "Calculate Pub/Sub pricing for healthcare patient monitoring dashboards. Example shows realtime vitals tracking for 100 patients monitored by 5 care coordinators, with total cost of ~$98/month including presence and history features." +meta_keywords: "healthcare dashboard, patient monitoring, realtime vitals, healthcare IoT, care coordination, patient monitoring devices, clinical dashboard, realtime healthcare data, Pub/Sub pricing, Ably healthcare" intro: "This Pub/Sub example demonstrates consumption-based pricing for a realtime dashboard – many data sources publishing to a small number of viewers." --- -For this example, we're using a healthcare scenario (patient vitals → care coordinators), but the same pattern applies to any dashboard with high inbound volume and low fan-out: IoT sensor monitoring, logistics tracking, infrastructure observability, etc. +This example uses a healthcare scenario, sending patient vitals to care coordinators. The same pattern applies to any dashboard with high inbound volume and low fan-out, such as IoT sensor monitoring, logistics tracking, infrastructure observability, and more. -### Assumptions + +## Assumptions The scale and features used in this calculation. | Scale | Features | @@ -17,19 +18,21 @@ The scale and features used in this calculation. | Vitals transmitted every 10 seconds (6 per minute) | | | 15 clinical alerts per patient per day | | -### Cost summary +These assumptions generate 38.21M messages, 1.11M connection minutes, and 1.11M channel minutes. + +## Cost summary The high-level cost breakdown for this scenario. | Item | Calculation | Cost | |------|-------------|------| -| Messages | 38.24M × $2.50/M | $95.60 | +| Messages | 38.21M × $2.50/M | $95.53 | | Connection minutes | 1.11M × $1.00/M | $1.11 | | Channel minutes | 1.11M × $1.00/M | $1.11 | | Presence & history | ~6,600 messages | Less than $0.02 | | Package fee | | [See plans](/pricing) | | **Total** | | **~$98/month** | -### Message breakdown +## Message breakdown Patient devices transmit vitals (heart rate, SpO2, blood pressure) every 10 seconds, plus clinical alerts when readings breach thresholds. Each message is delivered to all 5 care coordinators subscribed to the monitoring channel. | Message type | Calculation | Monthly | @@ -37,12 +40,12 @@ Patient devices transmit vitals (heart rate, SpO2, blood pressure) every 10 seco | Vitals updates (inbound) | 100 patients × 6/min × 480 mins × 22 days | 6.34M | | Clinical alerts (inbound) | 100 patients × 15/day × 22 days | 33K | | **Total inbound** | | **6.37M** | -| Outbound to care team | 6.37M × 5 coordinators | 31.87M | -| **Total messages** | | **38.24M** | +| Outbound to care team | 6.37M × 5 coordinators | 31.85M | +| **Total messages** | | **38.21M** | -**Message cost:** 38.24M × $2.50/M = **$95.60** +**Message cost:** 38.21M × $2.50/M = **$95.53** -### Connection and channel minutes +## Connection and channel minutes How connection and channel minute costs are calculated. | Metric | Calculation | Monthly | Cost | @@ -52,7 +55,7 @@ How connection and channel minute costs are calculated. | **Total connection minutes** | | **1.11M** | **$1.11** | | Channel minutes | 105 users × 8 hrs × 22 days × 60 mins | 1.11M | $1.11 | -### Presence and history +## Presence and history These features add negligible cost at this scale but provide important clinical functionality. Presence shows which coordinators are actively monitoring during shift changes, while history lets late joiners see recent readings. @@ -66,7 +69,8 @@ These features add negligible cost at this scale but provide important clinical **Total cost:** ~6,600 messages × $2.50/M = **~$0.02** diff --git a/src/pages/docs/platform/pricing/examples/support-chat.mdx b/src/pages/docs/platform/pricing/examples/support-chat.mdx index 9edf628cc0..caa26e2371 100644 --- a/src/pages/docs/platform/pricing/examples/support-chat.mdx +++ b/src/pages/docs/platform/pricing/examples/support-chat.mdx @@ -1,11 +1,11 @@ --- -title: Enterprise Support Chat +title: Enterprise support chat pricing example meta_description: "Calculate Ably Chat pricing for enterprise customer support chat. Example shows 50K MAU, one-to-one messaging, and why consumption pricing at ~$78/month outperforms MAU pricing at $2,500/month for support use cases." meta_keywords: "support chat, customer support, enterprise chat, one-to-one messaging, chat pricing, MAU pricing, consumption pricing, support agent chat, customer service chat, Ably Chat pricing" intro: "This Ably Chat example demonstrates consumption-based pricing for enterprise customer support – one-to-one conversations between agents and customers. Support chat typically involves brief, infrequent sessions, making consumption-based pricing significantly more cost-effective than MAU pricing for this pattern." --- -### Assumptions +## Assumptions The scale and features used in this calculation. | Scale | Features | @@ -18,7 +18,9 @@ The scale and features used in this calculation. | 4 presence events per conversation | | | 20-minute average conversation | | -### Cost summary +These assumptions generate 27M messages, 5.53M connection minutes, and 5M channel minutes. + +## Cost summary The high-level cost breakdown for this scenario. | Item | Calculation | Cost | @@ -30,7 +32,7 @@ The high-level cost breakdown for this scenario. | **Total (Consumption)** | | **~$78/month** | -### Message breakdown +## Message breakdown How the message cost breaks down by feature. Batching has minimal impact in 1:1 chat since there's only one recipient per message – batching benefits scale with room size. | Feature | Events | Inbound | Outbound | Total messages | @@ -43,7 +45,7 @@ How the message cost breaks down by feature. Batching has minimal impact in 1:1 **Message cost:** 27M × $2.50/M = **$67.50** -### Connection and channel minutes +## Connection and channel minutes How connection and channel minute costs are calculated. | Type | Calculation | Minutes | Cost | @@ -52,7 +54,7 @@ How connection and channel minute costs are calculated. | Agent connections | 300 agents × avg 80 mins/day × 22 days | 528,000 | $0.53 | | Channel minutes | 250K conversations × 20 mins | 5,000,000 | $5.00 | -### Consumption vs MAU comparison +## Consumption vs MAU comparison Consumption-based pricing works better for support chat because customers connect briefly and infrequently, using far less than the MAU allowances (20K messages, 2K connection minutes). | Model | Calculation | Monthly cost | @@ -62,7 +64,8 @@ Consumption-based pricing works better for support chat because customers connec From 54c0cdeb7b01928a9d44eda7369344b274464a93 Mon Sep 17 00:00:00 2001 From: JamieAbly Date: Wed, 21 Jan 2026 16:42:58 +0000 Subject: [PATCH 9/9] Pricing examples formatting fixes Updated the formatting in the docs for the pricing examples: - Now use full numbers (e.g. 2,000,00 instead of 2M) - Added links to the numbers in the connecting block of text between "Assumptions" and "Cost summary" - Improved markdown formatting for readability - Updated "See plans" links to /docs/platform/pricing --- .../pricing/examples/data-broadcast.mdx | 37 +++++++------ .../platform/pricing/examples/livestream.mdx | 46 +++++++++------- .../pricing/examples/realtime-dashboard.mdx | 55 +++++++++++-------- .../pricing/examples/support-chat.mdx | 32 +++++++---- 4 files changed, 97 insertions(+), 73 deletions(-) diff --git a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx index 94d1fa3b21..894c521e47 100644 --- a/src/pages/docs/platform/pricing/examples/data-broadcast.mdx +++ b/src/pages/docs/platform/pricing/examples/data-broadcast.mdx @@ -7,6 +7,7 @@ intro: "This Pub/Sub example demonstrates consumption-based pricing for a realti This example uses a sports betting scenario where odds are updated and fanned out to bettors. The same pattern applies to any broadcast where only the latest value matters, such as stock tickers, live scores, auction platforms and transport arrivals. ## Assumptions + - 10,000 monthly active users - 50 live matches per month - 200 concurrent viewers per match @@ -15,7 +16,10 @@ This example uses a sports betting scenario where odds are updated and fanned ou - 10 raw odds updates per second from data provider - Message conflation enabled (500ms interval) -These assumptions generate 147.6M messages, 2.4M connection minutes, and 4.8M channel minutes. +These assumptions generate: +- [147,600,000 messages](#messages) +- [2,400,000 connection minutes](#minutes) +- [4,800,000 channel minutes](#minutes)