Engineering
Engineering12 min readBy The Data Workers Team

Best practices for agentic data delivery and feeds: a field guide for data delivery teams

For a data business, delivery is where coverage, accuracy and freshness become something a customer can check. This field guide shows how to run data feeds with agents, practice by practice: build each customer variant from the contract, check every upstream change against every variant, test entitlements on each release, watch the SLA clock, version layouts, draft the notices and keep a delivery record, while people own what each customer receives.

If your company sells data, the customer never sees your pipeline. They see the file at 06:00, the share in their account, the API response and the release note. Coverage, accuracy and freshness all reach the customer through delivery, and so do the mistakes: a renamed column, a missing partition or a field the customer did not buy becomes a ticket, and sometimes a service credit.

The mandate for a Head of Data Delivery is to ship one product to hundreds of customers, each with its own columns, history depth and schedule, and never let a customer find a defect first. The trap is that every new customer and channel adds a variant to maintain by hand while the team stays the same size.

Our view: the checks that keep a feed correct are repeatable, so agents should run them, and people should keep every decision that changes what a customer receives. This field guide, the companion to the team playbook, goes practice by practice.

The old world

It is 09:05 on a Tuesday. The 06:00 file for a hedge fund customer is not in their bucket, and nobody knew until their analyst emailed. An engineer finds that an upstream job stalled and the nightly build ran long. At 10:30 a second customer reports that their automated load rejected the file: an industry code column was replaced upstream, and their fixed layout still expects the old one. Legal asks whether either contract carries a credit. That afternoon a solutions engineer notices a third customer's view now includes a premium column they never bought. Nobody works on the next dataset this week.

The new world

Same Tuesday with Data Workers. The Connectors agent saw the stalled build at 03:40, long before the SLA clock ran out, and Quality Monitoring listed the customers waiting. Schema Evolution had caught the code change at 02:12 and listed every variant that read the old column. The Data Access & Governance agent found the view that would have exposed the premium field, and Quality Monitoring tested every variant against its contract on a copy. Autonomous Data-Conductor held the variants that change what a customer receives and sent the product owner one decision. She approved it before the drop, and the release note went out under her name.

How the swarm hands one problem from agent to agent: an upstream rename the night before a delivery. Each step leaves a signed receipt.
Fig. 1:How the swarm hands one problem from agent to agent: an upstream rename the night before a delivery. Each step leaves a signed receipt.

The rest of this report walks through the 8 practices that make that morning possible. At a glance:

The practices in this report, old world vs. new world. Each row is a practice; the right column is how it runs when agents own the delivery back office. Illustrative.
Fig. 2:The practices in this report, old world vs. new world. Each row is a practice; the right column is how it runs when agents own the delivery back office. Illustrative.

The practices, one by one

1. Build every variant from the contract, not from the nearest customer

A variant is the column set, filters, history, regions and schedule one customer bought. The contract says what that is.

Why it's harder than it looks: a copied variant inherits every assumption of the customer it was copied from, including columns the new customer did not buy, and it drifts from the contract with each upgrade and lapse.

  1. 1.The Data Context & Catalog agent reads the contract record you point it at and calls generate_documentation to write the variant's specification.
  2. 2.Pipeline Building calls generate_pipeline for the view, file layout or API scope with an explicit column list, and validate_pipeline to test it.
  3. 3.Quality Monitoring calls create_quality_tests_for_pipeline so the variant carries its own checks.
  4. 4.The Data Access & Governance agent calls check_policy against the contract, and the contracts lead approves the grant before anything is shared.

2. Check every upstream change against every variant before the build ships

The base table changes all the time. The question is which variants a given change reaches.

Why it's harder than it looks: the build succeeds and every internal test passes. The damage is in fixed-layout files, pinned column names and generic views, which only a per-variant check finds. By hand, across hundreds of variants, that is a day of work at the worst hour. See automating schema change reviews.

  1. 1.Schema Evolution calls detect_schema_change and assess_impact to list every variant and channel the change reaches.
  2. 2.The Data Context & Catalog agent calls blast_radius_analysis to attach the customers, SLAs and delivery times behind each one.
  3. 3.check_compatibility separates changes that map through, such as an additive column, from changes that remove, rename or retype something a customer receives.
  4. 4.Pipeline Building drafts a compatible mapping per variant. Compatible changes go to tests; the rest go to the product owner as one decision.

