How to estimate BigQuery costs on turn.io

Raquel Updated by Raquel

BigQuery pricing is based on two main components: storage and queries. For most Turn.io customers, costs remain low because Turn’s tables are optimized and partitioned.

Official documentation about Google Cloud pricing: https://cloud.google.com/bigquery/pricing?hl=en

1. Storage Costs

BigQuery charges for the amount of data you store.

Typical Turn.io tables include messages, interactions, events, contacts, and others as described in the Turn Data Dictionary.

Typical sizes:

  • Small account (10k contacts): ~0.7–1.4 GB/month
  • Medium account (50k contacts): ~2–4 GB/month
  • Large account (250k+ contacts): ~10–20 GB/month

Cost: ~$0.02 per GB per month → For most accounts: a few cents to a few dollars per month

2. Query Costs

BigQuery charges for the amount of data scanned by your queries, not for the time it takes.

Most Turn tables are partitioned by date. If queries filter using WHERE date >= …, only recent partitions are scanned — which keeps costs low.

Typical query usage examples:

  • Analyst queries
  • Dashboards (e.g., Looker Studio refreshes)
  • Scheduled reports

Formula: Data scanned (TB) × $6 per TB

Typical Turn query patterns scan:

  • 0.005–0.03 TB per query when filtered
  • **More only if scanning long time ranges or using SELECT ***

Expected cost for small/medium accounts:

  • Light use: $3–$10 per month
  • Heavy dashboards: $10–$40 per month

3. Streaming Costs

Turn.io loads data in batches, not streaming inserts. → $0 for most accounts

4. Example: 10,000 Contacts

With typical usage:

  • ~20k messages/day → ~600k/month
  • Several dashboards
  • Occasional analyst queries

Estimated cost:

  • Storage: $0.02–$0.03
  • Queries: ~$5–$10
  • Total: ~$3–$10 per month

5. Use BigQuery Cost Calculator

Google Cloud provide a Google Cloud's pricing calculator

Be ready to input:

  • Number of contacts
  • Messages per day
  • Dashboard frequency
  • Analyst query frequency

6. Tips to Keep Costs Low

  • Always filter queries by date (partition pruning)
  • Avoid SELECT *
  • Use partitioned tables for dashboards
  • Limit dashboard refresh frequency
  • Materialize repeated queries if needed

If you need help interpreting your usage or optimizing your setup, our team is here to support you.

Was this article helpful?

Example queries for your data

Contact