01-projects / newsletter / research-briefs

tickered targeting systems mac

Thu Apr 30 2026 20:00:00 GMT-0400 (Eastern Daylight Time) ·research-brief ·status: ready-for-writing
sanity-checkmacade-benchtargeting-systemspacky-mccormickscarcity

Research Brief: Your dbt models are about to get Tickered

One-paragraph thesis. When LLMs make generic dbt code abundant, the scarce thing is no longer the SQL — it’s the targeting system that defines what “good” means in your warehouse, in your business context. dbt’s own ADE-bench is the proof point: a public, forkable benchmark whose only exposed tuning dials are the dbt features dbt sells (Fusion + Semantic Layer), because exposing the targeting dial — define the output first, then constrain the agent — would invalidate dbt’s framing of the problem. The benchmark structurally cannot measure the layer that actually matters. MAC’s Scope × Basis matrix is that layer. The piece is a Packy McCormick “Tickered vs scarce” lens applied to a discipline that’s about to lose the wrong half of its work to commodity intelligence.


Mode: Contrarian / Analysis (PAIPS-leaning — opens with a scene, closes with a frame the reader can use Monday). Hook:

In 1474, Federico da Montefeltro refused to admit a single printed book to his library at Urbino. Gutenberg had made print abundant — so handwritten codices became the scarce thing, and Federico was building for scarcity, not abundance.

Lead with Federico — a date, a person, a concrete refusal. Two sentences in, name the move: when one layer gets cheap, the adjacent layer becomes the prize. Then pivot, hard, into the reader’s actual day: every dbt model you wrote last quarter is about to feel like a printed book.

The piece argues the discipline-level shift, then earns it with a specific receipt the reader can verify. The receipt is ADE-bench. dbt Labs shipped a public benchmark for analytical agents in April 2026. It’s open at github.com/dbt-labs/ade-bench. It is the most direct adjacent infrastructure to MAC anyone has shipped publicly. And the only “tuning dials” the benchmark exposes are the dbt features dbt sells — Fusion compiler, Semantic Layer. Run the benchmark in December 2025 like I did, and you’ll watch it saturate predictably the moment you turn those dials on.

That saturation isn’t a bug. It’s a tell. The benchmark structurally cannot expose the dial that matters most — the one where you define the output first, then constrain the agent against it — because doing so would reframe the problem in a way that doesn’t end at dbt’s product page. The benchmark grades task completion. The discipline needs to grade output correctness against a test surface a senior data engineer would have written. Those are different jobs. MAC’s Scope × Basis matrix is the test-surface job; ADE-bench is the task-completion job. Both need to exist; only one of them is being shipped.

The closing move: name the new scarce thing and hand the reader the matrix. The judgment about what good looks like — three scopes (Column / Row / Aggregate), six bases (Absolute / Rel:Source / Rel:Prod / Rel:Recon / Temporal / Human) — is the handwritten codex of the agentic-data era. Generic dbt code is about to get Tickered. The matrix is what gets you out from under the screener.

Outline (5 beats):

  1. The Federico scene (≤120 words) — the refusal, the framing of abundance-driven scarcity. Land the abstract idea on a person and a date.
  2. Pivot to the reader’s stack — every gold model, every YAML test, every staging convention is about to be one search query away from being generated by an agent. What’s left when the SQL is cheap?
  3. The proof point — ADE-bench, dated April 2026, link the repo, name what it grades and what it doesn’t. State the December 2025 first-hand observation: the only dials that move the score are the ones dbt sells.
  4. The structural argumentwhy the benchmark can’t expose the targeting dial. Not because dbt is hiding it; because exposing it would reframe the problem in a way the dbt product surface doesn’t hold the answer to. (Watch the tone here — the founder doesn’t want to look like he’s dunking on dbt; this is structural, not adversarial.)
  5. MAC as the answer + Monday move — name Scope × Basis. One paragraph on what it is. Close with: open your most important gold model, draw the 3×6 matrix, mark which cells have at least one check. Same closing move as the MAC anchor draft — keeps the universe consistent.

Comparison table to include in the piece:

