<!-- llms-explorer concept facts · https://llms-explorer.com/tree/analytics-node-cost-model/ · pack 2026-10-02 · ~10931 tokens -->

# Analytics Node Cost Model

> Depth-first rabbithole dossier for Analytics Node Cost Model; source-anchored research pack.

Parent: [MongoDB Atlas Analytics Node](https://llms-explorer.com/tree/mongodb-atlas-analytics-node/) · 6 facets · 62 facts · page: https://llms-explorer.com/tree/analytics-node-cost-model/

## Structure and components

- 23. Before 2022-08-03, analytics nodes "used the same cluster tier as all other nodes." The only cost lever was analytics node count, and scaling analytics capacity meant scaling the whole cluster. — https://www.mongodb.com/company/blog/product-release-announcements/introducing-ability-independently-scale-atlas-analytics-node-tiers 24. On 2022-08-03, MongoDB introduced independent analytics node tiers, which can be larger or smaller than the operational nodes. MongoDB framed this as a cost lever: "Scaling up the entire cluster tier would be costly, but scaling up just your analytics node tiers — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#evolution`
- 1. Atlas charges by the hour for MongoDB clusters. https://www.mongodb.com/docs/atlas/billing/ 2. Atlas charges the cluster cost and the data storage cost for each data-bearing node in the cluster. For a replica set, the number of data-bearing nodes equals the replication factor. https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs.md 3. A cluster tier chosen on the Analytics Tier tab costs the same as the same tier chosen on the Base Tier tab. If the analytics tier is higher or lower than the base tier, "the price adjusts accordingly on a prorated per-node basis." https://ww — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#billing-unit-and-rate`
- 35. Atlas Infinite meters compute per "HA shard," a two-node billing unit (primary + standby). It also meters any additional nodes you add. https://www.mongodb.com/docs/atlas/billing/atlas-infinite-costs.md 36. On Infinite, all compute nodes, including analytical nodes, share one managed storage layer. Atlas bills storage per GB-hour of uncompressed logical data, separately from compute. https://www.mongodb.com/docs/atlas/billing/atlas-infinite-costs.md 37. **[delta] Inference from claims 35 and 36:** on Infinite, an analytics node adds compute cost only. It does not duplicate storage cost, wh — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#atlas-infinite-public-preview-a-different-cost-mechanism`
- 43. Infinite bills compute per "HA shard", a 2-node unit (primary + standby), plus "any additional nodes". Analytics nodes fall under the additional nodes. It supports M10–M60 General and M40–M60 Low-CPU, in a single AWS region. https://www.mongodb.com/docs/atlas/billing/atlas-infinite-costs/ [M,H,E] 44. Storage on Infinite is one shared layer billed per GB-hour of uncompressed logical data, and replication inside that layer is free. An analytics node adds compute only. https://www.mongodb.com/docs/atlas/billing/atlas-infinite-costs/ [M,H,E] 45. Infinite bills compute for provisioned nodes eve — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#h-atlas-infinite-public-preview-inverts-the-storage-term`

## How it works

- 40. Before 2022-08-03, analytics nodes had to use the cluster's tier, so node count was the only lever. Independent tiers were announced 2022-08-03 and updated 2022-08-23 (authors Gates-George and Berenberg). The post says: "Scaling up the entire cluster tier would be costly…" https://www.mongodb.com/company/blog/product-release-announcements/introducing-ability-independently-scale-atlas-analytics-node-tiers [H,E] 41. The BI Connector daily uplift reached end of life in September 2026. Any cost model that still includes it is out of date. https://www.mongodb.com/docs/atlas/billing/cluster-conf — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#g-history-and-retired-cost-terms`
- 28. If analytics clients use `readPreference=secondaryPreferred` with `nodeType:ANALYTICS` tags, reads fall back to the primary when no analytics node matches. A production team saw this push the primary into degradation and failover. The analytics spend then bought no isolation. The fix is `readPreference=secondary`. — https://pmclain.com/mongodb/2022/09/28/fun-with-mongodb-atlas-analytics-nodes.html (shared-source cache; inherited host, not counted toward the gate) 29. The BI Connector for Atlas was billed as a daily uplift on the cluster cost. It reached end of life in September 2026. Cost — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#f-hidden-cost-failure-mode`
- **Scope.** This covers how Atlas bills an analytics node: compute, storage and IOPS, data transfer, auto-scaling, the effect of topology, and the Infinite edition. Routing, read preference, BI tools, Search Nodes and general Atlas pricing are left out. Parent claims are not restated. Report tags: [M] mechanism, [H] history, [E] edge cases, [P] practice. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md`
- 38. An analytics tier set "significantly below" the base tier can cause replication lag, and the node "might fall off the oplog altogether." Recovering it means a resync. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ [M,H,E,P] 39. The savings comparison holds for compute only. Storage/IOPS parity (16), the disk-size tier floor (19), the NVMe lock (20) and oplog fall-off (38) can bring the savings close to zero. [E] — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#f-failure-modes-that-cancel-the-savings`

## Measurements and reference values

- 25. Analytics nodes have their own compute auto-scaling bounds (`analyticsAutoScaling.compute.minInstanceSize` / `maxInstanceSize`). https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ 26. Atlas scales analytics nodes up one tier when average Normalized System CPU or System Memory Utilization stays above 75% for one hour. It scales them down only when both stay below 50% for 24 hours. The Queued/Rejected Operations criterion does not apply to analytics nodes. https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ 27. Predictive auto-scaling does not apply to anal — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#auto-scaling-as-a-cost-driver`
- - Each report's per-pass rates ended as follows. No report had two passes in a row under 5%. - [M] 100 → 65 → 36 → 8% - [H] 100 → 50 → 40% - [E] 100 → 42 → 20 → 3% - [P] 100 → 68 → 21 → 3% - The four reports converge on a core of about 15 claims (2, 4, 6, 16, 17, 20, 22, 26, 27, 29, 34, 38, 41, 43, 44), and all four recovered it independently. That core is effectively saturated. - The edges are not saturated. Taking the reports in order [M]→[H]→[E]→[P], each later report still added about 30% new claims, mostly Terraform/API mechanics and boundary rules (claims 1, 12, 19, 21, 25, 28, 32, 33, 3 — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#saturation-verdict-budget-exhausted-soft-stop-not-saturated-depth`
- 16. Analytics nodes have their own auto-scaling block, `analyticsAutoScaling`, with separate `minInstanceSize` and `maxInstanceSize`. The block sits next to the operational `autoScaling` block in the cluster payload. The docs' example uses Admin API version 2024-10-23. — https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ 17. Atlas scales analytics nodes up one tier if average Normalized System CPU or System Memory Utilization exceeds 75% for one hour. Atlas does not apply the Queued/Rejected Operations criterion to analytics nodes. — https://www.mongodb.com/docs/atlas/cluster — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#auto-scaling-changes-the-cost-over-time`
- 29. Take an M30 base with 3 electable nodes ($0.18/node-hr) and add 1 M40 analytics node ($0.347/node-hr). The cost is ≈ $0.887/hr. Moving the whole cluster to M40 and adding an M40 analytics node costs ≈ $1.387/hr. The gap is ≈ $365/month at 730 hours. These numbers are illustrative and depend on region, provider and storage settings. — https://www.mongodb.com/pricing , https://www.mongodb.com/cloud/atlas/faq 30. On a 3-node M10, one same-tier analytics node adds ≈ 33% to compute cost ($0.0267/hr on $0.08/hr), and storage is charged for that node too (claim 3). — https://www.mongodb.com/prici — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#worked-example-derived-arithmetic-list-prices-from-claim-7-3-reading-from-claim-8`
- - Pass 0 (pricing rule, node counting, minimum tier): 9 claims, rate 100%. - Pass 1 (history blog, FAQ arithmetic, third-party estimators, disagreement): +9 claims, rate 9/18 = 50%. - Pass 2 (storage pinning, auto-scaling, data transfer, Infinite, BI uplift, worked examples): +12 claims, rate 12/30 = 40%. - Verdict: **BUDGET_EXHAUSTED (soft stop)**, not saturated. More passes would likely pay off on three topics: regional price variation, explicit MongoDB confirmation of the published-rate basis, and how analytics nodes appear on invoice line items and in the Cost Explorer SKUs. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#pass-log-new-information-rate`
- 30. If the analytics tier is far below the base tier, replication lag can follow, and the analytics node "might fall off the oplog altogether." This is the floor on saving cost by undersizing. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md 31. Analytics nodes need a dedicated M10+ cluster. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md 32. **[delta] Inference:** M10 is the lowest dedicated tier, so an M10 base cluster has no cheaper analytics tier to choose. At an equal tier, one analytics node adds about one third (≈33%) of the 3-n — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#limits-and-failure-modes-of-downsizing`
- 1. Atlas charges the cluster cost and the data-storage cost for **each data-bearing node** in the cluster. — https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs.md 2. Each tier's per-hour charge includes that tier's default RAM, storage capacity, and storage speed. — https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs.md 3. A tier selected on the Analytics Tier tab is priced the same as the same tier on the Base Tier tab. If the analytics tier is higher or lower than the base tier, the price adjusts on a **prorated per-node basis**. The Atlas UI shows that — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#a-billing-unit-and-formula`
- 18. Analytics nodes have their own `analyticsAutoScaling.compute` block, with `enabled`, `scaleDownEnabled`, `minInstanceSize`, and `maxInstanceSize`. These settings are separate from the operational `autoScaling`. — https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core.md 19. Analytics scale-up rule: average Normalized System CPU or System Memory Utilization above 75% for the past hour, on any node. The Queued/Rejected-Operations criterion does not apply to analytics nodes. — https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core.md 20. Analytics scale-down rule: av — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#d-analytics-auto-scaling-changes-the-hours-tier-term`
- 26. Analytics nodes have their own `analyticsAutoScaling.compute` block (`enabled`, `scaleDownEnabled`, `minInstanceSize`, `maxInstanceSize`). https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ [M,H,E,P] 27. Scale-up happens when average Normalized System CPU or memory is above 75% for 1 hour. The Queued/Rejected Operations criterion doesn't apply to analytics nodes. https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ [M,H,E,P] 28. Scale-down needs CPU and memory below 50% over 24 h. The general rules also require no scale-down, provision or unpause in the pa — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#d-auto-scaling-makes-the-billed-tier-change-over-time`
- | Pass | Focus | New claims | Cumulative | Rate | |---|---|---|---|---| | 0 | billing docs, pricing page | 7 | 7 | 100% | | 1 | analytics tier constraints, auto-scaling | 15 | 22 | 68% | | 2 | third-party per-node formula, transfer, pause | 6 | 28 | 21% | | 3 | disconfirming check (search-node $0.12/hr), BI Connector EOL | 1 | 29 | 3% | — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#pass-log-new-information-rate`

## Problems, failure modes and limitations

- 8. **Local NVMe class:** if the base tier uses Local NVMe SSD, the analytics tier "must have the same tier level selected." On these clusters a smaller analytics tier is not possible. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 9. NVMe clusters cannot be paused, and they also run a hidden secondary with a provisioned high-IOPS volume for backups. The "pause to save money" option does not exist for an NVMe cluster with analytics nodes. https://www.mongodb.com/docs/atlas/manage-clusters/ 10. **Mixing General and Low-CPU classes:** if the base tier is Low-CPU and t — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#c-boundary-conditions-where-the-formula-s-shape-changes`
- 29. MongoDB says: "Scaling up the entire cluster tier would be costly, but scaling up just your analytics node tiers helps optimize the cost." https://www.mongodb.com/company/blog/product-release-announcements/introducing-ability-independently-scale-atlas-analytics-node-tiers 30. Independent FinOps source (PointFive, updated 2026-09-28): "Sizing the whole cluster for occasional analytical queries is another common cause" of overprovisioning. Its fix is to "move aggregation and reporting workloads to analytics nodes on their own tier." https://www.pointfive.co/efficiency-hub/inefficiencies/over — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#g-the-analytics-node-vs-scaling-the-whole-cluster-framing`
- - **Disk size across shards.** Terraform says `disk_size_gb` "must be equal for all shards and node types." The Atlas docs say only that "every shard must have an equal disk size on all nodes," which applies within a shard, while shard IOPS can differ. It is not settled whether analytics-node disk may differ between shards. https://raw.githubusercontent.com/mongodb/terraform-provider-mongodbatlas/master/docs/resources/advanced_cluster.md https://www.mongodb.com/docs/atlas/manage-clusters/ - **Cost of replicating to an analytics node in another region.** The data-transfer page bills transfer "t — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#unresolved-disagreements`
- 1. An analytics node is billed at the same price as the same tier selected on the Base Tier tab. If the Analytics Tier is higher or lower than the Base Tier, the price "adjusts accordingly on a prorated per-node basis." — https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 2. The Atlas UI shows the resulting price when you create or edit a cluster. The docs give no separate public price list for analytics nodes. — https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 3. Atlas charges the cluster cost and the data storage cost for each data-bearing — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#core-pricing-rule-current-atlas-core`
- 11. On Atlas Core, disk size and IOPS must be the same for all node types. Storage size must match between the Base Tier and Analytics Tier tabs, and you set it on the Base Tier tab. — https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 12. If you customize storage, Atlas charges for the full amount and does not deduct the default capacity. Because storage is charged per data-bearing node (claim 3) and must match across node types (claim 11), a smaller analytics tier lowers compute cost but not storage cost (inference). — https://www.mongodb.com/docs/atlas/billing/clust — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#storage-and-iops-do-not-follow-the-analytics-tier`
- 15. If you select an Analytics Tier "significantly below" the Base Tier, replication lag can result. The analytics node "might fall off the oplog altogether." This is the documented lower limit on cutting analytics cost by downsizing. — https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#cost-driven-failure-mode`
- 12. On Atlas Core clusters, disk size and IOPS must be the same across all node types. Storage size must match between the Base Tier and Analytics Tier tabs. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md 13. If you set custom storage, Atlas charges for the full amount and does not deduct the default storage. https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs.md 14. **[delta] Inference from claims 2, 12 and 13:** on Core, each analytics node carries the full storage and IOPS cost of the cluster's disk configuration. A smaller analytics tier lo — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#storage-and-iops`
- 13. For M10+ clusters, the analytics tier can be larger or smaller than the base tier. MongoDB states the purpose is to avoid over- or under-provisioning the entire cluster for the analytical workload. — https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md 14. Terraform: "Analytics nodes can scale independently from base nodes within a shard." Configure this with `analytics_specs` and `analytics_auto_scaling`. — https://raw.githubusercontent.com/mongodb/terraform-provider-mongodbatlas/master/docs/resources/advanced_cluster.md 15. **Derived:** with the claim-5 rates, sc — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#c-independent-tier-analytics-node-vs-scaling-the-whole-cluster`
- 24. Atlas charges for data transfer between nodes. Same-region transfer is cheapest. Transfer to a different region costs more (AWS: same region $0.00–$0.01/GB; different region $0.02–$0.15/GB). Placing an analytics node in a non-primary region therefore adds replication-egress cost (inference: oplog replication counts as node-to-node transfer). — https://www.mongodb.com/docs/atlas/billing/data-transfer-costs.md 25. Atlas does not charge for incoming transfers to an Atlas cluster. Query-result egress from an analytics node to a BI client outside the region or cloud is charged at Internet or cr — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#e-placement-transfer-and-pause`
- 16. On Core, disk size and IOPS must match across all node types. A smaller analytics tier saves compute only. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ [M,H,E,P] 17. Custom storage is billed in full, with no default deducted (for example, 50 GB on an M10 is billed as 50 GB). Every analytics node carries that full charge. https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs/ [M,H,E,P] 18. Extended Standard IOPS on Gen2 clusters is charged separately. Because IOPS must match, analytics nodes carry it too (inference). https://www.mongodb.com/do — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#b-storage-and-iops-stay-at-the-base-level-atlas-core`
- 4. On Atlas Core, "disk size and IOPS must remain the same across all node types." Storage size on the Analytics Tier tab must match the Base Tier tab. If you choose a smaller analytics tier, you save on compute only. Storage and custom-IOPS charges for that node stay at the base level. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 5. Custom storage is billed in full, and Atlas does not deduct the default storage. For example, an M10 with 50 GB is billed for 50 GB, not for 40 GB extra. Every analytics node carries this full charge. https://www.mongodb.com/docs/atl — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#b-correction-per-node-storage-and-iops-cannot-be-reduced`
- - **Single-node rate or 3-node replica-set rate.** amnic.com (2026-08-07) computes "3-node M10 replica set at $0.08/hr x 730 x 3 = $175.20", treating the published rate as per node. — https://amnic.com/blogs/mongodb-atlas-pricing-tiers-real-costs-and-how-to-control-them monk-entities PR #238 divides by 3, treating the published rate as covering 3 nodes. — https://github.com/monk-io/monk-entities/pull/238 budgetforge.dev lists M10 at "$0.08/hour (about $58/month)", which matches a single 3-node cluster price. — https://www.budgetforge.dev/tools/mongodb-atlas-pricing-2026 The arithmetic in the M — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#unresolved-disagreements`
- - **Met.** New hosts not inherited from the parent, by organisation: - MongoDB: mongodb.com, plus the Terraform docs at raw.githubusercontent.com - third parties: github.com (monk-io), pointfive.co, atonementlicensing.com, amnic.com, budgetforge.dev, checkthat.ai, severalnines.com - **Excluded:** pmclain.com is inherited and not counted. It only backs the failure where `secondaryPreferred` falls back to the primary and leaves analytics spend with no isolation [E,P]. - **Caveat:** every rule about Atlas behaviour rests on MongoDB's own documentation. The third parties support only the formula, — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#source-gate`

## Comparisons and alternatives

- In scope: how Atlas bills analytics nodes. That covers the per-node compute rate, the analytics tier versus the base tier, storage, data transfer, and auto-scaling as it affects cost. It also covers how the model changed over time and how analytics nodes are billed on Atlas Infinite. Out of scope: sibling node types (read-only, Search Nodes), BI Connector or SQL Interface features, general Atlas pricing, and analytics-node routing and topology. The parent covers those. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#scope`
- 1. Atlas bills a dedicated node for every hour it is provisioned, not the hours it is used. An idle analytics node costs the same as a busy one. A MongoDB staff answer describes a 3-node cluster as "72 server hours per calendar day". https://www.mongodb.com/community/forums/t/how-the-charge-for-mongodb-atlas-is-72hrs-per-day/139618 [E] 2. Atlas charges compute and storage for each data-bearing node. That count is the replication factor, multiplied by the shard count for a sharded cluster. https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs/ [M,H,E,P] 3. Each tier's hourly ch — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#a-billing-unit-and-the-corrected-formula`
- - **Is the list rate per node or per 3-node set?** - **÷3 side:** - FAQ arithmetic (claim 5) - monk-io (claim 7) - budgetforge, "$0.08/hour (about $58/month)": https://www.budgetforge.dev/tools/mongodb-atlas-pricing-2026 - Severalnines' $947/month: https://severalnines.com/blog/overview-mongodb-atlas-part-one/ . This repeats the FAQ example, so it is **not independent evidence**. I'm overriding [M]'s "independently matches." - **Per-node side:** amnic computes "3-node M10 replica set at $0.08/hr x 730 x 3 = $175.20". https://amnic.com/blogs/mongodb-atlas-pricing-tiers-real-costs-and-how-to-con — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#disagreements-kept-side-by-side`
- 7. On 2026-10-02 the public pricing page listed M10 at $0.08/hr, M30 at $0.54/hr and M40 at $1.04/hr. The page does not say whether these rates cover one node or a 3-node replica set. — https://www.mongodb.com/pricing 8. The FAQ's M40 example uses "Per server hourly cost: ~$0.34", 3 servers, 720 hours and 80 GB of backup at $2.50/GB, for a total of $946.79. Solving for the exact rate gives ≈ $0.3457 per server-hour, which is ≈ $1.04 / 3. This suggests (inference) that the published tier rate covers a 3-node replica set. The per-node rate would then be the published rate ÷ 3. — https://www.mong — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#what-the-published-tier-rate-covers-needed-to-apply-the-formula`
- - **Per-node vs per-replica-set list price.** Several 2026 pricing explainers say the $0.08/hr M10 rate is per node, which makes a 3-node set cost $0.24/hr ($175.20/month). Web-search summaries surfaced this view, but they mixed the per-node and whole-cluster readings and did not tie each view to a specific page. The CloudZero page I fetched did not contain the per-node claim. https://www.cloudzero.com/blog/mongodb-pricing/ · https://amnic.com/blogs/mongodb-atlas-pricing-tiers-real-costs-and-how-to-control-them - Against that: the official FAQ (~$0.34/server × 3 for M40), the Severalnines exam — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#unresolved-disagreements`
- - **In scope:** how Atlas bills an analytics node, which meters it adds (compute, storage, transfer), how the analytics tier and analytics auto-scaling change that cost, and how adding analytics nodes compares with scaling the whole cluster. - **Out of scope:** analytics-node routing and read preference, BI tools, Search Nodes, Atlas Infinite architecture, and general Atlas pricing. These are sibling or parent items. - **Inherited and not re-reported:** "no premium or discount vs equivalent-tier operational nodes" and "M10 analytics node is a large share of total cost". The claims below are ch — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#scope`
- 8. On Atlas Core, disk size and IOPS must be the same for every node type. Analytics storage size must match the Base Tier storage. — https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution.md 9. If you customize storage, Atlas charges for the full custom amount, not only the increase over the default. Claim 1 adds that storage is charged per data-bearing node. Together these mean each analytics node carries the full custom-storage charge. A smaller analytics compute tier does not lower that storage charge. — https://www.mongodb.com/docs/atlas/billing/cluster-configuration-c — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#b-storage-and-iops-cannot-be-decoupled`
- - **Per-node vs per-cluster rate (resolved against the parent).** The inherited formula multiplies the tier hourly rate by node count. The pricing page (claim 5) and the third-party estimator (claim 4) treat the published rate as covering a 3-node set. MongoDB's docs say only "prorated per-node basis" (claim 3) and do not state the divisor. The /3 divisor is therefore supported by a third party, not by a primary statement. Confirm it in the Atlas UI cost estimate before you rely on it. - **Search-node conflation (disconfirmed).** A web-search summary said "analytics nodes … start from $0.12/hr — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#unresolved-disagreements-and-gaps`
- 19. Analytics nodes have their own `analyticsAutoScaling` block with separate minimum and maximum instance sizes. The tier being billed can therefore differ from the tier you configured. https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ 20. Analytics nodes scale up when average Normalized System CPU or System Memory stays above 75% for one hour. The Queued/Rejected Operations criterion that operational nodes use is not applied to them. https://www.mongodb.com/docs/atlas/cluster-autoscaling-compute-core/ 21. Analytics nodes scale down only when average CPU and memory over the — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#d-auto-scaling-makes-analytics-tier-hourly-rate-change-over-time`
- 1. Bash and Firecrawl were denied in this session, so I couldn't recheck the pricing page live for whether its rate covers one node or three. The ÷3 correction to the parent formula still rests on third-party sources plus arithmetic from the FAQ. Confirm it with an Atlas UI quote for 3 vs 4 nodes before it goes into the tree. 2. I printed the synthesis here rather than writing a file, because no output path was given. I've assumed the batch runner captures it from stdout. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#needs-input`
- - The parent formula `analytics_tier_hourly_rate × node_count × hours` is correct only if `analytics_tier_hourly_rate` is a per-node rate. Plugging in the published pricing-page tier rate probably overstates cost by 3× (claims 8–9). Use `(published_tier_rate / 3) × analytics_node_count × hours` for compute, plus per-node storage on Atlas Core (claims 3, 11–12). - "No premium or discount versus the same operational tier" is confirmed by claim 1. It covers compute only, because storage and IOPS are pinned to the base configuration on Core (claim 11). - On Atlas Infinite, the per-node storage cha — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#corrections-and-limits-to-inherited-claims`

## Facts and statements

- Run: /rabbithole, 2026-10-02. Concept: **Analytics Node Cost Model** (parent: MongoDB Atlas Analytics Node). — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md`
- Run: `/rabbithole` depth pass, 2026-10-02. Concept: **Analytics Node Cost Model** (parent: MongoDB Atlas Analytics Node). — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md`
- 24. If you choose an analytics tier "significantly below" the base tier, "replication lag might result. The analytics node might fall off the oplog altogether." The cheapest tier can turn the node unusable, and recovering it costs a resync. https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 25. M10 and M20 are burstable. "Cloud providers cap CPU usage after burst periods." An M10 or M20 analytics node running long aggregations can be throttled even though its listed tier looks large enough. https://www.mongodb.com/docs/atlas/manage-clusters/ 26. **Inherited-source evid — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#e-failure-modes-that-cancel-the-expected-savings`
- 27. Before August 2022, analytics nodes "had to use the same cluster tier as all other nodes." Per-node independent tiers began with the announcement dated 2022-08-03, updated 2022-08-23. Cost models written before then assume tier parity. https://www.mongodb.com/company/blog/product-release-announcements/introducing-ability-independently-scale-atlas-analytics-node-tiers 28. The BI Connector daily uplift used to be billed on top of a cluster used for BI. BI Connector for Atlas "reached end of life (EOL) in September 2026." Current models should drop this term and use the SQL Interface instead. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#f-history-and-retired-cost-terms`
- 39. BI Connector for Atlas used to be billed as a daily uplift with a monthly cap. It reached end of life in September 2026. Analytics-node cost models from before that date may include an uplift that no longer applies. https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs.md — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#adjacent-cost-line-limit-only`
- 34. Node-to-node transfer to a different region is billed by where the source node is. AWS rates: same region $0.00–$0.01/GB, different region $0.02–$0.15/GB. Incoming transfer is free, and intra-cluster traffic is always compressed. https://www.mongodb.com/docs/atlas/billing/data-transfer-costs/ [M,H,E,P] 35. **Inference:** an analytics node outside the primary's region adds recurring replication-egress cost that grows with write volume. https://www.mongodb.com/docs/atlas/billing/data-transfer-costs/ [M,H,E,P] 36. Query results sent from an analytics node to a BI client outside the region or — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#e-transfer-and-pause`
- 47. Option A: M30 base plus one M40 analytics node, about $0.887/hr. Option B: whole cluster at M40 plus one M40 analytics node, about $1.387/hr. Option A is about $365 a month cheaper. [H] 48. Starting from M40: moving every node to M50 costs about +$0.96/hr. Adding one M40 analytics node costs about +$0.35/hr. Adding one M50 analytics node costs about +$0.67/hr. Storage per node applies to all three. [P] — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#i-worked-arithmetic-derived-from-list-rates-3-reading`
- **Handoffs to concept-family-explorer:** Atlas Infinite HA-shard billing, Read-only node cost model, Search Node cost model, Atlas Cost Explorer / invoice SKUs, SQL Interface cost. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#sources`
- 1. Confirmed: an analytics tier is priced the same as the same tier on the Base Tier tab. If the analytics tier is higher or lower than the base tier, "the price adjusts accordingly on a prorated per-node basis." https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/ 2. Atlas bills a dedicated node for every hour it is provisioned, not for the hours it is used. A MongoDB staff answer says a 3-node M10+ cluster is "72 server hours per calendar day … not on the number of hours they are actually used." An idle analytics node costs the same as a busy one. https://www.mongodb.c — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#a-confirmations-of-the-inherited-formula-with-limits`
- 21. Atlas charges for data transfer between an Atlas node and another node in a different region. The charge depends on the source node's location. AWS lists $0.02–$0.15/GB for a different region. An analytics node in a region other than the primary therefore adds cross-region replication transfer cost (inference: replication is node-to-node transfer). — https://www.mongodb.com/docs/atlas/billing/data-transfer-costs/ 22. Atlas does not charge for incoming data transfer to a cluster. Atlas compresses all intra-cluster communication. — https://www.mongodb.com/docs/atlas/billing/data-transfer-cos — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#data-transfer`
- - Atlas Infinite HA-shard billing unit - Read-only node cost model - Search Node cost model - Atlas Cost Explorer / invoice SKUs — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#handoffs-not-researched-here-for-concept-family-explorer`
- **In scope:** how Atlas bills an analytics node. This covers the billing unit, how the analytics tier is priced against the base tier, storage, IOPS and data-transfer side effects, sharded multiplication, auto-scaling cost dynamics, and the Atlas Infinite compute/storage split. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#scope`
- 18. For a sharded cluster, the number of data-bearing nodes equals the replication factor × the number of shards. https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs.md 19. In the Terraform `mongodbatlas_advanced_cluster` resource, each `replication_specs` entry is one shard and holds its own `analytics_specs` (`instance_size`, `node_count`). Analytics node cost therefore scales with shard count. https://raw.githubusercontent.com/mongodb/terraform-provider-mongodbatlas/master/docs/resources/advanced_cluster.md 20. Config servers are billed at a separate rate. Tier and storag — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#topology-multipliers`
- 21. Atlas charges for data transfer between an Atlas node and another node. Transfer to a different region costs more than in-region transfer. The charge depends on where the source node is. https://www.mongodb.com/docs/atlas/billing/data-transfer-costs.md 22. AWS rates: same region $0.00–$0.01/GB, different region $0.02–$0.15/GB. https://www.mongodb.com/docs/atlas/billing/data-transfer-costs.md 23. **[delta] Inference:** an analytics node in a region with no other cluster nodes receives oplog replication across regions, which adds a recurring per-GB charge on top of the node-hour cost. An ana — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#data-transfer`
- Handoffs (not researched): Search Node cost model; Atlas Infinite compute-node billing; SQL Interface cost. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/practice.md#pass-log-new-information-rate`
- In scope: how an Atlas analytics node is billed, and where the inherited formula `analytics_tier_hourly_rate × node_count × hours_running` breaks, understates, or misleads. Out of scope: routing, read preference, BI tools, Search Nodes, and Atlas pricing in general. Those items appear below only where they change the analytics-node bill. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/edge-cases.md#scope`
- Run: /rabbithole, 2026-10-02. Parent: MongoDB Atlas Analytics Node. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md`
- Met. The run used more than 3 independent hosts: mongodb.com (docs, blog, FAQ, pricing), github.com (monk-io), amnic.com and budgetforge.dev. The independent hosts back only claims 9–10 and the disagreement section. All rules about how Atlas behaves rest on MongoDB primary sources. The shared parent source (pmclain.com, 2022-09-28) has no cost content and was not counted. The search for a disconfirming source found the amnic.com per-node interpretation, which is recorded above. Not found: a dated MongoDB statement that names the node basis of the pricing-page rate, and an Admin API cost-estima — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/history.md#quality-gate`
- **Out of scope:** analytics node routing and read preference, sizing for BI workloads, Search Nodes, read-only nodes as a feature, general Atlas pricing. Those are separate frontier items. — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/reports/mechanism.md#scope`
- 24. In Terraform, each `replication_specs` entry is one shard with its own `analytics_specs`. https://raw.githubusercontent.com/mongodb/terraform-provider-mongodbatlas/master/docs/resources/advanced_cluster.md [M,E,P] 25. Analytics tiers can be set per shard, so one `analytics_tier_hourly_rate` is wrong once shards differ. Base shard tiers must stay within two tiers of each other. https://www.mongodb.com/docs/atlas/manage-clusters/ [E] — source: `~/.global-ai-hub/research-tests/mongodb-full-frontier-20261002/full-frontier-run/analytics-node-cost-model-2df1826ec7/rabbithole-synthesis.md#c-topology`

## Related concepts

- Node — is a part of Analytics Node Cost Model
- Analytics — is a part of Analytics Node Cost Model
- Cost — is a part of Analytics Node Cost Model
- Model — is a part of Analytics Node Cost Model
