For small data teams

All green.
Numbers wrong.

Pipelines succeed while row counts collapse, columns disappear, and freshness slips. Row Monitor is data quality monitoring for the tables you name: schema drift, volume, and lag, in plain English.

Connects
Postgres, read-only
Catches
Schema, volume, lag
Hands you
A dbt test

Monitors

Northwind demo
3 healthy1 stale2 drift
Illustrative Row Monitor table: schema drift on public.orders, a row-count drop against baseline, and freshness lag, with Slack and email alerts
TableSignalObservedBaselineStatusAlert
public.ordersRow count6,920−62%18,420DriftSlack
public.ordersSchemacoupon_code removedcolumn gonepresentDriftSlack
public.eventsFreshness3 days behindupdated_atunder 6 hoursStaleEmail
analytics.sessionsVolume41,202within band40,880Healthy—
mart.customersSchema18 columnsmatch18 columnsHealthy—
staging.paymentsFreshness14 minwithin bandunder 1 hourHealthy—

Why · public.orders

The load still finishes, but orders is about a third of its baseline and the coupon column is gone. A filter in the model, or an upstream delete, does this without failing the job.

Reads and alerts through

  • Postgres
  • Slack
  • Email
  • dbt
  • Snowflake, waitlist
  • BigQuery, waitlist

What it watches

The failure mode your orchestrator will not page.

dbt and Airflow tell you a task failed. They stay quiet when the task succeeds and the table is wrong. Row Monitor watches schema drift, data freshness, and row-count anomalies — the breaks a green job will not page.

Schema drift

Added, removed, and retyped columns. The first clean check stores the schema. A later check opens an anomaly when a column disappears or a type changes, even if the job stays green.

Freshness

Freshness lag when updated_at stops moving. Row Monitor compares the newest timestamp with the threshold you set and alerts when the table goes quiet.

Row counts

Volume spikes and drops against the baseline row count. A collapse like the demo’s 62% drop on orders is an anomaly, not a successful load.

Slack and email

Each workspace keeps one Slack incoming webhook and an alert address. The message carries the table, the check, and the diff. Without a Resend key in dev, it is printed and stored as a console delivery.

Plain-English cause

Claude writes a plain-language root cause from the diff when an API key is set. Without one, you still get a template explanation of the schema, volume, or freshness break.

A dbt test

You also get a schema.yml snippet: a row-count band, a recency test, or the columns the baseline still expects. Paste it. Row Monitor does not open a pull request.

Read-only Postgres

Passwords are encrypted at rest. The role you create gets SELECT. Row Monitor never writes to the warehouse.

A baseline the same day

Name the tables. The first clean check stores columns, types, row count, and the newest timestamp. Nothing alerts until there is a snapshot to compare. No weeks of rules.

A demo warehouse

No credentials yet? Load Northwind, a fixture that can break on command: a missing coupon column, a 62% row drop, and a timestamp three days stale.

How a check works

Connect, baseline, explain.

Nothing alerts until there is something to compare.

  1. 01

    Connect

    Add a Postgres read-only role, or load the demo warehouse. Passwords are encrypted with APP_ENCRYPTION_KEY.

  2. 02

    Baseline

    Pick tables. The first check stores schema, count, and freshness. Nothing alerts until there is something to compare.

  3. 03

    Explain

    A later check that drifts opens an anomaly, pages Slack or email, and suggests a schema.yml test you can paste.

Plain language

English, then YAML.

Claude writes a plain-language cause from the diff. You also get a schema.yml snippet — a row-count band, a recency test, or the columns the baseline still expects.

Why · public.orders

The load still finishes, but orders is about a third of its baseline and the coupon column is gone. A filter in the model, or an upstream delete, does this without failing the job.

dbt_expectations.expect_table_row_count_to_be_between

Small teams

The same breaks. A smaller product.

Metaplane, Monte Carlo, Bigeye, Anomalo, and dbt-native tools such as Soda and Elementary all talk about freshness, volume, and schema. Those platforms also sell lineage, data CI, and coverage across many warehouses. Row Monitor is the Postgres version of the three checks a small team feels first.

How Row Monitor compares with enterprise data observability on monitoring, alerts, price, and features that are still on the waitlist
CapabilityRow MonitorEnterprise observability
Schema drift, freshness, and row countsIncluded, against a baseline you acceptTypical
Slack and email alerts with the diffIncludedTypical, often with more channels
Plain-English cause and a dbt snippetIncludedVaries by product
Read-only access, encrypted credentialsPostgres todayCommon
Price for a small teamFree, $39, or $99 a monthUsually a platform contract
Snowflake and BigQueryWaitlistUsually included
Column-level lineageWaitlist, not shippingOften included
Data CI and unsupervised ML at warehouse scaleNot in this productOften the main pitch

Coming later, and not live today: Snowflake, BigQuery, and richer lineage. Row Monitor does not claim column-level lineage, data CI, or unsupervised models over billions of rows.

Pricing

Three tables free. The rest is a subscription stub.

Free stops at 3 monitors. Pro is $39 and Team is $99. That is Postgres monitoring, not a quote for column lineage or a multi-warehouse platform. Checkout runs when Stripe keys exist; without them you can preview a plan so the product is not blocked.

Free

$0/ mo

A side project or a first warehouse

  • 3 tables
  • Schema, volume, and freshness checks
  • Email and Slack alerts
  • Plain-English explanation and a dbt snippet
Start free

Pro

Hourly checks

$39/ mo

The analytics team that feels every silent break

  • 50 tables
  • Everything in Free
  • Stripe subscription when keys are set
  • Enough coverage for a core mart
Choose Pro

Team

$99/ mo

More than one person on call for the warehouse

  • 500 tables
  • Everything in Pro
  • Owner and member roles on the workspace
  • Room for staging plus marts
Choose Team

Row Monitor

All green. Numbers wrong.

Pipelines succeed while row counts collapse, columns disappear, and freshness slips.