The useful half of a tracking plan is the list of things you decided not to measure, with the date and the reason. Without it, the document only grows, because adding an event always feels cheaper than defending its absence.

The costs of collection are real and they arrive later: cardinality you cannot undo, a hard cap on parameters, reports that will not display, and a larger surface for arguments about numbers nobody uses.

This page sets out the documented constraints that bound any plan, and a test for whether an event belongs in it.

Cardinality is permanent

Of all the mistakes available, this is the one you cannot fix afterwards.

The mechanism. The number of values assigned to a dimension is its cardinality. Any dimension with more than 500 values is considered high cardinality by the vendor, which describes 500 as guidance rather than a limit.

What happens past the table row limit. Values are condensed into an (other) row. The product surfaces the most common values and hides the rest inside it.

Why it is permanent. Cardinality is created at the moment of collection. You can stop sending the offending values today, but the historical data keeps them, and reports spanning that period keep the (other) row.

What creates it in practice. Query strings in page paths. Session identifiers. Order numbers. Product codes. Campaign names containing dates or unique strings. Anything that is different for every user or every visit.

The specific B2B version. Tracking a form submission with a parameter carrying the submitted email address or company name. It feels informative. It permanently degrades every report using that dimension, and the useful analysis is a count anyway.

The rule that prevents all of it. A dimension is for grouping. If a value will be nearly unique, it belongs in your CRM, not in your analytics dimension.

The constraints you are designing against

Four documented limits, worth knowing before the plan is written rather than after.

Parameters per event: 25. A hard cap, which forces a decision about what each event carries rather than attaching everything to hand.

Thresholding on demographic reports. System defined, not adjustable, with no published numeric threshold. Any report including demographic dimensions may simply not display its rows, and B2B audiences are small enough to hit this regularly.

Retention for explorations: 14 months maximum on a standard property. Standard aggregated reports are unaffected, but any exploration is capped there, and many B2B sales cycles are longer than that.

Attribution windows that differ by platform. One search platform defaults to a 30-day click window. One professional network defaults to 90-day click and 90-day view. The same conversion will be attributed differently by each, before any question of tracking quality arises.

And modelled conversions inside the same column. Advertising platforms report modelled and observed conversions together, with no separate label. Your tracking cannot fix that because it is not a tracking problem.

What all of this means for the plan. Some things you want to measure are not measurable at your tier, at your audience size, or across systems. Writing that down is more useful than attempting them and quietly failing.

Documented constraints bounding the design of a tracking planTable of the documented constraints against which any tracking plan must be designed, recording for each whether it can be worked around. Cardinality is created at the moment of collection and cannot be corrected afterwards: the analytics vendor treats any dimension with more than five hundred values as high cardinality, describing five hundred as guidance rather than a limit, and condenses values beyond the table row limit into an other row, so historical data retains the damage even after collection is corrected. Event parameters are capped at twenty-five per event, a hard limit that forces a decision about what each event carries rather than permitting everything available to be attached. Data thresholding applies to reports containing demographic dimensions, is system defined, cannot be adjusted by the account owner, and publishes no numeric threshold anywhere, meaning any report including demographic dimensions may simply fail to display its rows, a situation that small business-to-business audiences encounter regularly. Retention for explorations and funnel reports is capped at fourteen months on a standard property, while standard aggregated reports are unaffected, which means any exploration spanning a business-to-business sales cycle longer than fourteen months cannot be built at that tier. Attribution windows differ between platforms by default, with one search platform defaulting to a thirty-day click window and one professional network defaulting to ninety-day click and ninety-day view, so the same underlying conversion is attributed differently by each system before any question of tracking quality arises. Advertising platforms additionally report modelled and observed conversions together within the same column with no separate label, which no amount of tracking work can resolve because it is not a tracking problem. The practical implication is that certain desired measurements are not achievable at a given property tier, audience size or across systems, and recording that fact is more useful than attempting them and failing silently.What you are designing againstConstraintThe documented figureCan you work around it?Cardinality500 values, “a guidance”Only before collectionParameters per event25Choose what mattersThresholdingNone publishedNo. System defined.Retention, explorations14 months, standard tierOnly by upgradingAttribution windows30 days vs 90 days by defaultAlign them manuallyModelled conversionsInside the Conversions columnNo. Not a tracking issue.Some things you want are not measurable at your tier or your audience sizeWriting that down is more useful than attempting them and quietly failing, which is what usually happens.
Two of these cannot be worked around at all. Knowing which is the difference between a plan and a wish list. Source : Analytics and platform documentation (2026)

