From raw data to ready models
Stop losing time to hundreds of lines of SQL, tangled schemas and pipelines that break. Get data models designed, cleaned and enriched for marketing and SEO analytics.
Each model starts with a question you already have — which kind of page is winning, which queries are new, where you compete with yourself. The answer is built into your own warehouse as classifications, enrichments and views, and shows up on every report.
The data is the same. The shape is the work.
Search Console gives you one row per URL and nothing that says what kind of URL it is. Every question you actually want to ask — by section, by page type, by intent — starts by rebuilding that context in SQL, every time, in every report.
As it arrives
searchdata_url_impression- /blog/how-to-choose-a-crm 2,410 68,900
- /pricing 1,860 24,300
- /products/crm-starter?utm_source=nl 940 17,500
- /blog/category/sales 620 31,200
No page type. No group. No intent. To answer “how is the blog doing?” you write the classification yourself — and rewrite it in the next report, and again when the URL scheme changes.
After modeling
- /blog/how-to-choose-a-crm Blog Informational
- /pricing Detail Commercial
- /products/crm-starter?utm_source=nl Detail Commercial
- /blog/category/sales Listing Informational
Same rows, now carrying the columns the question needs. Group by page_type instead of inferring it — and the URL scheme changing becomes a rule we update, not a report you rebuild.
Why these models and not your own SQL
You could build all of this. The question is whether you want to keep it running for the next three years.
-
One definition per metric
Standardised once, not per report
The same word means different things in different platforms — a session, a click, a conversion. Models reconcile them once, so a number carries the same definition no matter which report it lands in.
See the semantic layer -
Enrichment, not guesswork
Rules you approve, run in your warehouse
Raw URLs become page types, messy query strings become intents. The rules are yours to approve and change — and where a rule can’t carry it, an LLM classifies inside your own warehouse rather than a black box elsewhere.
-
No maintenance on your side
Rebuilt daily, before anyone looks
API quotas, timeouts and schema changes are ours to absorb. The models are rebuilt every day, so the tables are current and complete before anyone opens a report.
Built for SEO and content analytics
Pick the model that matches the question you are trying to answer. Each one ships as tables in your own warehouse, not as a report locked inside someone else’s tool.
- SEO
Content Groups
Sort every page into Informational and Commercial groups. Read Search Console performance by group, not one URL at a time.
- SEO
Page Types
Label every URL by its role: home, listing, detail or blog. Read Search Console performance by page type, not one URL at a time.
- SEO
Long-tail Queries
Pull every query past the 1,000-row cap into your warehouse. Sort the long tail by length and question pattern to find the low-competition phrases you almost rank for.
- SEO
New Queries
Record every query’s first-seen date in your own warehouse. Find the queries just starting to get impressions, not ones that merely moved up.
- SEO
Brand vs Non-brand Queries
Split every query into Branded and Non-branded in your own warehouse. You get all your history, any property and rules you control, not Google’s AI-only filter.
- SEO
Query Intent
Classify every query by intent — Informational, Commercial, Navigational or Transactional — with an LLM in your own warehouse. Read Search Console performance by intent, not one query at a time.
- SEO
Keyword Cannibalization
Find every search where two or more of your own URLs compete. Pulled from Search Console into your warehouse and ranked by the traffic at stake, not hunted one query at a time.
Working on a question you don’t see here? Tell us what you are trying to learn.
Leave the data engineering to us and get back to strategy.
No custom models to build, no pipelines to babysit. Start with the ones that already exist — and if your question needs a model nobody has built yet, we build that too.
Free discovery call · No commitment — leave with a starting point