Practices like these compound. Across the routine work they cover, here is the difference in elapsed time:

Time to complete 6 routine data delivery tasks, current practice (black) vs. the agent swarm (green). Illustrative.
Fig. 3:Time to complete 6 routine data delivery tasks, current practice (black) vs. the agent swarm (green). Illustrative.

3. Test entitlements on every release, not after a complaint

An entitlement is the promise of which customer sees which dataset, field and time range. It is also a licence boundary.

Why it's harder than it looks: entitlements fail quietly in both directions. A view rebuilt from a template that selects every column picks up the new premium field, and a lapsed contract keeps its grant. Snowflake secure data sharing and the open Delta Sharing protocol enforce whatever grant you give them. They do not tell you it is the right one.

  1. 1.The Data Access & Governance agent calls check_policy on every variant against the contract before each release and flags any field the customer is not entitled to.
  2. 2.For each flag it proposes an explicit column list as a diff, and enforce_rbac checks the roles behind the share.
  3. 3.An upgrade, downgrade or lapse takes the same path, with provision_access preparing the grant or revoke and a rollback point.
  4. 4.The contracts lead approves every entitlement change. No agent approves its own.

4. Watch the SLA clock, not the job status

A green job is not a delivered file. The promise is a time, a completeness level and a format. See data freshness monitoring and SLAs.

Why it's harder than it looks: the orchestrator, the warehouse, the transfer service and the sharing platform each report their own idea of success. A file can land on time and be a third smaller than usual.

  1. 1.Quality Monitoring calls set_sla with the delivery time and completeness each customer was promised.
  2. 2.The Connectors agent calls get_connector_status per channel, so a missing drop shows against the schedule.
  3. 3.get_anomalies flags a thin partition, and Incident Debugging calls get_root_cause to name the stalled upstream job.
  4. 4.The Data Context & Catalog agent calls check_freshness and lists the customers behind the delay. A rerun with trigger_airflow_dag is proposed, and the delivery lead approves it.

5. Version layouts and keep a rollback point for every change

Some customers pin the old layout because their own loader changes slowly. Others will move when asked.

Why it's harder than it looks: editing a layout in place forces everyone to move at once, and the customers least able to move are often the largest. An undo that lives in someone's memory is not an undo.

  1. 1.Schema Evolution calls generate_migration to draft the new layout as a versioned change beside the old one.
  2. 2.validate_schema_compatibility checks the mapping against each variant, and run_quality_check tests it on a copy.
  3. 3.apply_migration applies it at the autonomy level you set, with a rollback point per variant; rollback_migration reverses it if a post-delivery check fails.
  4. 4.A data engineer approves the first application of a new layout, and the product owner decides when an old one retires.

6. Draft the notice from the change, and let a person send it

Release notes, deprecation notices and data dictionaries tell customers what changed in their feed and when. They are written after the engineering and are the first thing to slip.

Why it's harder than it looks: a good note is specific: this field, in your layout, from this date, with this fallback. A generic note makes every customer work out whether it concerns them.

  1. 1.assess_impact gives the exact set of customers and fields.
  2. 2.The Data Context & Catalog agent calls generate_documentation to update the data dictionary and listing text, and define_business_rule to record a new code list.
  3. 3.The agents draft one note per affected group, with the old and new layout and the date.
  4. 4.The product owner edits and sends each note under their own name. Publishing a listing is a person's decision.

7. Hold anything that changes what a customer receives for a named approver

Reruns, redelivery and documentation are reversible. A removed field, a renamed column or a new entitlement is not something a customer can undo.

Why it's harder than it looks: if everything waits for review, approval becomes a click. If changes go straight through, the customer finds the mistake. The answer is one decision per change with everything needed to make it. See letting AI agents change production data safely.

  1. 1.Autonomous Data-Conductor groups the variants that change what a customer receives and holds them.
  2. 2.request_governance_review routes one decision to the product owner, with the diff, test results, customers affected, drafted notice and rollback point.
  3. 3.The owner approves, edits or rejects each group; contract-scope changes also need the contracts lead.
  4. 4.Conductor applies the change, verifies the delivered result and reverses it if verification fails. generate_audit_report records who proposed and who approved.