What ADE-bench gradesWhat MAC’s Scope × Basis grades
Did the agent complete the task?Does the resulting model pass the test surface a senior would have written?
Did the model exist after the run?Are accounting identities preserved? Does aggregate tie to the executive dashboard?
Does its content match the solution key?Does the override pattern have its own coverage when the source switches conditionally?
Pass/fail on task completion (coarse)Graded coverage by scope × basis × severity (fine)
Tuning dial: dbt Fusion + Semantic LayerTuning dial: define the output first

Supporting Material:

Connected Issues:

Why this angle: The Federico hook is the strongest opener — it satisfies the MrBeast 60-second rule (specific date, named person, concrete refusal, immediate stakes), it gives Packy a citable lineage without requiring a full Packy explainer, and it lets the piece earn its punchline through ADE-bench rather than pitching it. Mental model anchor: Mimetic Desire + Scarcity Heuristic stacked. Federico didn’t covet codices because they were rare in the abstract; he coveted them because the people he aspired to be still owned them. The reader’s mimetic move is the same — when generic dbt code is everywhere, owning the targeting layer becomes the status move and the economic move. That’s a cleaner lever than just “scarcity.”


Angle 2: “The benchmark dbt couldn’t ship.”

Mode: Contrarian / Analysis (Stratechery-shaped — opens with the observation, builds the structural argument, closes with the implication). Hook:

dbt Labs shipped a benchmark for analytical agents in April 2026. I forked it in December. The only dials that moved the score were the dbt features dbt sells — and that’s not an accident.

This angle inverts Angle A’s opener. Lead with the saturation observation, work backward to why, close with the question dbt structurally can’t ask. It’s a more pundit-shaped piece — closer to Benn Stancil’s own house style than to the founder’s typical scene-first pattern. That’s a feature if the goal is a piece that travels into Benn’s orbit + the dbt-Twitter conversation; a bug if the goal is a piece that hooks a working data lead in the first sentence.

The argument runs three steps. (1) ADE-bench is real and good — dbt deserves credit for shipping public infrastructure for evaluating analytical agents. (2) The benchmark grades task completion against a solution key, and the only tuning dials it exposes are dbt Fusion + dbt Semantic Layer. Saturate the score, and the saturation curve points back at dbt’s product page. (3) That isn’t a coincidence and it isn’t bad faith — it’s structural. A benchmark that exposed “define the output first, then constrain the agent” as a primary dial would reframe the problem in a way that doesn’t end at any single vendor’s surface. dbt can’t ship that benchmark because shipping it would invalidate the framing that lets dbt own the agent surface.

The reader’s takeaway: don’t grade your agentic data work by the benchmark dbt could ship. Grade it by the test surface a senior would have written. That’s the dial dbt structurally couldn’t expose. That’s MAC.

Outline (5 beats):

  1. The observation — ADE-bench shipped in April 2026, founder forked it in December, name the saturation pattern in the first three sentences.
  2. Credit dbt fairly — this is real infrastructure, the repo is public, the principles essay is good. The piece is not a hit.
  3. The structural argument — why the benchmark can’t expose the targeting dial. Use Joel Spolsky’s “smart companies commoditize their complements” as the lens (already in the Packy piece’s lineage). dbt is correctly defending its value layer; the benchmark is downstream of that defense.
  4. The dial that’s missing — define-the-output-first is the move that doesn’t fit inside any vendor’s frame. Name MAC briefly. Link the anchor.
  5. What to grade your work by — close with the operator move: write the test surface before you prompt the agent. Same Monday move as Angle A but landed differently.

Comparison table to include in the piece: same Scope × Basis vs ADE-bench table as Angle A — the table is the artifact of the article either way.

Supporting Material:

Connected Issues:

Risk-flag specific to this angle: the “dbt couldn’t ship it” framing reads as adversarial even when the argument is structural. If the founder has any current or near-future business relationship with dbt Labs (sponsorship, Coalesce slot, joint content), this angle could close that door. Worth confirming before writing.


Angle 3: “Define the output first.”

Mode: Listicle / Analysis (operator how-to — closer to the MAC drip-day-1 piece than to a thesis essay). Hook:

Most data work starts with the input. You stare at a source table and ask, what can I get out of this? The agentic version of that workflow loses, predictably and in ways the agent will not warn you about. Here’s what changes when you write the test surface first.

This angle treats Packy and ADE-bench as supporting evidence, not the lead. The lead is the founder’s operator’s POV: when an agent is doing the writing, the high-leverage move shifts from “how do I write this query?” to “how do I write the constraints the query must satisfy?” Define the output first. Hand the agent the constraint surface. Grade the result against it.

