Comparing a quiet period with an assessment peak can make predictable workload growth look like a regression. Separate volume, operation mix, and unit cost.
Separate volume from unit cost
Normalize the comparison
read_cost_per_million = read_cost / billed_reads * 1_000_000
reads_per_session = billed_reads / completed_sessionsMatch periods, currency, region, edition, and billing categories. Do not divide a total bill including storage and writes by reads and call it the read price.
A synthetic comparison
If reads and read cost both double, cost per million reads is stable. If reads per session rise, investigate query changes, listener churn, and reconnects. These are illustrative relationships, not published cost results.
Inspect application behavior
Billing depends on edition and query behavior. Standard-edition listeners may incur reads when documents enter or change in results. Reconnection behavior, index-entry reads, and rule-dependent reads can also matter. Consult the relevant billing documentation rather than assuming one application request equals one read.
Choose the next action
Segment by operation and meaningful user action. Stable unit cost does not prove efficiency; it rules out one explanation for growth.
References and further reading
Primary sources for the technical concepts in this article. The examples and decisions above are my synthesis, not quotations from these sources.
- Firebase documentationUnderstand Cloud Firestore billing
Operation, listener, index-entry, and rule-dependent billing.
