/* Genesis DMA — content + routing config + JSON-LD builders */

const SITE = {
  name: 'Genesis DMA',
  url: 'https://genesisdma.com',
  city: 'Houston',
  region: 'TX',
  country: 'US',
  phone: '+1-512-470-8653',
  email: 'info@genesisdma.com',
  address: '2800 Post Oak Blvd, Suite 4100, Houston, TX 77056',
  founded: '2021',
  sameAs: [
    'https://www.linkedin.com/company/genesisdma',
    'https://twitter.com/genesisdma',
    'https://instagram.com/genesisdma',
  ],
  defaultOg: 'https://genesisdma.com/og.png',
};

const ROUTES = [
  { path: '/',                             label: 'Home' },
  { path: '/capabilities/paid-media',      label: 'Paid media' },
  { path: '/capabilities/search',          label: 'Search & GEO' },
  { path: '/capabilities/crm',             label: 'CRM' },
  { path: '/capabilities/automation',      label: 'Automation & AI' },
  { path: '/capabilities/content',         label: 'Content' },
  { path: '/capabilities/analytics',       label: 'Analytics' },
  { path: '/about',                        label: 'About' },
  { path: '/contact',                      label: 'Contact' },
];

/* --- Service specs --- */
const SERVICES = {
  'paid-media': {
    slug: 'paid-media',
    title: 'Paid media',
    h1: 'Paid media management for service businesses',
    lede: 'Genesis DMA is a paid media agency that builds, launches and scales Meta and Google ad systems for service businesses across the United States.',
    metaTitle: 'Meta Ads & Google Ads Agency for Service Businesses | Genesis DMA',
    metaDesc: 'Full-service paid media management on Meta and Google. We build, launch and scale ad systems that generate qualified leads for service businesses across the US.',
    keywords: ['meta ads agency','google ads agency','paid media agency service businesses'],
    whatWeDo: [
      'Paid media is the engine that turns budget into qualified pipeline. Done well, it produces a predictable flow of leads at a cost per lead you can plan against. Done poorly, it drains cash and teaches you nothing.',
      'We build paid media systems for service businesses — cleaning, home services, auto, medical and professional trades — where the unit economics depend on getting the right lead to the right phone at the right time. Our work starts with the offer and the audience, not the platform.',
      'We run Meta and Google as a connected system, not two silos. Search captures demand; Meta creates it. Every dollar is tracked to a real outcome — a booked call, a signed contract, a returned customer — not a click or a soft conversion.',
      'We do not sell retainers disconnected from outcomes. If the ads are not working, something specific is broken, and we fix it.',
    ],
    deliverables: [
      ['Account build','Full Meta + Google account structure with clean naming, proper conversion events and attribution windows.'],
      ['Creative system','A rolling library of ad variations — hooks, statics, UGC, video — tested against a clear benchmark.'],
      ['Landing pages','Fast, conversion-engineered landers tied to each campaign and audience.'],
      ['Audience strategy','Lookalike, interest and retargeting cohorts mapped to stages of awareness.'],
      ['Offer design','We help shape the offer before we run the media — better offers beat better ads.'],
      ['Weekly reporting','One clean dashboard: spend, leads, CPL, CAC, revenue. No vanity metrics.'],
    ],
    process: [
      ['Audit','Review existing accounts, landing pages, tracking and CRM integration. Document what works and what is leaking.'],
      ['Strategy','Define target CPL, CAC and payback period. Pick platforms and offers that fit the economics.'],
      ['Build','Stand up account structure, tracking, creative library and landing pages before a dollar is spent.'],
      ['Launch','Go live in controlled phases. Small budgets, tight feedback loops, daily optimization in the first 30 days.'],
      ['Scale','Once unit economics are proven, scale spend by 20–40% per cycle and expand to adjacent audiences.'],
    ],
    stack: ['Meta Ads Manager','Google Ads','Google Tag Manager','GA4','Triple Whale','Hyros','Unbounce','Webflow'],
    results: [
      ['-38%','Average CPL reduction in first 90 days, across cleaning and home-services accounts.'],
      ['3.1x','Average return on ad spend after month four, once creative library matures.'],
      ['< 21 days','Typical time from kickoff to first paid lead in the pipeline.'],
    ],
    faqs: [
      ['How much should I spend on ads to start?','For most service businesses we recommend a minimum of $3,000/month in media on a single platform. Below that, statistical significance is hard and optimization stalls. We prefer $5,000–$10,000/month when the goal is scale.'],
      ['What is a realistic cost per lead?','It depends entirely on your service and ticket size. Residential cleaning averages $22–$45 per lead on Meta. HVAC and roofing often sit at $60–$140. We set the target in week one based on your economics, not an industry benchmark.'],
      ['Meta or Google — which platform first?','If people actively search for your service (HVAC, emergency plumbing, dental), start with Google. If the buying decision is more considered or lifestyle-driven (medspas, coworking, cleaning), start with Meta. Most accounts end up running both.'],
      ['How long until ads are profitable?','Most of our accounts hit positive unit economics in weeks 6–10. Before that, we are buying information. After that, we are buying growth. Anyone promising profit in week one is either lucky or lying.'],
      ['Do you require long-term contracts?','No. We work on 30-day rolling terms after a 60-day build-and-launch commitment. If we are not performing, you should not be locked in.'],
      ['Do you charge a percentage of ad spend?','No. We charge a flat monthly management fee. Percentage-of-spend incentivizes agencies to increase your budget regardless of performance. We think that is backwards.'],
      ['Who owns the ad accounts?','You do. Accounts are created under your business manager. If we part ways, everything — accounts, creative, landing pages — stays with you.'],
    ],
    related: ['search','crm'],
  },
  'search': {
    slug: 'search',
    title: 'Search & GEO',
    h1: 'SEO and generative engine optimization',
    lede: 'Genesis DMA is an SEO and GEO agency that helps service businesses rank on Google and get cited by ChatGPT, Claude, Perplexity and Google AI Overviews.',
    metaTitle: 'SEO & GEO Services — Rank on Google and in AI Answers | Genesis DMA',
    metaDesc: 'Traditional SEO plus generative engine optimization. We help service businesses rank on Google and get cited by ChatGPT, Claude, Perplexity and Google AI Overviews.',
    keywords: ['seo agency','generative engine optimization','geo agency','ai seo'],
    whatWeDo: [
      'Search is no longer just Google. Half of your future customers will get answers from AI assistants that cite two or three sources and move on. If you are not one of those sources, you are invisible — even if you rank first on a classic results page.',
      'GEO (generative engine optimization) is the discipline of getting your business cited by large language models when users ask buying questions. It shares DNA with SEO — entity clarity, topical authority, clean structured data — but the evaluation loop is different. We optimize for both.',
      'For service businesses, this looks like: a defensible set of city + service pages that rank in Google, paired with deeply structured content (FAQs, definitions, comparisons, schema) that LLMs can extract and cite with confidence.',
      'We do not chase vanity keywords. We rank for the terms that put you in front of people with a budget and a calendar.',
    ],
    deliverables: [
      ['Technical audit','Crawl, indexation, Core Web Vitals and schema health, plus a fix list prioritized by impact.'],
      ['Keyword + entity map','The queries you should own — grouped by intent, stage and revenue potential.'],
      ['Content engine','A publishing cadence of pages engineered for both search and LLM citation.'],
      ['Local SEO','Google Business Profile, NAP hygiene, local citations and review systems.'],
      ['GEO content blocks','FAQ, comparison and definition modules tuned for extraction by AI assistants.'],
      ['Schema & structured data','Organization, Service, FAQPage, LocalBusiness, BreadcrumbList — validated and monitored.'],
    ],
    process: [
      ['Audit','Full technical, on-page and entity audit. Identify crawl blockers, ranking gaps and GEO opportunities.'],
      ['Strategy','Map keywords, queries and entities to pages. Define publishing cadence and priority topics.'],
      ['Build','Rework the site architecture, templates and schema. Ship baseline on-page for priority pages.'],
      ['Publish','Roll out new content weekly — service pages, guides, comparisons — each optimized for search and AI.'],
      ['Monitor','Track rankings, AI citations, organic conversions and adjust. SEO is a system, not a launch.'],
    ],
    stack: ['Ahrefs','Screaming Frog','Search Console','GA4','SurferSEO','Perplexity Labs','ChatGPT','Claude'],
    results: [
      ['+112%','Average organic traffic growth at month 9 for core service pages.'],
      ['4.2x','Average increase in AI assistant citations within 6 months of GEO work.'],
      ['Top 3','Local pack position achieved for 70%+ of targeted city + service combinations.'],
    ],
    faqs: [
      ['What is GEO?','GEO (generative engine optimization) is the practice of structuring your website and content so that AI systems like ChatGPT, Claude, Perplexity and Google AI Overviews cite your business when users ask relevant questions. It is SEO evolved for a world where assistants, not search result pages, deliver answers.'],
      ['How is GEO different from SEO?','SEO optimizes for ranking in a list of blue links. GEO optimizes for being selected as a source inside an AI-generated answer. SEO rewards authority and backlinks; GEO additionally rewards clarity, structure, factuality and entity consistency. The overlap is real, but the tactics diverge in how you write and mark up pages.'],
      ['Do I need both SEO and GEO?','Yes. Google still drives the majority of commercial search traffic. But AI assistants now handle a rising share of discovery and research queries — and they rarely show ten sources. If you want to be visible in both places, you need a strategy for both.'],
      ['How long does SEO take to work?','For service businesses, meaningful traffic movement usually takes 4–6 months. Local pack visibility can move in 6–10 weeks. National competitive terms take 9–18 months. Anyone promising page one in 30 days is promising something they cannot deliver.'],
      ['How do AI answers choose their sources?','LLMs lean toward pages with clear entity definitions, structured data, specific facts and repeated corroboration across the web. They favor content that directly answers the question in the first paragraph, uses proper semantic HTML and has consistent citations of the same entity name across other sites.'],
      ['Will my old SEO content still work?','Usually, yes — but it needs editing. Most older SEO content is keyword-stuffed and vague. We rewrite the top pages with direct answers, clean structure and schema, which typically lifts both Google rankings and AI citation rates at the same time.'],
      ['Do you build backlinks?','We do light digital PR and partnership outreach when it genuinely helps. We do not run link farms or buy PBN links. For the businesses we serve, on-page and local signals move the needle more than volume link-building.'],
    ],
    related: ['content','analytics'],
  },
  'crm': {
    slug: 'crm',
    title: 'CRM',
    h1: 'CRM and sales systems on GoHighLevel',
    lede: 'Genesis DMA is a GoHighLevel agency that implements CRM, pipelines, automations and attribution so service businesses close more of the leads they already have.',
    metaTitle: 'GoHighLevel CRM Agency & Sales System Implementation | Genesis DMA',
    metaDesc: 'Complete CRM implementation on GoHighLevel. Pipelines, automations, follow-up sequences and attribution — built to close more of the leads you already have.',
    keywords: ['gohighlevel agency','ghl implementation','crm for service businesses','sales system agency'],
    whatWeDo: [
      'Most service businesses do not have a lead problem. They have a follow-up problem. Leads arrive, sit in an inbox, get a single call and die. A CRM is the system that stops that from happening.',
      'We implement GoHighLevel end to end: pipelines modeled on how your team actually sells, automations that handle the predictable work, call routing and SMS that catch leads in the first five minutes, and reporting that tells you where the pipeline actually leaks.',
      'We chose GoHighLevel because it bundles the pieces most service businesses otherwise glue together — CRM, SMS, email, calendars, call tracking, forms, pipelines — into one system with a sane price. For teams above 20 users with heavy ops requirements, HubSpot or Salesforce may be a better fit. We will tell you if that is the case.',
      'The goal is simple: every lead reaches the right person on the right channel fast enough to matter.',
    ],
    deliverables: [
      ['Pipeline design','Multi-stage pipelines tied to how your team actually sells, with clear stage definitions.'],
      ['Lead routing','Round-robin, geographic or skill-based routing with SMS + email + call notifications.'],
      ['Follow-up sequences','7-, 14- and 30-day sequences for unresponsive leads — across SMS, email and voicemail drop.'],
      ['Calendar + booking','Two-way calendar sync, confirmation and no-show sequences that lift show rates.'],
      ['Attribution wiring','Every contact tagged by source, campaign and landing page so you can measure ROI per channel.'],
      ['Team training','Loom walkthroughs and a live session to get your team actually using the system.'],
    ],
    process: [
      ['Map','Document current lead flow, handoffs, drop-off points and tooling. Nothing is built until this is clear.'],
      ['Design','Draft pipeline stages, automation triggers and SLAs. Review with your sales lead before building.'],
      ['Build','Configure GHL: pipelines, automations, forms, calendars, SMS/email templates, integrations.'],
      ['Migrate','Import existing contacts, tag by source, preserve notes and history. Set up reporting.'],
      ['Train + iterate','Train the team, watch the system in production, tune for the first 30 days.'],
    ],
    stack: ['GoHighLevel','Twilio','Google Calendar','Zapier','n8n','Stripe','QuickBooks','Calendly'],
    results: [
      ['+29%','Average lift in lead-to-appointment rate after automation rollout.'],
      ['< 90 sec','Average first-response time to inbound leads once routing is live.'],
      ['2.4x','Typical increase in reactivated pipeline revenue from existing database in first quarter.'],
    ],
    faqs: [
      ['Why GoHighLevel over HubSpot or Salesforce?','For service businesses under 50 users, GoHighLevel offers the best bundle of CRM, SMS, email, calendars and automation at a predictable monthly cost. HubSpot and Salesforce are more powerful but cost 5–15× more once you add the messaging and automation tools GHL includes natively. If you need deep enterprise integrations, those platforms may be a better fit.'],
      ['How long does implementation take?','A standard implementation takes 3–5 weeks: one week of discovery and design, two to three weeks of build and integration, and a final week of migration and training. Complex accounts with multiple business units or large data migrations can take 6–8 weeks.'],
      ['Can you migrate from our current CRM?','Yes. We have migrated from HubSpot, Salesforce, Pipedrive, Zoho, Monday and raw spreadsheets. We preserve contacts, notes, activity history and custom fields wherever the export allows. A proper migration plan is part of every engagement.'],
      ['Do you train our team?','Yes. Every engagement includes role-specific training: one session for sales reps, one for managers and recorded walkthroughs for onboarding new hires. We also write internal SOPs tailored to your pipeline.'],
      ['What is included in your GHL implementation?','Pipeline design, up to 25 automations, email + SMS templates, calendar setup, form + landing page templates, one inbound phone number with call tracking, GA4 and Google Ads offline conversion sync, and 30 days of post-launch support.'],
      ['Do we need a full-time admin to run it?','No, but you need an internal owner. Most of our clients have one operations person who spends 4–8 hours a week maintaining the system. We hand off a system that is meant to be owned, not babysat.'],
      ['What happens if we leave?','You own the GHL account and all data. We transfer ownership in one click. Your automations, templates and pipelines remain intact. We keep documentation in your Google Drive, not ours.'],
    ],
    related: ['automation','analytics'],
  },
  'automation': {
    slug: 'automation',
    title: 'Automation & AI',
    h1: 'Marketing automation and AI systems',
    lede: 'Genesis DMA is a marketing automation agency that builds custom workflows on n8n, paired with AI agents and MCP integrations, for service businesses that want to stop doing repetitive work.',
    metaTitle: 'Marketing Automation Agency — n8n, AI & Custom Workflows | Genesis DMA',
    metaDesc: 'Custom automation built on n8n, with AI agents and MCP integrations. We automate the repetitive work so your team focuses on what actually moves revenue.',
    keywords: ['marketing automation agency','n8n agency','ai automation agency','workflow automation'],
    whatWeDo: [
      'Most growing service businesses have a hidden tax: repetitive work that happens in every deal. Lead enrichment, data sync between tools, proposal generation, review requests, reporting — minutes per task, hours per week, an entire role over a year.',
      'Automation is the work of making that tax disappear. We build custom workflows on n8n — self-hosted or cloud — that connect your ads, CRM, calendar, billing, docs and data warehouse, then layer AI agents on top for the parts that require reasoning rather than rules.',
      'We prefer n8n over Zapier for most production workflows. It is cheaper at scale, lets us write real logic, handles branching and error recovery, and we can host it where your data lives. For simple two-step automations, Zapier or Make can still be the right tool.',
      'Where AI helps, we use it: qualifying inbound leads, drafting follow-ups, summarizing calls, routing tickets, generating briefs. Where AI is a liability, we do not use it. Automations you cannot debug are worse than automations you do not have.',
    ],
    deliverables: [
      ['Workflow audit','Map repeated work across your team. Rank automations by hours saved and error risk.'],
      ['n8n build','Production workflows with error handling, retries, alerts and version control.'],
      ['AI agents','Task-scoped agents for lead qualification, follow-up drafting and internal research.'],
      ['MCP integrations','Model Context Protocol connectors so your AI tools read your real systems safely.'],
      ['Monitoring','Logging, alerting and dashboards so broken automations surface before they cause damage.'],
      ['Runbook','Written documentation and Loom videos for every workflow your team depends on.'],
    ],
    process: [
      ['Audit','Shadow the team for a week. Document every repeated task, its trigger, its tools and its time cost.'],
      ['Prioritize','Rank workflows by hours saved per week and risk of breakage. Start with high value, low fragility.'],
      ['Build','Implement on n8n. Use real error handling, retries and alerts — not happy-path scripts.'],
      ['Launch','Ship one workflow at a time, run it parallel to manual work until trust is earned, then cut over.'],
      ['Maintain','Monitor logs, patch broken integrations, expand coverage as the business evolves.'],
    ],
    stack: ['n8n','Zapier','Make','OpenAI','Anthropic','Model Context Protocol','Supabase','Airtable'],
    results: [
      ['12–18 hrs','Typical weekly time saved per 10-person team in the first wave of automations.'],
      ['-60%','Average reduction in manual data entry across CRM, billing and reporting stacks.'],
      ['99.2%','Automation success rate after the first 30 days of monitoring and tuning.'],
    ],
    faqs: [
      ['What is n8n?','n8n is an open-source workflow automation platform. Think of it as Zapier with real programming. It connects hundreds of services, runs custom JavaScript, handles branching logic and error recovery, and can be self-hosted on your own infrastructure so data never leaves your environment.'],
      ['Why use n8n instead of Zapier or Make?','For simple 1–2 step automations, Zapier is fine. For production workflows that run thousands of times per month, need branching logic, use custom code or have compliance requirements, n8n is significantly cheaper and more capable. We pick the tool that fits the workflow, not the other way around.'],
      ['Can AI agents replace my team?','No, and we would not suggest trying. AI agents are effective at scoped, repetitive cognitive work — qualifying leads, drafting follow-ups, summarizing calls, classifying tickets. They are unreliable at judgment calls, relationship work and anything requiring accountability. The right pattern is AI handling the first draft, humans handling the decision.'],
      ['What can be automated in a typical service business?','Lead enrichment, CRM sync between ads platforms, proposal generation, review requests after job completion, invoice reminders, appointment reminders, internal reports, data handoffs between sales and ops, and triage of inbound emails. Usually 20–40 distinct workflows exist in a single business once you look for them.'],
      ['How do you prevent automations from breaking silently?','Every workflow we build has structured logging, retry logic and failure alerts that route to Slack or email. We run a monthly health check on high-value workflows and keep version history so any change can be rolled back. Automations fail — the question is whether you find out in five minutes or five weeks.'],
      ['Is AI automation secure?','It depends on architecture. We default to self-hosted n8n, scoped API keys, minimum-permission service accounts and MCP integrations where the AI never writes to production without human approval. We do not pipe customer PII into public AI endpoints without explicit consent and contract.'],
      ['What is MCP?','MCP (Model Context Protocol) is an open standard that lets AI assistants safely connect to your tools and data — your CRM, your docs, your database — through well-defined interfaces. It replaces the old pattern of giving AI tools broad API keys. We build MCP servers for internal tools so your team can query systems in plain English without compromising security.'],
    ],
    related: ['crm','analytics'],
  },
  'content': {
    slug: 'content',
    title: 'Content',
    h1: 'Content and creative for performance',
    lede: 'Genesis DMA is a performance content agency that writes ad copy, landing pages and video scripts engineered for conversion — tested, measured and tied to revenue.',
    metaTitle: 'Performance Content & Ad Creative Agency | Genesis DMA',
    metaDesc: 'Ad copy, landing pages and video scripts engineered for conversion. Every piece is tested, measured and tied to revenue — not vanity metrics.',
    keywords: ['ad creative agency','landing page copywriter','performance content agency'],
    whatWeDo: [
      'Content is the single biggest lever in paid media. On mature accounts, creative drives 70% of variance in performance — bigger than audience, bidding or budget. A campaign with the right creative beats a campaign with the wrong creative by multiples, not percentages.',
      'We build a content system: ad copy, statics, video scripts and landing pages, produced on a cadence and judged by the same metrics as media. Every asset is tagged, every variation is tracked, every loss is documented so the next batch is better.',
      'Our writing is not brand voice for its own sake. It is specific, concrete, and built around one or two ideas the audience can repeat after one read. We start from interviews — sales calls, customer reviews, support threads — not from a blank page.',
      'Creative is not a deliverable we ship and forget. It is a library we keep feeding, because the best ad of this month will stop working in three.',
    ],
    deliverables: [
      ['Ad copy library','A rolling set of hooks, primary texts and headlines — tested weekly against a clear benchmark.'],
      ['Landing pages','Long-form and short-form landers engineered for paid traffic, with clear conversion hypotheses.'],
      ['Video scripts','UGC, founder-led and studio formats written for the first 3 seconds, not the last 30.'],
      ['Creative briefs','Tight briefs for editors and designers so production stays on pattern and off vibe.'],
      ['Message testing','Structured tests on hooks, angles and offers before production scales.'],
      ['Content audits','Review existing assets, rank by performance, retire losers and double down on winners.'],
    ],
    process: [
      ['Research','Interviews, sales calls, review mining and competitor teardown. Harvest real customer language.'],
      ['Angle bank','Build a running list of angles, hooks and proof points ranked by confidence and novelty.'],
      ['Write','Produce copy and scripts in batches, matched to the funnel stage and audience.'],
      ['Test','Ship with clear hypotheses, run against a control, kill or scale based on statistical wins.'],
      ['Scale','Turn winners into templates. Vary hook, visual, caller and setting to extend creative lifespan.'],
    ],
    stack: ['Figma','Notion','Descript','CapCut','Webflow','Unbounce','Copy.ai','GPT'],
    results: [
      ['2.6x','Median lift in click-through rate on new creative batches against prior 30-day winner.'],
      ['+41%','Average landing page conversion rate improvement after first rebuild.'],
      ['< 14 days','Typical turnaround from brief to in-market ad creative.'],
    ],
    faqs: [
      ['Do you write in English and Spanish?','We write in English. For Spanish-language creative we partner with native speakers rather than translating, because translated ad copy almost always underperforms native copy in A/B tests. If you need bilingual campaigns, we will bring the right writer in.'],
      ['How many ad variations do you produce per month?','For most accounts we ship 12–20 new creative variations per month — a mix of fresh hooks, variations on winning angles and new formats. The cadence depends on budget; high-spend accounts burn through creative faster and need more.'],
      ['Do you handle video production?','We write scripts, direct shoots and edit. We do not run in-house studios, but we have a bench of editors and UGC creators we trust. For founder-led video, we coach and direct remotely; for UGC, we brief and QA.'],
      ['How do you measure creative?','By the metrics that tie to revenue: hook rate, CTR, cost per lead, cost per qualified lead and ROAS. We do not evaluate by likes, shares or brand lift unless those are explicit goals. Every creative ships with a hypothesis and a benchmark.'],
      ['Do you build landing pages?','Yes. We design and build landing pages in Webflow, Unbounce or inside your CMS. Every page has a conversion hypothesis, a primary action, and proper tracking wired to your ad accounts and CRM.'],
      ['Can you work with our existing designers?','Yes. We often act as the strategy and copy layer on top of an in-house design team. We write scripts and briefs, they execute, we review against the performance benchmark. This pattern works well when the in-house team knows the brand and we bring the performance discipline.'],
    ],
    related: ['paid-media','search'],
  },
  'analytics': {
    slug: 'analytics',
    title: 'Analytics',
    h1: 'Analytics, attribution and call tracking',
    lede: 'Genesis DMA is a marketing attribution agency that sets up call tracking, offline conversion imports and clean reporting so service businesses know exactly which ad, keyword and channel drives every lead and every dollar.',
    metaTitle: 'Marketing Attribution & Call Tracking Agency | Genesis DMA',
    metaDesc: 'Know exactly which ad, keyword and channel drives every lead and every dollar. Call tracking, offline conversion import and clean reporting — built on real data.',
    keywords: ['call tracking agency','marketing attribution','offline conversion tracking'],
    whatWeDo: [
      'You cannot scale a channel you cannot measure. Most service businesses make optimization decisions on noisy data — form fills that never called back, calls with no source, revenue that lives in QuickBooks and never touches the ad platform.',
      'Our attribution work closes those gaps. Every lead gets a source. Every call gets a keyword. Every closed deal gets pushed back into Meta and Google so the algorithms optimize toward revenue, not form fills.',
      'We keep reporting small and honest. One dashboard, the metrics that actually matter, refreshed daily. We would rather you look at five numbers you trust than fifty you do not.',
      'This work is unglamorous. It is also the difference between spending $20k a month with your eyes open and spending $20k a month with them closed.',
    ],
    deliverables: [
      ['Tracking audit','Find leaks: missing events, duplicate conversions, broken UTM chains, orphan leads.'],
      ['Call tracking','Dynamic number insertion by source, with call recording, scoring and CRM integration.'],
      ['Offline conversion sync','Push closed revenue from CRM back into Meta and Google — daily or live.'],
      ['Dashboard','A single report — spend, leads, qualified leads, CAC, revenue by channel, updated daily.'],
      ['Attribution model','First-touch, last-touch and blended views with your actual customer journey.'],
      ['Data QA','Monthly reconciliation between ad platforms, CRM and accounting so numbers agree.'],
    ],
    process: [
      ['Audit','Trace the data path from ad to revenue. Document gaps, duplicates and dead ends.'],
      ['Design','Define events, parameters, naming conventions and reporting cadence.'],
      ['Build','Configure GTM, GA4, CRM, call tracking and ad platform integrations. Validate every event.'],
      ['Connect','Wire offline conversions from CRM and billing back into Meta and Google Ads.'],
      ['Report','Stand up the dashboard. Reconcile weekly against CRM and accounting until numbers match.'],
    ],
    stack: ['GA4','GTM','CallRail','Hyros','Triple Whale','Looker Studio','BigQuery','Supermetrics'],
    results: [
      ['+100%','Typical visibility uplift — previously-untracked calls and offline deals now attributed.'],
      ['-22%','Average CAC reduction after offline conversion import helps platforms optimize to revenue.'],
      ['1','Number of dashboards we build per client — on purpose.'],
    ],
    faqs: [
      ['What tools do you use for tracking?','GA4 and Google Tag Manager for web, CallRail for call tracking, Hyros or Triple Whale where appropriate, plus native integrations for Meta, Google and your CRM. We use Looker Studio or a BigQuery-backed dashboard for reporting.'],
      ['How does call tracking work?','We use dynamic number insertion: when a visitor arrives from a specific ad or keyword, the phone number on your site swaps to a tracking number tied to that source. When they call, we capture the source, keyword, campaign and recording, and push it into your CRM alongside form fills.'],
      ['Can you import offline sales back into Google Ads?','Yes. We wire your CRM (or billing system) to Google Ads Enhanced Conversions and Meta Conversions API. Once a deal closes, the revenue and timestamp flow back to the ad platform so its algorithm optimizes toward actual revenue, not form fills.'],
      ['Do you build custom dashboards?','Yes — but small ones on purpose. Most dashboards fail because they have too many metrics. We build a single operator dashboard with the six to eight numbers that actually drive decisions, refreshed daily, with drill-down if needed.'],
      ['How often do we get reports?','The dashboard refreshes daily. We send a written performance note weekly with observations and recommendations, and a longer review monthly covering unit economics, creative performance and the plan for the next cycle.'],
      ['How long does attribution setup take?','A standard attribution build takes 2–3 weeks: one week of audit and design, one to two weeks of implementation and validation. Complex stacks with multiple business units or legacy systems can take 4–6 weeks.'],
      ['What is the difference between GA4 and true attribution?','GA4 is a web analytics tool. It sees what happens on your site. True attribution also sees what happens off your site — calls that became customers, deals that closed six weeks later, revenue booked in QuickBooks. GA4 is a component, not the whole system.'],
    ],
    related: ['paid-media','crm'],
  },
};