The piece walks through the move concretely. (1) Pick the most important gold-layer model in your warehouse. (2) Before prompting any agent, draw the 3×6 Scope × Basis matrix. Mark every cell with the rule that applies — even Go-tier ones. Skip explicitly only after you’ve considered each. (3) Decide severity (Stop / Pause / Go) per cell. (4) Hand the filled matrix + the model spec to the agent. (5) Grade the agent’s output against the matrix, not against your gut. The piece can use ADE-bench as the industry-level evidence that this isn’t just one consultant’s opinion — dbt itself acknowledges context-shaped grading is the load-bearing axis (cite the prompt-variants-as-first-class-axis line from the Stancil piece). Close with Packy’s Tickered frame compressed into two sentences as the meta-justification.

Outline (5 beats):

  1. The operator scene — open with a real moment: an agent generated a model that passed every column-level test and produced the wrong total. Name the failure mode (silent fanout from a join). One paragraph.
  2. The reframe — define the output first. State it as the principle. Give it a one-line description.
  3. The matrix walk-through — Scope × Basis × Severity. Two paragraphs; lean on the gold_opp_pipeline example from the MAC anchor without re-deriving it. Link the anchor for the deep version.
  4. Why now — the ADE-bench / Tickered evidence, compressed to one paragraph each. This is the move dbt’s own benchmark can’t measure but the discipline needs.
  5. Monday checklist — explicit numbered list. The most checklist-shaped piece of the three angles. Highest forward-rate potential.

Comparison table to include in the piece: not the ADE-bench/MAC contrast table — too thesis-shaped. Instead, an Input-first vs Output-first workflow contrast:

Input-first workflow (today)Output-first workflow (the move)
Stare at the source, ask what can I extract?Define what good looks like for the consumer; ask what must the model satisfy?
Write the SQL; tests follow if there’s timeWrite the matrix; the SQL is graded against it
Agent prompt: “build a model that summarizes X”Agent prompt: “build a model that satisfies these 18 cells”
Pass/fail at code reviewPass/fail at coverage review
Failure mode: silent fanout, override edge casesFailure mode: incomplete matrix (acknowledged + tracked)

Supporting Material:

Connected Issues:


Sequencing Notes

Where this fits in the editorial arc. The canonical-thesis 5-piece sequence (per 2026-04-30-rdco-thesis-targeting-systems-feedback-loops) is:

  1. What Ray Data Co actually is — canonical thesis piece
  2. The targeting system is the brain — Layer 1 deep dive
  3. Instrumenting your business — Layer 2 worked example
  4. Closing the loop — Layer 4 worked example
  5. Portfolio over single-bet — why three small targeted niches > one big general niche

This Tickered/MAC piece slots best as #2 — it IS the Layer 1 deep dive, narrated through a worked example (MAC) and a public proof point (ADE-bench). Sequencing it as #2 means the canonical-thesis piece (#1) introduces the four layers, and this piece earns Layer 1 with receipts before the reader gets handed the deeper architecture pieces.

Alternative sequencing. If the relaunch essay’s energy needs to be sustained with a sharper second issue, this piece can run first — it’s the strongest news-pegged + receipt-bearing angle in the queue, and ADE-bench is the freshest hook the founder has access to. The tradeoff: running it first means sacrificing the cleaner thesis-introduction structure. Recommended only if the founder wants to lead with sharpness over scaffolding.

What comes before. SC-relaunch essay (already drafted, in ~/rdco-vault/01-projects/newsletter/sc-relaunch-essay.md) sets the stake — agents are the new data consumers. This piece pays off the stake by naming the specific framework that makes the agent-mediated workflow trustworthy.

What comes after. The MAC anchor article (~/rdco-vault/01-projects/data-quality-framework/content/2026-04-15-mac-anchor-article-draft-v1.md) and its drip-day-1 companion already exist as deeper-dive pieces. The Sanity Check piece is the funnel-top version — earns the framework, points to the anchor for the deep version. Future SC issues can ride on top: Severity tiers as humane on-call architecture, The system-of-record question that blocks every Relative:Source test, What changes when an agent fills the matrix vs a senior fills it.