By task class, autonomy where work is reversible and a named approver where it is not:

Autonomous resolution by data delivery task class. Share of each task class closed autonomously, escalated for approval, or handled by a person. Anything that changes what a customer receives sits with a named owner by design. Illustrative.
Fig. 4:Autonomous resolution by data delivery task class. Share of each task class closed autonomously, escalated for approval, or handled by a person. Anything that changes what a customer receives sits with a named owner by design. Illustrative.

8. Keep a delivery record per customer, so the SLA review is a lookup

At a quarterly review a customer asks what you delivered, when, in what shape, and whether it met the SLA.

Why it's harder than it looks: the answer is rebuilt from orchestrator logs, transfer records and sharing usage, under pressure, after the customer already suspects a miss.

  1. 1.The Connectors agent logs every delivery against its schedule, channel by channel, as it happens.
  2. 2.Quality Monitoring adds post-delivery checks with get_quality_summary, and Incident Debugging attaches incidents via get_incident_history.
  3. 3.The Observability agent keeps the tamper-evident record through get_audit_trail.
  4. 4.Before the review, the account owner asks for the customer's record, generate_audit_report compiles it, and the account owner decides whether a credit is due.

Designing the autonomy ladder

Autonomy is set per task class and per feed. L0 is off, L1 observes, L2 proposes and a person approves, L3 acts reversibly with a rollback point, L4 is fully autonomous. Every feed starts at L1. L0 to L2 run today. L3 and L4 are where a domain can go on the evidence of its own review record ("On evidence" below), never a level reached by a date.

Task classL0L1L2L3L4
Dictionary and listing text upkeepOffShows gapsProposes updatesOn evidenceOn evidence
Delivery monitoring and SLA checksOffFlags late and thin filesProposes rerunsOn evidenceRarely
Variant tests against the contractOffReports failuresProposes fixesOn evidenceRarely
Additive changes to variantsOffDetects and explainsProposes mapping and diffOn evidenceRarely
Removed, renamed or retyped fieldsOffDetects and explainsRoutes to a named approverNoNo
Entitlement and scope changesOffFlags conflictsDiff for a named approverNoNo
Pricing, licence and contract termsOffEvidence onlyEvidence to a named approverNoNo

The operating model: who owns what

Agents change who does the work, not who is accountable for it:

RoleOwnsWhat the agents take off their plate
Head of Data DeliveryStandards, autonomy per feed, which channel goes nextStatus, chasing late files, keeping dictionaries current
Product ownerLayout changes, removed fields, customer noticesWorking out who a change touches and drafting the note
Contracts leadEntitlements, scope, credits, renewalsComparing each variant with the contract
Solutions and data engineersOnboarding, reviewing agent proposals, new productsCutting variants, reruns, mappings, upkeep

The swarm behind the practices

No single agent delivers these practices. Each one is a hand-off between specialists under the autonomy you set per feed.

AgentWhat it does on a delivery teamPublic tools it calls
Connectors and Data IngestionWatch every delivery against its scheduleget_connector_status, trigger_airflow_dag, send_slack_alert
Schema EvolutionDetect layout changes, list variants hit, keep a rollbackdetect_schema_change, assess_impact, check_compatibility, generate_migration, rollback_migration
Pipeline BuildingBuild and test variants as reviewed changesgenerate_pipeline, validate_pipeline
Quality MonitoringTest variants against contracts, deliveries against SLAsset_sla, run_quality_check, get_anomalies
Incident DebuggingTrace a late or wrong delivery to its causeget_root_cause, get_incident_history
Data Access & GovernanceCheck variants against policy, prepare grant changescheck_policy, enforce_rbac, provision_access, generate_audit_report
Data Context & CatalogDocument each variant with owner, lineage, customersgenerate_documentation, blast_radius_analysis, check_freshness
ObservabilityKeep the record of what each agent didget_audit_trail