The test for whether an event belongs

One question, two parts, and it disposes of most proposals in under a minute.

Name the person who will look at it. Not a role. A person, who exists, whose job includes opening that report.

Name the decision that changes. Specifically: what would they do differently if the number were high, and what if it were low.

If either answer is missing, refuse the event. Write it on the refusal list with today’s date and the reason, so the same proposal does not return in six months as a new idea.

What this eliminates immediately. Scroll depth on pages nobody will redesign. Video plays on videos nobody will re-edit. Outbound link clicks nobody investigates. Every micro-interaction added because it was available.

What it keeps in a B2B account. Form submissions, split by form. Meeting bookings. Document downloads, if someone follows up on them. Pricing page views, if the sales team uses them in call preparation. Usually fewer than ten events.

Why fewer than ten is a feature. Every event you keep gets reviewed, understood and trusted. Every event you add dilutes attention across a larger surface, and the ones nobody looks at are exactly the ones that break silently.

The uncomfortable consequence. Most tracking plans should shrink. If yours has forty events and your business closes fifteen deals a quarter, the plan is measuring the website rather than the business.

Tracking breaks silently, and always has

The argument for a small plan is not tidiness. It is that broken tracking does not announce itself.

What a broken event looks like. Nothing. No error, no alert, no red row. The number simply stops rising, or starts rising from a different denominator, and the report continues to render.

When it happens. A website release changes a button class. A form vendor updates its embed. A consent banner changes category names. A developer renames a template. None of these are analytics changes, and none of them will be communicated to you.

Why plan size makes this worse. With eight events, somebody notices when one goes flat, because somebody looks at all eight. With forty, nobody looks at all forty, and the broken ones are by definition the ones nobody was watching.

The compounding version. A key event breaks, so conversions fall. The advertising platform optimising toward that event now receives fewer signals, and delivery degrades for a real reason caused by a fake one.

The cheap detection you can build today. A weekly check on the count of each key event against the previous four weeks. Not a dashboard, a list. Anything at zero, or down more than half, gets looked at.

And the cheapest of all. Submit your own form once a week and confirm the event fired. It takes two minutes and it catches the failure that costs the most.

Common causes of silent tracking failure and the detection method that catches themDiagram describing how analytics tracking fails silently and what detection is available. A broken event produces no visible signal: there is no error message, no alert and no indication in the interface, so the number simply ceases to rise or begins rising from a different denominator while the report continues to render normally. The common causes are all changes made outside the analytics system and generally not communicated to whoever owns measurement: a website release that changes a button class, a form vendor updating its embed code, a consent management banner changing its category names, or a developer renaming a template. The size of the tracking plan aggravates this problem directly, because with eight events somebody notices when one goes flat since somebody examines all eight, whereas with forty events nobody examines all forty and the events that break are by definition those nobody was watching. A compounding failure mode occurs when a key event breaks and conversions consequently fall: the advertising platform optimising toward that event then receives fewer conversion signals and its delivery degrades for a genuine algorithmic reason caused by an artefact of broken measurement. The detection method available cheaply is a weekly check of the count of each key event against the preceding four weeks, implemented as a list rather than a dashboard, with any event at zero or down by more than half being investigated. The cheapest detection of all is for the operator to submit their own form once per week and confirm the corresponding event fired, which takes approximately two minutes and catches the single failure that costs the most.Nothing tells you when tracking breaksWhat causes it, none of it yoursA release changes a button classA form vendor updates its embedA consent banner renames a categoryA developer renames a templateWhat you seeNothing.No error. No alert. No red row.The report renders perfectly, with a numberthat stopped meaning anything.Why a big plan makes it worseWith eight events, somebody notices one going flat. With forty, the broken ones are the ones nobody watched.And it compounds:fewer signals, so delivery degrades for real.The two-minute detection:submit your own form weekly. Confirm it fired.Plus a weekly list: each key event against the last four weeks. Zero, or down by half, gets looked at.
No error, no alert. The report renders perfectly with a number that stopped meaning anything. Source : Method (2026)

What to refuse, specifically

A starting refusal list, which you should adapt rather than copy.

Anything with a unique value going into a dimension. Emails, company names, order references, session identifiers. Permanent cardinality damage in exchange for information your CRM already holds.

