⚠️ DEV TOOL — This website intentionally contains SEO issues for testing. Not for public use.Issues Index →

Warehouse-native attribution, three years on

5 Intentional Issues

og:image is declared with no dimensions and no alt text; the article declares a published time but no modified time, author or Twitter creator.

#97Issue #97: og_image_width — og:image present, og:image:width/height missing#100Issue #100: og_image_alt — og:image present, og:image:alt missing#102Issue #102: article_modified_time — article page with no article:modified_time#103Issue #103: article_author_meta — article page with no article:author#107Issue #107: twitter_creator_handle — article page with no twitter:creator

Three years ago every attribution model at Acme ran in a scheduled job that read from the warehouse, computed a result in Python, and wrote a table back. The models were correct and nobody trusted them, because the only way to check one was to read the job.

Moving the models into the warehouse as version-controlled SQL changed who could argue with them. A marketer who disagreed with a channel credit could open the model, read the join, and file a pull request against it. The number of disputes went up and the number of unresolved disputes went to nearly zero.

The cost was compute. A first-touch model over three years of events is a large scan, and running it on every dashboard load was not viable. The answer was an incremental materialisation keyed on event date, which is unglamorous and has been the single most valuable thing in the repository since.