Data Context Wizard holds one governed definition of freshness, completeness and on-time delivery, so a customer dashboard, a sales deck and a listing description quote the same number. Autonomous Data-Conductor verifies outcomes before a delivery goes out. Spellbook Data Catalog, in preview, gives each dataset, variant and listing a plain-English page.

What disappears

  • •The customer who reports your late file before you know.
  • •The failed load that is the first notice of a renamed column.
  • •The premium field in a view nobody restricted.
  • •The view built by copying the nearest customer.
  • •The release note written a week after the change.

What replaces them is quieter: every change checked before the build, late files caught against the SLA clock, entitlements tested each release, and a signed receipt for every action that you can roll back.

A Head of Data Delivery's scorecard

Targets to bring to each quarterly review, in the commercial terms of the product you sell. They are targets to set, not results:

  • •On-time delivery against each customer's SLA, per channel: every miss caught and customers told before they ask.
  • •Upstream change checked against every variant: about 15 minutes, from about a day today.
  • •Customer-reported layout or entitlement defects per release: zero.
  • •Entitlement change prepared and tested: about 30 minutes, with the approval kept.
  • •Variants where contract, layout and grant agree at release: every variant.
  • •Delivered datasets customers use: read from your sharing and marketplace usage reports.
  • •Dictionary and docs upkeep closed autonomously: targeting 88% as the deployment matures.

Where this goes next

Entity resolution hands over the IDs customers join on, so a changed ID scheme is a delivery event, and coverage, accuracy and evaluation supplies the figures on your data sheet. Per-customer expectations can be written in the open Open Data Contract Standard, and agents can enforce them on each delivery. For marketplace listings see location and marketplace data, and for Snowflake see what Data Workers adds. The family sits on the data businesses page.

The climb: from assisted to autonomous to agentic

Our thesis is that the data platform climbs the way analytics did, in stages, and that the hard part was never knowing what to do but doing it. For data delivery teams:

  • •Assisted. Agents read every variant and channel and propose each fix with a receipt; entitlements and changes to what customers receive go to a named approver.
  • •Autonomous, under your governance. Routine work runs on its own: deliveries checked on arrival, additive changes carried to compatible variants, documentation kept current.
  • •The agentic data business. A delivery team that designs the next product and channel instead of fixing the last drop.

You choose the altitude, every step is visible and reversible, and the pilot below is the first rung.

The pilot: how data delivery and feeds teams start

  • •What we connect. Your warehouse, dbt, orchestrator, one product's delivery channels and the customer and contract record, over MCP, inside your infrastructure. Nothing migrates.
  • •Scope. Schema-change handling and delivery monitoring on one product's customer variants, at L2.
  • •First week. Agents run at L1. They map every variant, channel and schedule, test each variant against its contract and show the fixes they would have made, with receipts.
  • •By week two. Delivery checks on arrival and documentation upkeep start. Reruns are proposed for approval, and anything that changes what a customer receives stays at L2 with a named approver.
  • •At day 30. We review against your baseline:
  • •Upstream change checked against every customer variant: from about a day to ~15 min
  • •Late file traced and customers told: from about half a day to ~15 min
  • •Entitlement change prepared and tested: from about a day to ~30 min, with the approval kept
  • •the share of catalog and docs upkeep closed autonomously, targeting 88% as the deployment matures
  • •What you decide. Whether to expand to the next product.
  • •Guarantee. In a 90-day pilot, ten engineering hours per data engineer per week recovered against a baseline both sides sign on day one, or the $7,500 fee is refunded.
  • •Cost. Start with a pilot ($7,500 one-time, a 6 to 12 week pilot, credited in full against the first year). Scale is from $1,000 a month and Enterprise from $3,000 a month, billed annually, with unlimited seats, no usage meter and no markup on model spend. See pricing.
Share of agent actions by autonomy rung over the first twelve months for a data delivery and feeds team. Month 0 is the manual baseline; every deployment starts at L1 and moves up only on evidence. Illustrative.
Fig. 5:Share of agent actions by autonomy rung over the first twelve months for a data delivery and feeds team. Month 0 is the manual baseline; every deployment starts at L1 and moves up only on evidence. Illustrative.

By month 12, more than 41% of agent actions run fully autonomously and manual work falls below 10%, while entitlements and changes to what customers receive stay with a named approver.