Demographic segmentation on a small audience. It will be thresholded, the rows will not display, and you will spend an afternoon deciding whether the tracking broke. It did not.

Micro-engagement on pages you will not change. If there is no redesign budget, scroll depth on that page is a number you will look at and do nothing about.

Anything measured only to prove a channel’s value internally. That is a political requirement, not a measurement one, and it produces metrics designed to win arguments rather than inform decisions.

Cross-system reconciliation to the unit. Your platforms use different attribution windows by default and include modelled conversions in the same column as observed ones. Reconciling them exactly is not achievable; agreeing on which system is the system of record is.

Anything whose owner has left. Every tracking plan contains events set up by someone who is gone, still firing, still in reports, trusted by nobody. Delete them or claim them.

A two-part test for admitting an event to a tracking plan and the events it typically excludesDiagram presenting a two-part test for deciding whether a proposed event belongs in a tracking plan, together with the events that test typically excludes and retains. The first part of the test requires naming the specific person who will look at the resulting number, meaning an actual individual whose job includes opening that report rather than an abstract role. The second part requires naming the decision that changes as a result, specifically what that person would do differently if the number were high and what they would do differently if it were low. Where either answer cannot be supplied, the event should be refused and recorded on a refusal list together with the current date and the reason, so that the same proposal does not reappear months later presented as a new idea. This test typically eliminates scroll depth measurement on pages nobody intends to redesign, video play counts on videos nobody intends to re-edit, outbound link clicks nobody investigates, and the general category of micro-interactions added because they happened to be available. In a business-to-business account it typically retains form submissions separated by form, meeting bookings, document downloads where somebody follows up on them, and pricing page views where the sales team uses them in call preparation, which usually amounts to fewer than ten events in total. Fewer than ten is desirable because every retained event is reviewed, understood and trusted, whereas each additional event dilutes attention across a larger surface and the events nobody examines are precisely those that break without anyone noticing. The uncomfortable implication is that most tracking plans should shrink, since a plan containing forty events in a business closing fifteen deals per quarter is measuring the website rather than the business.Two questions, one minute, most events refused1. Who looks at it?A person, who exists, whose job includesopening that report. Not a role.2. What decision changes?What do they do if it is high, and whatdo they do if it is low?Either answer missing? Refuse it, and write the date and the reason.What it eliminatesScroll depth on pages you will not redesignVideo plays on videos you will not re-editOutbound clicks nobody investigatesMicro-interactions added because availableWhat it keeps, in B2BForm submissions, split by formMeeting bookingsDownloads, if someone follows upPricing views, if sales uses themForty events and fifteen deals a quarter means you are measuring the website, not the business.
Name the person and the decision. Most proposals fail on the second half. Source : Method, applied to documented platform limits (2026)
A starting refusal list of measurement categories that cost more than they returnTable presenting a starting refusal list of six measurement categories that generally cost more than they return in a business-to-business account, intended for adaptation rather than direct copying. The first category is any unique value placed into a dimension, including email addresses, company names, order references and session identifiers, which causes permanent cardinality damage in exchange for information the customer relationship management system already holds. The second is demographic segmentation applied to a small audience, which will be subject to thresholding so that rows do not display, leading the operator to spend time determining whether tracking has broken when it has not. The third is micro-engagement measurement on pages the organization will not change, since in the absence of a redesign budget a scroll depth figure on such a page is a number that will be examined and acted upon by nobody. The fourth is anything measured solely to demonstrate a channel’s value internally, which constitutes a political requirement rather than a measurement one and produces metrics designed to win arguments rather than to inform decisions. The fifth is cross-system reconciliation to the unit, which is unachievable because platforms use different default attribution windows and include modelled conversions within the same column as observed ones, whereas agreeing which system constitutes the system of record is achievable. The sixth is any event whose owner has left the organization, since every tracking plan accumulates events configured by departed staff that continue firing and appearing in reports while being trusted by nobody, and these should either be deleted or explicitly claimed by a current owner.A starting refusal listAdapt it. Do not copy it.RefuseBecauseA unique value in a dimensionPermanent cardinality damage. The CRM has it.Demographics on a small audienceIt will threshold. The rows will not display.Micro-engagement on fixed pagesNo redesign budget means no action either way.Metrics to prove a channel internallyA political requirement wearing a measurement coat.Cross-system reconciliation to the unitDifferent windows, modelled conversions. Not achievable.Anything whose owner has leftStill firing, still reported, trusted by nobody.On the last one, you have two options and both are fineDelete it, or claim it. What is not fine is leaving it in the reports with nobody responsible for it.
Six categories that cost more than they return in a B2B account. Source : Method, applied to documented platform limits (2026)

