doneyet. Sign in
doneyet Pulse — data freshness & volume

Watch the data , not just the job.

A pipeline can say ✓ succeeded and still leave a table stale or half-loaded. Pulse monitors the asset — freshness and row volume — and pages you on the breach a green run hides. Flat per-org pricing, and Pulse never needs a read connection into your warehouse.

Run-level monitoring tells you the job exited 0. It can't tell you the load wrote 200 rows instead of a million, or that the nightly table hasn't updated since Tuesday. Pulse answers the two questions data teams actually ask.

The failure a green run can't see
SOURCE NIGHTLY LOAD ORDERS PULSE PAGES JOB EXITED 0 — 100% ROWS LOADED 200 OF 1,000,000 THE RUN IS GREEN. THE ASSET IS NOT. EXAMPLE

What Pulse watches

The asset, not the run
Freshness

Did this table update recently enough? The nightly load usually lands by 03:00 — it's 06:00 and the newest row is from yesterday. Pulse opens an incident and pages you.

Volume

Is the row count sane? A load that's produced ~1M rows/day for a month just wrote 200. Absolute floor/ceiling, plus a statistical anomaly detector versus the asset's own baseline.

No warehouse grant

Every incumbent connects into your warehouse and runs its own queries. Pulse is fed by a push or bridged off a job you already run — no credential to provision, nothing to get through security review.

Feed it two ways — mix freely

Declare it, feed it, get paged

One monitor per asset. Declare the expectation, feed it a measurement, and breaches route through the alert channels you already wired for doneyet.

  1. 1

    Declare the expectation

    freshness_max_lag_s (update by when) and/or a volume floor, ceiling, or anomaly sensitivity . Slack / PagerDuty / Opsgenie routing reuses your existing rules.

  2. 2

    Push — or bridge

    Push: one HTTP call at the end of a pipeline step, from any scheduler — Airflow, dbt, Dagster, a k8s CronJob, a bash line. Bridge: set source_workflow_slug and Pulse derives freshness from that doneyet workflow's last successful run — no producer change.

  3. 3

    Breach → paged, recovery → resolved

    Stale or off-volume opens one deduped incident and fans out as on_stale / on_volume . Goes healthy again → it resolves itself. Test paging up front with dyt pulse monitor test .

Already run jobs through doneyet? The bridge gives those assets freshness monitoring for free . Bringing an external scheduler? One observe call wires it. Full docs on the Get started page.

Priced against the field — and it doesn't touch your warehouse

Third-party figures, as published

Published / reported self-serve pricing for data-observability tools (gathered July 2026). The category is expensive, enterprise-gated, and every incumbent connects into the warehouse. Pulse is the flat, self-serve, no-grant option.

ToolEntry / self-serve pricePricing modelReads your warehouse?
doneyet Pulse Free → Pro $149/mo (100 assets, anomaly) Flat per-org — no per-table meter No — push / bridge
Monte Carlo ~$25k–$50k / yr Usage-based (credits), sales-led Yes
Metaplane Free → ~$208+/mo → $1.5k–3k/mo Per monitored table Yes
Soda Free → Team $750/mo Processing units + PAYG Yes
Bigeye · Anomalo Enterprise, sales-led (no public price) Custom Yes
Elementary from ~$7.2k / yr (~$600/mo) Cloud tiers over dbt tests Yes

Flat, per-organization pricing

Rating plate

One number per org — not per seat, not per table. Freshness and absolute volume bounds are on every tier, including Free; statistical anomaly detection starts at Pro.

Pulse Free

$0
  • 5 monitors
  • Freshness + volume bounds
  • Slack & email alerts
Start free

Pulse Starter

$29 / org / mo
  • 25 monitors
  • + PagerDuty, MS Teams, webhook
  • 180-day observation history
Start Starter

Pulse Pro

$149 / org / mo
  • 100 monitors
  • Statistical volume anomaly
  • SSO · 13-month history · all channels
Start Pro

Pulse Scale & Enterprise

$499 / mo →
  • Unlimited monitors
  • Audit log · per-owner routing
  • SCIM · residency · BYOC (Enterprise)
Talk to us

Pulse is a SKU inside doneyet — your plan includes run tracking too, at no extra charge. Hard-stop at your plan's call allowance (no surprise overage). Scale & Enterprise are billed manually during soft launch — talk to us .

Frequently asked questions

Data freshness, volume anomalies, and how Pulse stays out of your warehouse.

What is data freshness monitoring?

Freshness monitoring watches when a data asset was last updated and alerts you when it goes stale — the newest row is older than the lag you allow. It catches a "successful" pipeline that still left a table un-refreshed, a failure that run-level monitoring can't see. Pulse pairs it with volume monitoring (row-count floors, ceilings, and statistical anomalies) so you also catch a load that ran but wrote the wrong amount of data.

Does Pulse need access to my data warehouse?

No — and that's the point. Every incumbent data-observability tool connects into your warehouse and runs its own queries, which means provisioning a read credential and passing security review. Pulse is fed either by a push (your pipeline sends a row count and/or watermark with one HTTP call at the end of a load) or by bridging off a job you already run through doneyet. Pulse never holds warehouse credentials and never queries your data.

How is Pulse priced compared to Monte Carlo, Metaplane, or Soda?

Pulse is a flat per-organization price with no per-table meter: Free (5 monitors), Starter $29/mo (25), Pro $149/mo (100, with anomaly detection), Scale $499/mo (unlimited). The incumbents bill per monitored table, per credit, or per processing unit and run from ~$208–$750+/mo self-serve up to $25k+/yr sales-led. Pulse Pro covers 100 assets with anomaly detection for a fraction of that — and Pulse is freshness + volume, not a full lineage/catalog platform, so it's the focused, affordable slice of "is my data late or wrong?"

What's the difference between doneyet and doneyet Pulse?

doneyet watches your jobs — cron, CI, and batch workflows — via a heartbeat contract, and pages you when a run stalls, overruns, or fails. Pulse watches your data — warehouse tables and datasets — for freshness and volume. They share one alerting spine and one subscription: a Pulse plan includes run tracking too. Buy either lens; you get both.

Which schedulers work with Pulse?

Any of them. Pulse takes an observation over plain HTTP, so a push works from Airflow, dbt, Dagster, a Kubernetes CronJob, a GitHub Actions step, or a one-line shell call — no agent, no daemon, no polling. If the job already reports to doneyet, the bridge gives its asset freshness monitoring with no producer change at all.

Stop finding out your data was stale from a stakeholder.

Register your first monitor in a few minutes — push a row count or bridge a job you already run.

Start free