<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Kodelytics Inc. Insights</title><description>Technical delivery leadership, paid media operations, analytics implementation, and reporting infrastructure for agencies and mid-market operators across Canada and the United States.</description><link>https://kodelytics.ca</link><language>en-ca</language><item><title>DebugView and Realtime as QA, and where they lie</title><link>https://kodelytics.ca/insights/debugview-and-realtime-as-qa-tools</link><guid isPermaLink="true">https://kodelytics.ca/insights/debugview-and-realtime-as-qa-tools</guid><description>Both tools tell you an event fired. Neither says it will be reported, attributed right, or fire for anyone but you. What each is for, and what it hides.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Budget alerts that reach a human in time</title><link>https://kodelytics.ca/insights/bigquery-budget-alerts-that-actually-fire</link><guid isPermaLink="true">https://kodelytics.ca/insights/bigquery-budget-alerts-that-actually-fire</guid><description>Default budget thresholds fire at 50, 90 and 100 percent, to billing admins, after the fact. Why that misses a runaway query and what to add.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Deduplicating the same conversion counted three times</title><link>https://kodelytics.ca/insights/deduplicating-conversions-across-platforms</link><guid isPermaLink="true">https://kodelytics.ca/insights/deduplicating-conversions-across-platforms</guid><description>A transaction ID only deduplicates within one conversion action. Here are the five kinds of double count, and which of them dedupe keys cannot touch.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Raising prices with existing clients</title><link>https://kodelytics.ca/insights/annual-price-increases-with-clients</link><guid isPermaLink="true">https://kodelytics.ca/insights/annual-price-increases-with-clients</guid><description>An annual increase needs a stated basis, a clause that anticipated it, and evidence. The CPI method, what it defends, and the three ways this goes wrong.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Capacity planning for a team that also sells</title><link>https://kodelytics.ca/insights/capacity-planning-for-a-services-team</link><guid isPermaLink="true">https://kodelytics.ca/insights/capacity-planning-for-a-services-team</guid><description>Sellable hours are what is left after statutory time off, selling and internal work. The subtraction ladder, with the Ontario entitlements filled in.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Setting a communication cadence and keeping it</title><link>https://kodelytics.ca/insights/client-communication-cadence-standards</link><guid isPermaLink="true">https://kodelytics.ca/insights/client-communication-cadence-standards</guid><description>A cadence only reduces interruption if the tooling enforces it. What a working calendar, a pause condition and a scheduled report actually guarantee.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Conversion lag: why last week&apos;s numbers are always wrong</title><link>https://kodelytics.ca/insights/conversion-lag-and-attribution-windows</link><guid isPermaLink="true">https://kodelytics.ca/insights/conversion-lag-and-attribution-windows</guid><description>Google Ads credits conversions back to the click date, so recent days keep filling in. What conversion windows do, and how to read a report still moving.</description><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate></item><item><title>When an access request reaches your analytics</title><link>https://kodelytics.ca/insights/access-requests-that-touch-marketing-data</link><guid isPermaLink="true">https://kodelytics.ca/insights/access-requests-that-touch-marketing-data</guid><description>Federal privacy law gives you 30 calendar days to answer an access request. Here is what that means once marketing data is in scope.</description><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Feed rules, or fix the source data</title><link>https://kodelytics.ca/insights/feed-rules-or-fix-the-source-data</link><guid isPermaLink="true">https://kodelytics.ca/insights/feed-rules-or-fix-the-source-data</guid><description>A feed rule fixes a Merchant Center problem in an hour and bills you for it every month after. When patching is right, and when it is debt.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Importing from Google Ads, and what the import breaks</title><link>https://kodelytics.ca/insights/importing-a-google-ads-account-into-microsoft</link><guid isPermaLink="true">https://kodelytics.ca/insights/importing-a-google-ads-account-into-microsoft</guid><description>The Google Ads import into Microsoft Advertising carries most of an account across. Here is what it silently drops, changes, or keeps importing forever.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Ad group theming now that close variants blur match types</title><link>https://kodelytics.ca/insights/ad-group-theming-after-close-variants</link><guid isPermaLink="true">https://kodelytics.ca/insights/ad-group-theming-after-close-variants</guid><description>Close variants mean the keyword you typed is not the query you bought. Theme ad groups by landing page and intent instead of by exact string.</description><pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Building keyword lists for English and French Canada</title><link>https://kodelytics.ca/insights/bilingual-keyword-lists-for-canada</link><guid isPermaLink="true">https://kodelytics.ca/insights/bilingual-keyword-lists-for-canada</guid><description>Nearly half of Quebec can search in either official language. Why a translated keyword list underperforms, and how to structure so French is visible.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Extracting SAP data for analytics</title><link>https://kodelytics.ca/insights/extracting-sap-data-for-analytics</link><guid isPermaLink="true">https://kodelytics.ca/insights/extracting-sap-data-for-analytics</guid><description>Five ways to get SAP data into a warehouse, what each costs in performance and effort, and the release contract that decides whether your extract survives.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Loading a million records without breaking the org</title><link>https://kodelytics.ca/insights/bulk-api-for-large-data-loads</link><guid isPermaLink="true">https://kodelytics.ca/insights/bulk-api-for-large-data-loads</guid><description>The synchronous API is the wrong tool above a few thousand records. How the Bulk API works, what partial failure looks like, and the checks to run first.</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Continuous integration for analytics code</title><link>https://kodelytics.ca/insights/azure-pipelines-for-analytics-code</link><guid isPermaLink="true">https://kodelytics.ca/insights/azure-pipelines-for-analytics-code</guid><description>SQL and tag configuration are code and rarely treated that way. What a pipeline should check, why branch policy is the real control, and where to start.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A risk register people update</title><link>https://kodelytics.ca/insights/a-risk-register-that-gets-updated</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-risk-register-that-gets-updated</guid><description>Most risk registers are written once and abandoned. The process design that keeps one alive: a hard row cap, named owners, review triggers and a closure rule.</description><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Confluence structure that people can find things in</title><link>https://kodelytics.ca/insights/confluence-space-structure-for-projects</link><guid isPermaLink="true">https://kodelytics.ca/insights/confluence-space-structure-for-projects</guid><description>Spaces, folders, labels, templates and archiving: how to shape Confluence so a project document is findable by somebody who did not write it.</description><pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A knowledge base that reduces tickets</title><link>https://kodelytics.ca/insights/a-knowledge-base-that-reduces-tickets</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-knowledge-base-that-reduces-tickets</guid><description>Most internal wikis never repay the hours spent on them. Build the articles from the ticket queue and measure whether questions stop arriving.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Writing assumptions so a broken one is observable</title><link>https://kodelytics.ca/insights/an-assumptions-register-that-works</link><guid isPermaLink="true">https://kodelytics.ca/insights/an-assumptions-register-that-works</guid><description>Most assumptions lists are hopes in list form. Four fields turn each one into something a junior PM can check on a Tuesday and act on the same day.</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Agile delivery inside a fixed-scope contract</title><link>https://kodelytics.ca/insights/agile-contracts-and-fixed-scope</link><guid isPermaLink="true">https://kodelytics.ca/insights/agile-contracts-and-fixed-scope</guid><description>Fixed price and iterative delivery are only incompatible if you fix the wrong thing. Fix the outcome and the budget, and let the implementation vary.</description><pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate></item><item><title>An AI policy for an agency of fifteen</title><link>https://kodelytics.ca/insights/an-ai-policy-for-a-small-agency</link><guid isPermaLink="true">https://kodelytics.ca/insights/an-ai-policy-for-a-small-agency</guid><description>A one-page AI policy grounded in Canadian privacy obligations: what data may go where, who approves, what gets disclosed, and how it is enforced.</description><pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Build the connector or buy it</title><link>https://kodelytics.ca/insights/connector-build-versus-buy-decision</link><guid isPermaLink="true">https://kodelytics.ca/insights/connector-build-versus-buy-decision</guid><description>The build is two days. The maintenance is forever. A total-cost comparison for marketing data connectors, with the arithmetic and the assumptions stated.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Dev, test and production for dashboards</title><link>https://kodelytics.ca/insights/bi-release-process-and-environments</link><guid isPermaLink="true">https://kodelytics.ca/insights/bi-release-process-and-environments</guid><description>Editing a live dashboard is deploying to production with no review. Three stages, what promotes between them, and a rollback that is not a screenshot.</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Calculated fields or warehouse logic</title><link>https://kodelytics.ca/insights/calculated-fields-or-warehouse-logic</link><guid isPermaLink="true">https://kodelytics.ca/insights/calculated-fields-or-warehouse-logic</guid><description>Business logic can live in a chart, a data source or the warehouse. The rule that decides which, and what each layer cannot do, with the arithmetic.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate></item><item><title>A data layer specification developers will actually build</title><link>https://kodelytics.ca/insights/data-layer-design-developers-will-implement</link><guid isPermaLink="true">https://kodelytics.ca/insights/data-layer-design-developers-will-implement</guid><description>Most data layer specs fail at the handoff, not the design. What a developer needs on the page to implement one without asking you three questions.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Custom dimensions: scope, registration and the retroactivity trap</title><link>https://kodelytics.ca/insights/custom-dimensions-registration-and-scope</link><guid isPermaLink="true">https://kodelytics.ca/insights/custom-dimensions-registration-and-scope</guid><description>Why a parameter collected for months shows nothing after you register it, how the three scopes differ, and the quota rules that shape the design.</description><pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Access control when the data belongs to your client</title><link>https://kodelytics.ca/insights/bigquery-access-control-for-client-data</link><guid isPermaLink="true">https://kodelytics.ca/insights/bigquery-access-control-for-client-data</guid><description>Multi-client isolation in BigQuery is an inheritance problem, not a trust problem. Grant levels, the group rule, and the offboarding test.</description><pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate></item><item><title>What data-driven attribution needs before it works</title><link>https://kodelytics.ca/insights/data-driven-attribution-what-it-needs</link><guid isPermaLink="true">https://kodelytics.ca/insights/data-driven-attribution-what-it-needs</guid><description>Google recommends 200 conversions and 2,000 ad interactions in 30 days. Here is what that costs in spend, and what to do when your account is below it.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate></item><item><title>An onboarding fee that actually covers setup</title><link>https://kodelytics.ca/insights/an-onboarding-fee-that-covers-setup</link><guid isPermaLink="true">https://kodelytics.ca/insights/an-onboarding-fee-that-covers-setup</guid><description>Month one costs a multiple of a steady-state month, and a waived setup fee turns that into a payback period. The arithmetic and what to put in the fee.</description><pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate></item><item><title>What to do with bench time before it becomes a cost</title><link>https://kodelytics.ca/insights/bench-time-and-what-to-do-with-it</link><guid isPermaLink="true">https://kodelytics.ca/insights/bench-time-and-what-to-do-with-it</guid><description>Bench time is already paid for, so the only question is what it buys. How to price a bench day, rank the uses, and stop the default from winning.</description><pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Getting permission to talk about the work</title><link>https://kodelytics.ca/insights/case-study-and-reference-permissions</link><guid isPermaLink="true">https://kodelytics.ca/insights/case-study-and-reference-permissions</guid><description>Permission to publish a case note is three separate approvals, not one. What each covers, when to ask, and what a testimonial legally requires.</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Consent mode v2: what actually changes</title><link>https://kodelytics.ca/insights/consent-mode-v2-what-actually-changes</link><guid isPermaLink="true">https://kodelytics.ca/insights/consent-mode-v2-what-actually-changes</guid><description>Two extra parameters, one real decision between basic and advanced, and a set of implementation details that decide whether any of it works. A practical read.</description><pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Adding a privacy review to a tracking project</title><link>https://kodelytics.ca/insights/a-privacy-review-step-in-a-tracking-project</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-privacy-review-step-in-a-tracking-project</guid><description>A short, timed gate inside a delivery workflow that catches privacy problems while they are still cheap, based on what the regulator asks for.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The feed fields that actually decide whether you show</title><link>https://kodelytics.ca/insights/feed-fields-that-decide-visibility</link><guid isPermaLink="true">https://kodelytics.ca/insights/feed-fields-that-decide-visibility</guid><description>Not every product attribute matters equally. A ranking of Merchant Center feed fields by what breaks when each one is wrong, with the spec limits.</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate></item><item><title>When the Microsoft Advertising API is worth the build</title><link>https://kodelytics.ca/insights/bing-ads-api-when-to-automate</link><guid isPermaLink="true">https://kodelytics.ca/insights/bing-ads-api-when-to-automate</guid><description>A build-versus-manual threshold for the Microsoft Advertising API, plus the SOAP retirement dates, throttling limits and sandbox limits that shape the plan.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Structuring an account that runs four months a year</title><link>https://kodelytics.ca/insights/account-structure-for-seasonal-businesses</link><guid isPermaLink="true">https://kodelytics.ca/insights/account-structure-for-seasonal-businesses</guid><description>A seasonal account pays a learning period every year it goes dark. How to structure around dormancy, and what seasonality adjustments cannot do.</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Bidding on competitor brand terms in Canada</title><link>https://kodelytics.ca/insights/bidding-on-competitor-brand-terms-in-canada</link><guid isPermaLink="true">https://kodelytics.ca/insights/bidding-on-competitor-brand-terms-in-canada</guid><description>Google does not restrict trademarks as keywords. It does restrict them in ad text, and Canadian law governs the impression your ad leaves. Three questions.</description><pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate></item><item><title>What a project manager needs to know about ABAP</title><link>https://kodelytics.ca/insights/abap-platform-what-a-pm-needs-to-know</link><guid isPermaLink="true">https://kodelytics.ca/insights/abap-platform-what-a-pm-needs-to-know</guid><description>Enough technical literacy to challenge an estimate, spot a schedule risk in a transport, and know which questions to ask. Not enough to write any code.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Apex triggers or Flows: deciding by who maintains it</title><link>https://kodelytics.ca/insights/apex-triggers-versus-flows</link><guid isPermaLink="true">https://kodelytics.ca/insights/apex-triggers-versus-flows</guid><description>The build decision is not about capability. It is about who will still be able to change this in two years, and what happens when both fire at once.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Cost controls for analytics workloads on Azure</title><link>https://kodelytics.ca/insights/azure-cost-controls-for-analytics</link><guid isPermaLink="true">https://kodelytics.ca/insights/azure-cost-controls-for-analytics</guid><description>A budget does not stop spending. What Azure cost controls actually do, why alerts arrive late, and the three that genuinely change the bill.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A project charter someone will actually read</title><link>https://kodelytics.ca/insights/a-project-charter-someone-actually-reads</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-project-charter-someone-actually-reads</guid><description>A project charter earns its place by recording decisions, not context. The one-page format, the seven things it must name, and how to sign it in one meeting.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Configuring estimation so the charts mean something</title><link>https://kodelytics.ca/insights/configuring-jira-estimation</link><guid isPermaLink="true">https://kodelytics.ca/insights/configuring-jira-estimation</guid><description>Jira estimation is two settings in two places, and the charts inherit both. What to configure, the subtask rule that silently deletes work, and when.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A change advisory board when there are three of you</title><link>https://kodelytics.ca/insights/a-change-advisory-board-of-three-people</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-change-advisory-board-of-three-people</guid><description>A CAB is a review body, not a meeting. How to keep the control that stops bad changes without the weekly ceremony a small team cannot afford.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Acceptance criteria for an analytics deliverable</title><link>https://kodelytics.ca/insights/acceptance-criteria-for-analytics-work</link><guid isPermaLink="true">https://kodelytics.ca/insights/acceptance-criteria-for-analytics-work</guid><description>A pipeline has no interface to demo. How to write acceptance for tracking, models, dashboards and scheduled reports so a milestone can actually be invoiced.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Which ceremonies a client should be in</title><link>https://kodelytics.ca/insights/agile-ceremonies-when-clients-attend</link><guid isPermaLink="true">https://kodelytics.ca/insights/agile-ceremonies-when-clients-attend</guid><description>An access model for client participation. Two ceremonies are outward-facing by design, two are not, and inviting a client to a retrospective ends it.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Where AI-assisted analysis goes wrong</title><link>https://kodelytics.ca/insights/ai-assisted-analysis-and-its-failure-modes</link><guid isPermaLink="true">https://kodelytics.ca/insights/ai-assisted-analysis-and-its-failure-modes</guid><description>A catalogue of failure modes in AI-assisted analysis, each with a detection step, and an honest line between what is documented and what people assume.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Backfilling three years of data without hitting a rate limit</title><link>https://kodelytics.ca/insights/api-rate-limits-and-backfill-strategy</link><guid isPermaLink="true">https://kodelytics.ca/insights/api-rate-limits-and-backfill-strategy</guid><description>Chunking, concurrency, backoff and checkpointing for a multi-year marketing backfill. Why the backfill is a different program from the nightly job.</description><pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Measuring whether anyone actually uses your BI platform</title><link>https://kodelytics.ca/insights/bi-adoption-metrics-worth-tracking</link><guid isPermaLink="true">https://kodelytics.ca/insights/bi-adoption-metrics-worth-tracking</guid><description>Licences assigned is not adoption. Six measures that show whether the platform replaced the spreadsheet, where each comes from, and how each gets gamed.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Blended data, and the joins that quietly break</title><link>https://kodelytics.ca/insights/blended-data-and-when-it-breaks</link><guid isPermaLink="true">https://kodelytics.ca/insights/blended-data-and-when-it-breaks</guid><description>Blends collapse rows before they join, so a Looker Studio blend can return fewer rows than the same SQL. The failure modes, and how to spot each one.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Custom HTML tags are code deployment</title><link>https://kodelytics.ca/insights/custom-html-tags-and-security-review</link><guid isPermaLink="true">https://kodelytics.ca/insights/custom-html-tags-and-security-review</guid><description>Anyone with publish rights can ship arbitrary JavaScript to every page, bypassing code review. What the platform offers instead, and how to enforce it.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Cross-domain measurement, and how it silently fails</title><link>https://kodelytics.ca/insights/cross-domain-measurement-setup</link><guid isPermaLink="true">https://kodelytics.ca/insights/cross-domain-measurement-setup</guid><description>The config looks right and sessions still break. How the GA4 linker parameter works, the three things that strip it, and how to diagnose it in minutes.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Archiving old marketing data without deleting it</title><link>https://kodelytics.ca/insights/archiving-old-marketing-data-cheaply</link><guid isPermaLink="true">https://kodelytics.ca/insights/archiving-old-marketing-data-cheaply</guid><description>Storage is the smallest line on the bill, and long-term pricing is automatic per partition. Where tiering pays, and where it just adds a restore job.</description><pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Attribution models, explained without the jargon</title><link>https://kodelytics.ca/insights/attribution-models-explained-without-jargon</link><guid isPermaLink="true">https://kodelytics.ca/insights/attribution-models-explained-without-jargon</guid><description>What an attribution model actually decides, which models Google Ads still supports, and the four other settings people keep mistaking for the model itself.</description><pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A proposal structure that gets signed</title><link>https://kodelytics.ca/insights/a-proposal-structure-that-gets-signed</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-proposal-structure-that-gets-signed</guid><description>A proposal is read by four people who each open a different page. The order that survives that, how to price it in lines, and what to move to the appendix.</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate></item><item><title>A skills matrix for a team of eight</title><link>https://kodelytics.ca/insights/a-skills-matrix-for-a-small-technical-team</link><guid isPermaLink="true">https://kodelytics.ca/insights/a-skills-matrix-for-a-small-technical-team</guid><description>Capability mapping that exposes key-person risk. How to pick the rows, score honestly, read the coverage count, and act on the ones that come back as 1.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Splitting the account manager and delivery lead roles</title><link>https://kodelytics.ca/insights/account-manager-or-delivery-lead</link><guid isPermaLink="true">https://kodelytics.ca/insights/account-manager-or-delivery-lead</guid><description>The split is not a seniority ladder, it is a conflict fix. The arithmetic that shows when one person can no longer hold both jobs, and what each owns.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate></item><item><title>The client reporting cycle that eats your first week</title><link>https://kodelytics.ca/insights/automated-client-reporting-monthly-cycle</link><guid isPermaLink="true">https://kodelytics.ca/insights/automated-client-reporting-monthly-cycle</guid><description>Reporting consumes senior time at the least profitable moment of the month. What to automate, what to keep human, and why automating the wrong half backfires.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>The GA4 events that break without telling you</title><link>https://kodelytics.ca/insights/ga4-events-that-break-silently</link><guid isPermaLink="true">https://kodelytics.ca/insights/ga4-events-that-break-silently</guid><description>The tracking failures that matter are conditional: the mobile form, the returning visitor, the booking redirect. Why they survive QA, and how to catch them.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>Your Google Ads account was hacked. The first four hours</title><link>https://kodelytics.ca/insights/google-ads-account-hacked-first-four-hours</link><guid isPermaLink="true">https://kodelytics.ca/insights/google-ads-account-hacked-first-four-hours</guid><description>What to do in the first four hours of an ad account compromise, and the one instinct that destroys your chance of recovering the money.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>Why your Google Ads account structure caps your ROAS</title><link>https://kodelytics.ca/insights/google-ads-account-structure-roas</link><guid isPermaLink="true">https://kodelytics.ca/insights/google-ads-account-structure-roas</guid><description>Account structure decides what your budget can respond to. Why architecture sets a ceiling on returns that no amount of ad copy testing can lift.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>LegitScript certification for Google Ads, explained</title><link>https://kodelytics.ca/insights/legitscript-certification-google-ads</link><guid isPermaLink="true">https://kodelytics.ca/insights/legitscript-certification-google-ads</guid><description>Google requires LegitScript certification before advertisers in certain healthcare categories can run ads. Who needs it, and why renewals get missed.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>Do you need a marketing data warehouse, or just a dashboard?</title><link>https://kodelytics.ca/insights/marketing-data-warehouse-or-dashboard</link><guid isPermaLink="true">https://kodelytics.ca/insights/marketing-data-warehouse-or-dashboard</guid><description>A dashboard is enough more often than vendors admit. The four conditions that make a warehouse worth its cost, and what it actually costs to run.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>Why you cannot measure cost per acquisition by location</title><link>https://kodelytics.ca/insights/multi-location-attribution-per-location-cpa</link><guid isPermaLink="true">https://kodelytics.ca/insights/multi-location-attribution-per-location-cpa</guid><description>Multi-location conversions are real in aggregate and unattributable per site. Why location goes missing, and how to fix it at the event layer.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>Story points or hour bands: estimating agency work</title><link>https://kodelytics.ca/insights/story-points-vs-hour-bands-agency-estimation</link><guid isPermaLink="true">https://kodelytics.ca/insights/story-points-vs-hour-bands-agency-estimation</guid><description>Story points measure relative size; hour bands communicate cost. Which to use for planning versus client commitments, and how to run both.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>What a Tableau Server to Cloud migration actually costs</title><link>https://kodelytics.ca/insights/tableau-server-to-cloud-migration-cost</link><guid isPermaLink="true">https://kodelytics.ca/insights/tableau-server-to-cloud-migration-cost</guid><description>Migrations fail on inventory, not technology. Where the time actually goes, why the estimate is usually wrong by a factor of two, and how to price it honestly.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>What a Google Ads MCC is, and when you actually need one</title><link>https://kodelytics.ca/insights/what-is-a-google-ads-mcc</link><guid isPermaLink="true">https://kodelytics.ca/insights/what-is-a-google-ads-mcc</guid><description>A manager account administers multiple Google Ads accounts under one login. What an MCC does, what it does not do, and the account count where it starts paying.</description><pubDate>Mon, 27 Jul 2026 21:52:00 GMT</pubDate></item><item><title>Why your Google Ads and GA4 conversion numbers don&apos;t match</title><link>https://kodelytics.ca/insights/why-google-ads-and-ga4-numbers-dont-match</link><guid isPermaLink="true">https://kodelytics.ca/insights/why-google-ads-and-ga4-numbers-dont-match</guid><description>Google Ads and GA4 count conversions differently by design. Which differences are structural, which are defects, and how to reconcile the two defensibly.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate></item><item><title>How to scope a fixed-fee SOW that doesn&apos;t lose money</title><link>https://kodelytics.ca/insights/how-to-scope-a-fixed-fee-sow</link><guid isPermaLink="true">https://kodelytics.ca/insights/how-to-scope-a-fixed-fee-sow</guid><description>Fixed-fee projects lose money in the scope document, not in delivery. The assumptions, exclusions and acceptance criteria that decide margin up front.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate></item><item><title>What a fractional technical project manager actually does (2026)</title><link>https://kodelytics.ca/insights/what-a-fractional-technical-project-manager-does</link><guid isPermaLink="true">https://kodelytics.ca/insights/what-a-fractional-technical-project-manager-does</guid><description>A fractional technical project manager owns delivery part-time: estimation, sequencing, scope control, QA and client communication. When to hire one.</description><pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate></item></channel></rss>