Cost Monitor
Credit & Storage Cost Observability — Where Your Snowflake Spend Is Going, and Why
#Executive Summary
Cost Monitor is a governed, read-only Snowflake Native App that gives account teams, engineering managers, and finance stakeholders self-serve visibility into credit consumption, storage cost, and per-warehouse and per-user spend — without requiring ACCOUNTADMIN access.
It is designed as a companion to Query Monitor, a sibling app focused on query performance. Where Query Monitor answers “which queries are slow or failing?”, Cost Monitor answers the FinOps question every growing Snowflake account eventually faces: where is the money going, and what can we do about it?
Cost Monitor never creates, modifies, or deletes anything in your account. It reads a single set of SNOWFLAKE.ACCOUNT_USAGE views and renders them as an interactive Streamlit dashboard, entirely inside your own Snowflake account.
#Who this is for
- Engineering managers who need to see warehouse spend without
ACCOUNTADMIN. - FinOps / finance stakeholders who need a budget-vs-actual view they can check themselves.
- Platform teams who need to identify idle-warehouse waste and right-sizing opportunities.
- Anyone who has ever asked “why did our Snowflake bill go up this month?” and had to wait on someone else to run a query to find out.
#Key Features
#2.1 KPI Dashboard (always visible, above the tabs)
| Feature | Description |
|---|---|
| Total Credits | Billed credits for the selected time range, with a period-over-period delta. |
| Estimated Cost | Total Credits × your configured $/credit rate. |
| Total Storage | Active + Time Travel + Stage + Fail-safe, in TB, as of the latest snapshot. |
| Storage Cost/mo (est.) | Total Storage × your configured $/TB/month rate. |
| Projected Month-End | Linear run-rate forecast to month end, with a delta against your budget. |
Deltas are colored red for an increase and green for a decrease — since for every one of these metrics, more is the thing you want to be alerted to.
#2.2 Overview Tab
| Feature | Description |
|---|---|
| Spend headline | A large estimated-spend figure for the selected period. |
| Daily spend by warehouse | Stacked, color-coded daily chart of credits per warehouse (a qualitative Tableau-style palette); warehouses beyond the top 9 are folded into “Other” so the legend stays readable. |
| Daily credit trend by category | Warehouse Compute vs. billed Cloud Services vs. Serverless & Other, with a Usage Type selector to isolate one. |
| Cost by Type donut | Compute / Storage / Cloud Services / Other, as a share of estimated spend. |
| Top 5 Warehouses by Cost | Ranked horizontal bars with dollar labels. |
| Warehouse Utilization table | Idle %, Avg Utilization, and Potential Savings, each color-coded (green/amber/red). |
| Budget Utilization | Progress bar against your configured monthly budget, with an overage banner when projected spend exceeds it. |
| Recommendations | Generated from your account’s actual idle %, cloud-services overage days, and Time Travel ratios — not static advice. |
| Top Expensive Queries | The individual queries driving the most cost this period, with a SQL text preview, user, warehouse, and database/schema. |
#2.3 Warehouses Tab
- Per-warehouse credit and cost ranking.
- Idle-time waste detection — credits billed for warehouse idle time vs. actual query execution — where your account has this data available.
- Full comparison table with CSV export.
#2.4 Users Tab
- Active Users, Avg Cost/User, Top User Share, and Top 5 Users Share — the last two are cost-concentration metrics that flag whether spend is broadly distributed or driven by one or two accounts.
- Daily spend-by-user chart, same stacking style as the warehouse chart.
- Top users by credits, ranked.
- Full per-user detail table: query count, active days, distinct warehouses touched, credits, estimated cost, average cost per query, and last-active timestamp.
- Top query tags by credits — the basis for chargeback/showback reporting.
- A multi-select User filter in the sidebar scopes this entire tab to one or more people at once.
#2.5 Storage Tab
- Storage composition trend: Active + Time Travel, Stage, and Fail-safe, over time.
- Per-database storage breakdown with estimated $/month.
- Top 15 tables by storage, flagged when a table’s Time Travel footprint exceeds its active data — a signal to shorten
DATA_RETENTION_TIME.
#2.6 Forecast & Budget Tab
- Month-to-date spend and a linear run-rate projection to month end.
- Budget utilization with days-remaining context.
- A count of days where Cloud Services usage exceeded Snowflake’s 10% free-allowance threshold and was actually billed.
#2.7 Cross-Cutting Features
- Spend anomaly detection — flags any day whose spend exceeds 1.5× its own trailing 7-day average.
- Configurable $/credit and $/TB-month rates — every dollar figure is a labeled estimate, not an invoice.
- CSV export on every tab.
- An in-app “About & data sources” panel documenting exactly which
ACCOUNT_USAGEviews power each number.
#3. How It Works — Architecture
Cost Monitor is built with Streamlit in Snowflake, running on Snowpark Python. The application executes entirely inside your Snowflake account’s compute — no data is exported to an external service, and no third party ever sees your account usage data.
#3.1 Data Sources
| ACCOUNT_USAGE View | Used For |
|---|---|
WAREHOUSE_METERING_HISTORY |
Per-warehouse hourly credits; idle-time detection. |
METERING_DAILY_HISTORY |
Account-wide daily credits by service type; billed Cloud Services calculation. |
QUERY_ATTRIBUTION_HISTORY |
Per-query credit attribution; powers the Users tab and chargeback reporting. |
QUERY_HISTORY |
Joined to QUERY_ATTRIBUTION_HISTORY for SQL text in Top Expensive Queries. |
STORAGE_USAGE |
Account-wide storage trend (active, stage, fail-safe). |
DATABASE_STORAGE_USAGE_HISTORY |
Per-database storage breakdown. |
TABLE_STORAGE_METRICS |
Per-table storage and Time Travel ratio. |