Cross-bet payoff. This piece is also the strongest funnel into the eventual MAC info-product. The Monday move at the close (“draw the 3×6 matrix, mark which cells have a check”) is the natural friction point that converts a Sanity Check reader into an MAC drip-course subscriber.


Key Risk

Primary risk: failing the no-derivative bar. This is the load-bearing risk. Per feedback_no_derivative_sanity_check_pieces: even when riding on a strong source, the piece must contain an original re-frame, not a re-tell. Both Packy’s Tickered framing and the ADE-bench observation exist in other people’s writing. The original re-frame here — the thing that has to land for the piece to clear the bar — is the structural-impossibility argument: that ADE-bench cannot expose the targeting dial because doing so would invalidate dbt’s own product framing. That argument doesn’t appear in Packy’s piece, doesn’t appear in Stancil’s piece, doesn’t appear in the MAC anchor. It’s the founder’s synthesis. The piece is derivative if that argument is buried; it lands if that argument is the spine.

Mitigation: whichever angle the founder picks, the structural-impossibility paragraph cannot be cut for length. It’s the difference between “in the founder’s voice, here’s what Packy and Benn said” and “here’s what nobody is saying out loud yet.”

Secondary risk: dbt-relationship cost. Angle B is the most pointed at dbt as a company. Even the structural-argument framing reads as adversarial in some quarters. Worth confirming before writing whether the founder has any open or near-future business surface with dbt Labs (sponsorship, Coalesce participation, joint webinar, etc.) that this piece could close. Angle A and Angle C carry less of this risk because they treat ADE-bench as evidence, not target.

Tertiary risk: fact-check on the December 2025 ADE-bench experience. The pitch references the founder’s first-hand observation that the only dials moving the score are dbt Fusion + Semantic Layer. The vault doesn’t currently have notes on that test run (founder said the test repo isn’t worth sharing). Two implications: (1) the piece needs to phrase the observation honestly — “I forked it in December and ran it; the only dials that moved my score were the ones dbt sells” — without overclaiming a published result. (2) Worth a quick check that the saturation pattern still holds in the current ADE-bench HEAD before publishing — the repo has likely evolved between December 2025 and May 2026, and a sentence about “dials that move the score” gets weaker if dbt added a third tuning surface in the interim.

Tone guidance. The voice this piece needs is closer to SC-014’s Good/Bad/Ugly: dbt Updates than to a Stratechery-style takedown. Critical without burning. Specific receipts, then a framework, then the Monday move. Avoid the “dbt is hiding the dial” register — the argument is structural, not conspiratorial. Per the lede audit (2026-04-28-sanity-check-lede-audit), the first 150 words must contain a number, a quoted phrase, a proper noun, or a concrete physical detail — Federico, 1474, Urbino, Gutenberg in Angle A clears that bar in the opening sentence. No ## Summary heading. No third-person editorial framing. First-person, scene-first, then the framework.


Why A over B. B is sharper but riskier. The structural-impossibility argument lands harder when it’s earned through the Federico hook + ADE-bench receipt + MAC framework, in that order. B opens with the conclusion and asks the reader to trust it; A opens with a scene and walks the reader to the conclusion. Sanity Check’s lede discipline (per the lede audit) and the founder’s voice (per the relaunch essay) both reward the scene-first move.

Why A over C. C is the most useful piece for an existing reader, but Angle A is the better new-subscriber piece — the Federico hook travels further on LinkedIn and X, and the framework still lands at the close for the Monday-move payoff. C is the natural follow-up issue once the framework is established. Run A as the thesis-bearing piece, then C as the operator how-to.

Why A overall. It is the only angle where the three load-bearing assets (Packy’s macro chassis, ADE-bench’s public receipt, MAC’s framework) each play their natural role: Packy is the lens, ADE-bench is the evidence, MAC is the answer. B compresses Packy out of frame; C compresses Packy and ADE-bench both into the supporting cast. A keeps the whole stack visible and gives the founder room to land the structural-impossibility argument as the spine of the piece — which is the move that clears the no-derivative bar.

One caution on A. The Federico opener has been used by Packy in the source piece. The piece must not feel like it’s lifting Packy’s lede; the move is to use the same historical anchor as a handoff into the founder’s own argument (the structural-impossibility claim) within the first 200 words. If the Federico paragraph runs longer than ~120 words before pivoting to the dbt-stack stake, the piece reads as a Packy restate. Keep the pivot tight.