---
title: "One record for every location: the franchisor's checklist"
description: "Ad accounts, tracking, access, owners and spend for every location, kept in one place that every team and agency reads. Here is what belongs on the record, who keeps it true, and how to audit it this quarter."
section: Franchise Growth
author: David Steel
published: 2026-10-10T21:42:47.035Z
url: https://one.sneeze.it/blog/one-record-for-every-location
tags: ["franchise-growth", "franchise-operations", "data-quality", "ad-account-access", "hub"]
---

# One record for every location: the franchisor's checklist

_Ad accounts, tracking, access, owners and spend for every location, kept in one place that every team and agency reads. Here is what belongs on the record, who keeps it true, and how to audit it this quarter._

Ask a franchise marketing team a simple question about one location: which Facebook ad account does it run on, is its tracking working, and who can grant us access if it lapses? In most systems the answer takes three people and a shared spreadsheet, and at least one of the three answers is out of date.

That is not a people problem. It is a record problem. When the facts about a location live in a development tracker, an agency's spreadsheet, a franchisee onboarding form and somebody's inbox, they drift apart the day they are written. Every launch, every audit and every agency change then starts with a week of reconciling.

The fix is one record per location that every team, agency and tool reads from. We run ours on the [Hub](https://hub.sneeze.it), and we wrote about the internal design in [One record, every tool](/blog/one-record-every-tool). This post is the franchisor's version: the checklist of what belongs on the record, and how to keep it honest across a whole system.

:::stats
523 | locations on the Hub
60 | brands on the Hub
5 | roles that each see the record at their own level
source: [hub.sneeze.it](https://hub.sneeze.it) live counts, October 10, 2026, and the Hub's own documentation
:::

## Why the location is the unit

Franchise systems tend to organize marketing data around whatever the last project was: a launch tracker, a campaign sheet, an onboarding checklist. Each one is useful for a month and stale for a year.

The location outlasts all of them. It has an address, an owner, a set of ad accounts and a tracking setup for as long as it is open. Make the location the unit, give it one page, and every project reads from and writes to that page. We learned this the hard way: our first client portal was built around a process and lasted one day before we [rebuilt it around the location](/blog/we-rebuilt-our-portal-around-the-location).

:::compare "Records scattered by project" "One record per location"
A launch tracker, an agency sheet, an onboarding form and an inbox, each holding some of the facts. Matched by location name. Nobody knows which copy is right.
---
One page per location. Every team, agency and tool reads it. Matched by the location's system id. Every change records who made it and when.
:::

## The checklist: what belongs on every location's record

Use this as an audit list. If a field is missing for a location, that is a job, not a blank.

:::steps
1. Identity
Address, opening date, owner, manager, booking page, and the location's ids in every system you run (club software, CRM, point of sale). Match on the id, never the name: names drift and town names repeat across states.
2. Ad accounts, by exact account
The specific Facebook, Google Ads and Google Business Profile accounts the location runs on. "Connected" should name the account, not show a checkmark.
3. Access state, with the reason
For each account, one of: connected, never asked, link sent and waiting, lapsed, or revoked. Each state is a different next step. [The four states of ad account access](/blog/the-four-states-of-ad-account-access) covers why.
4. Tracking, on file versus confirmed
Record the tracking ids for the location, and separately record whether someone saw each tag fire on the live site, and on what date. An id on file is a promise. A confirmed tag is a fact.
5. Who runs the media, and what it spent
The agency or team responsible and since when, then spend this month by platform with the source of each figure. No source means a blank, never a zero.
6. Status
Proposal, onboarding, active, paused, offboarding, terminated, or network. When it changes, everyone who works on the location should hear the same day.
7. Change history
Old value, new value, who and when, for every field. When a fact is wrong, you can see who changed it and fix the cause, not just the value.
:::

:::pullquote
A blank that says why it is blank is worth more than a number nobody can trace.
:::

:::figure wide
![A single location card drawn on off-white paper with seven rows suggested by grey bars, one row highlighted in magenta, and thin threads running from the card to small icons of a storefront, a phone and a map](/blog/media/f6482b3ec71b4ce67d5862ce.jpg)
Seven groups of facts, one page per location. Every project reads from it instead of keeping its own copy.
:::

## Who sees what, and who keeps it true

One record does not mean everyone sees everything. A franchise system has at least five audiences for the same page, and the Hub builds them in as roles:

| Role | Sees | Does not see |
|---|---|---|
| Franchisor | Every location in the brand | Sneeze It's own service prices |
| Multi-unit owner | Their own locations | Other owners' locations |
| Location owner | Their one location | Any other location |
| Outside agency | Only the locations assigned to them | Money of any kind |
| Sneeze It staff | Everything, including cost | Nothing hidden |

Two rules make the roles work. A location you do not hold should look like it does not exist, not like a locked door, so owners never learn the shape of someone else's business. And an outside agency sees the work, never the money. If you bring in a local agency for one region, they should be able to see access states and tracking for their locations and nothing about spend or fees.

Ownership of the facts matters as much as visibility. A simple split works in most systems:

- **Development** owns identity and opening date, from signing to the day the doors open.
- **The location owner** owns access grants. They are the only person who can say yes on their own accounts.
- **Whoever runs the media** owns tracking confirmation and spend, with sources.
- **Franchise marketing** owns status, and audits the rest.

:::callout warn "The rule people break first"
Never let an automatic import overwrite a hand correction. If a franchisee fixes their manager's name and the next nightly sync puts the old name back, they will stop fixing things. Imports should fill blanks, not undo people.
:::

## What to measure, and what to do this quarter

Four numbers tell you whether the record is real:

- **Locations with every ad account named.** Out of all open locations, how many have a specific Facebook, Google Ads and Business Profile account recorded.
- **Locations fully connected.** How many have every account in the connected state. The rest sort themselves into four lists by access state.
- **Tags confirmed in the last 90 days.** How many locations have a tracking tag someone saw fire recently, not just an id on file.
- **Spend with a source.** How many spend figures name where they came from. Every unsourced figure is a number nobody can defend.

A worked example, arithmetic only: say a 40-location system audits its record and finds 36 locations with all three accounts named, 28 fully connected, and 19 with a tag confirmed in the last 90 days. The next quarter's work is not a new campaign. It is 4 locations to identify, 8 to connect (each with a known next step from its access state), and 21 tags to check on the live site. That is a finite list with owners, which is what a scattered set of spreadsheets can never produce. (The numbers are hypothetical.)

:::flow "From a scattered system to one record"
Collect | Pull every location's facts from the trackers and sheets that hold them
Match by id | Join on the location's system id, never the name
Fill the gaps | Turn every missing field into a job with an owner
Open the roles | Give owners and agencies their own view of the same page
Audit monthly | Re-run the four measures and work the lists
:::

:::takeaways "For your next franchise marketing review"
- 1. Make the location the unit: one page each, read by every team and agency.
- 2. Name the exact ad account, and give "not connected" a reason.
- 3. Separate "tracking id on file" from "tag confirmed firing, with a date".
- 4. No source, no number. A blank beats an untraceable zero.
- 5. Agencies see the work, never the money.
- 6. Imports fill blanks. They never undo a person.
:::

Start this quarter with the four measures. Count them honestly for every open location, and the gaps become the plan. If you would rather see what this looks like on a real location page, built on sample data, the Hub's homepage shows it.

:::cta button="See the Hub" href="https://hub.sneeze.it"
One page per location, read by every team and tool.
Accounts, access states, tracking, spend with sources, and every change recorded.
:::
