5-minute walkthrough
The complete signup-to-first-alert flow, illustrated. Same content as the 60-second video if you prefer reading.
- Sign in with Google
- Start your 14-day free trial — no card required
- Connect your GCP project — two gcloud commands
- Verify access and save
- Wait for tomorrow's first run
Total time: ~5 minutes. You'll need a GCP project with billing export to BigQuery enabled.
1 Sign in with Google
Open app.billsnap.dev/signup. Click Continue with Google, pick the Google account you want associated with this BillSnap subscription.
Sign up
Sign in with Google. We'll start your 14-day trial — no card required.
Continue with Google2 Start your 14-day free trial
Stripe Checkout opens automatically. Click Start trial. You'll not be asked for a card during the trial — we only collect one when day 14 ends and you're still active.
Try BillSnap Pro
Then $15.00 per month starting June 5, 2026
GCP cost anomaly detection — $15 per project per month
3 Connect your GCP project
After Checkout, you're returned to /connect. Fill in three
fields:
Connect your GCP project
Grant read-only access to your billing-export dataset. ~30 seconds.
my-company-prod
billing_export
gcp_billing_export_v1_0123456_AB_CDEF
Don't know your table name?
Open BigQuery in the Cloud Console → your billing
project → expand the billing_export dataset → copy the
single table name (it'll start with gcp_billing_export_v1_).
If you don't yet have a billing export at all, follow the
billing-export setup guide first.
Once the three fields are filled, the page renders two gcloud snippets with your values pre-filled. Click the Copy button on each, then paste into your terminal.
$ gcloud projects add-iam-policy-binding my-company-prod \
--member="serviceAccount:billsnap-reader@billsnap-prod-495823.iam.gserviceaccount.com" \
--role="roles/bigquery.jobUser"
Updated IAM policy for project [my-company-prod].
$ bq add-iam-policy-binding \
--member="serviceAccount:billsnap-reader@..." \
--role="roles/bigquery.dataViewer" \
my-company-prod:billing_export.gcp_billing_export_v1_...
Dataset 'my-company-prod:billing_export' updated. billsnap-reader) run BigQuery jobs in
your project (so BQ scans are billed to you, capped at
~1-2 GB / day per the 15-day partition window). The second grants
read-only access to the billing-export dataset only — not
the rest of your project.
4 Verify access and save
Click Verify access on the /connect page. BillSnap
runs a zero-cost SELECT 1 FROM ... LIMIT 0 against your
billing-export table to confirm the IAM grants worked. If they did,
the project is saved and you're redirected to the dashboard.
Access verified ✓ — saving project…
Project connected ✓ (your-uid_my-company-prod). Redirecting to dashboard…
If the grant didn't propagate yet (usually instant, but can take 60s on a busy day), the dashboard shows a precise diagnostic — e.g.
permission_denied_project— re-run the first gcloud snippetpermission_denied_dataset— re-run the second bq snippettable_not_found— confirm the suffix matches your real table; see the billing-export guide
5 Wait for tomorrow's first run
BillSnap's detector runs every day at 09:00 UTC. It scans the previous day's billing-export rows, builds a 14-day rolling baseline per SKU, and fires a digest alert via Slack and/or email if anything is more than 2 standard deviations above its baseline.
my-company-prod · billing_export.gcp_billing_export_v1_…
last run: tomorrow 09:00 UTC · pending
Recent alerts (last 30 days):
No alerts yet. Daily detection runs at 09:00 UTC.
That's it.
Set up once, then forget about it. The detector keeps running daily without any further action from you. Tune the z-score threshold or minimum-cost floor from the dashboard if alerts feel noisy or sparse.