/* --- JSON-LD builders --- */
function ldOrganization() {
  return {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": SITE.url + "#organization",
    "name": SITE.name,
    "url": SITE.url,
    "logo": SITE.url + "/logo.png",
    "foundingDate": SITE.founded,
    "email": SITE.email,
    "telephone": SITE.phone,
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "2800 Post Oak Blvd, Suite 4100",
      "addressLocality": SITE.city,
      "addressRegion": SITE.region,
      "postalCode": "77056",
      "addressCountry": SITE.country,
    },
    "areaServed": { "@type": "Country", "name": "United States" },
    "sameAs": SITE.sameAs,
  };
}
function ldWebsite() {
  return {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "@id": SITE.url + "#website",
    "url": SITE.url,
    "name": SITE.name,
    "potentialAction": {
      "@type": "SearchAction",
      "target": SITE.url + "/?q={search_term_string}",
      "query-input": "required name=search_term_string",
    },
  };
}
function ldLocalBusiness() {
  return {
    "@context": "https://schema.org",
    "@type": "LocalBusiness",
    "name": SITE.name,
    "image": SITE.defaultOg,
    "telephone": SITE.phone,
    "email": SITE.email,
    "url": SITE.url,
    "priceRange": "$$$",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "2800 Post Oak Blvd, Suite 4100",
      "addressLocality": SITE.city,
      "addressRegion": SITE.region,
      "postalCode": "77056",
      "addressCountry": SITE.country,
    },
    "geo": { "@type": "GeoCoordinates", "latitude": 29.7490, "longitude": -95.4623 },
    "openingHoursSpecification": [{
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "09:00", "closes": "18:00"
    }],
    "sameAs": SITE.sameAs,
  };
}
function ldService(svc) {
  return {
    "@context": "https://schema.org",
    "@type": "Service",
    "name": svc.h1,
    "serviceType": svc.title,
    "provider": { "@id": SITE.url + "#organization" },
    "areaServed": { "@type": "Country", "name": "United States" },
    "description": svc.metaDesc,
    "url": SITE.url + "/capabilities/" + svc.slug,
  };
}
function ldFAQ(svc) {
  return {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": svc.faqs.map(([q, a]) => ({
      "@type": "Question",
      "name": q,
      "acceptedAnswer": { "@type": "Answer", "text": a },
    })),
  };
}
function ldBreadcrumb(items) {
  return {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": items.map((it, i) => ({
      "@type": "ListItem",
      "position": i + 1,
      "name": it.label,
      "item": SITE.url + it.path,
    })),
  };
}

window.SITE = SITE;
window.ROUTES = ROUTES;
window.SERVICES = SERVICES;
window.ldOrganization = ldOrganization;
window.ldWebsite = ldWebsite;
window.ldLocalBusiness = ldLocalBusiness;
window.ldService = ldService;
window.ldFAQ = ldFAQ;
window.ldBreadcrumb = ldBreadcrumb;