What the document should actually contain

Six sections, and the last one is the one nobody writes.

The system of record, named. One system whose number is the number when systems disagree. In B2B this is almost always the CRM, because that is where a deal either exists or does not.

The events, with owners. Each event, the person who reads it, and the decision it informs. If the owner changes, the event is reviewed.

The dimensions, with their expected cardinality. For each, roughly how many distinct values you expect. Anything approaching 500 gets challenged before it ships, not after.

The attribution settings you chose. Which window on each platform, and whether you aligned them. If you did not align them, say so, so nobody spends a day discovering it.

The known limits. What cannot be measured at your tier: explorations beyond fourteen months, demographic breakdowns that will threshold, cross-system reconciliation to the unit.

The refusal list. Every event proposed and declined, with the date and the reason. This is the section that keeps the plan finite, and it is the only part that saves time in year two.

The six sections of a tracking plan documentDiagram setting out the six sections a tracking plan document should contain. The first section names the system of record, meaning the single system whose figure is authoritative when systems disagree, which in a business-to-business context is almost always the customer relationship management system because that is where a deal either exists or does not. The second section lists the events together with their owners, recording for each event the person who reads it and the decision it informs, with the rule that an event is reviewed whenever its owner changes. The third section lists the dimensions together with their expected cardinality, recording roughly how many distinct values each is expected to hold, so that any dimension approaching five hundred values is challenged before it ships rather than after the damage is permanent. The fourth section records the attribution settings chosen, meaning which window is set on each platform and whether those windows were aligned across platforms, with an explicit statement where they were not aligned so that nobody spends a day rediscovering the discrepancy. The fifth section records the known limits, meaning what cannot be measured at the organization’s current tier, including explorations beyond fourteen months, demographic breakdowns that will be subject to thresholding, and cross-system reconciliation to the unit. The sixth section is the refusal list, recording every event that was proposed and declined together with the date and the reason for declining it; this is the section that keeps the document finite rather than perpetually growing, and it is the only section that becomes more valuable with age because it prevents previously rejected proposals from returning as apparently new ideas.Six sections1. The system of recordIn B2B, almost always the CRM.2. Events, with ownersOwner changes, event gets reviewed.3. Dimensions, with expected cardinalityAnything near 500 gets challenged early.4. Attribution settings chosenAnd whether you aligned them. Say if not.5. The known limitsWhat is not measurable at your tier.6. The refusal listEvery declined event, dated, with the reason.Only the sixth section gets more valuable with ageIt is what stops a rejected proposal returning in eighteen months as a new idea.A plan without a refusal list is not a plan. It is a backlog.
The refusal list is the only section that gets more valuable with age. Source : Method (2026)

Where to go next

You want to know what the tool hides from you. What GA4 does not show.

You are building the reporting layer on top. B2B marketing dashboard blind spots.

Your platform and analytics numbers disagree. Why GA4 and Meta conversions do not match.

Your bounce rate looks wrong. GA4 bounce rate.

You are considering server-side collection. Server-side tracking.

Your conversion rate is the number in dispute. Conversion rate and its denominator.

In short

  • The refusal list is the useful half of a tracking plan, because adding an event always feels cheaper than defending its absence.
  • Cardinality is permanent. It is created at collection, dimensions above 500 values are high cardinality, and the excess is condensed into an (other) row for good.
  • Never put a unique value in a dimension. Emails, order references, session identifiers. Your CRM already holds them.
  • Events cap at 25 parameters, which forces a choice about what each one carries.
  • Thresholding has no published number and cannot be adjusted, so demographic reports on small B2B audiences may simply not display.
  • Explorations cap at 14 months on a standard property, which is shorter than many B2B sales cycles.
  • Attribution windows differ by default, 30 days on one search platform against 90 on one professional network, so systems will disagree regardless of tracking quality.
  • The test is two questions: who looks at it, and what decision changes. Most proposals fail the second.

Write the refusal list first, and name your system of record. Book a diagnostic, or see how we approach B2B websites.