Set up your client project: account roster, retainer terms and scoring weights
Juma projects work per client rather than per task, and a portfolio run is the one case where a project above the individual accounts earns its keep. The team builds one project for the portfolio, adds the context that the open web cannot supply, and every monthly run starts from the same ground. For gap analysis the context that changes the output most is the commercial frame: who the accounts are, what each one is contracted to receive, and how this agency decides that one opportunity beats another. If the project already exists, these are additions rather than a fresh setup.
What to add
Client Account Roster
The accounts in scope, each one's vertical and primary competitors, and which accounts sit close enough to collide. With this in the project the conflict check runs against the real portfolio rather than against whichever competitors research surfaced that morning.
Retainer Terms and Hours
Monthly hours per account, contracted minimums, the blended rate and anything a statement of work promises by name. This is what turns an opportunity list into an allocation that clears every minimum and sums to the month.
Prioritization Weights
How this agency ranks: the criteria that count, the weight on each, and what disqualifies a gap outright. Keeping the weights in the project is what makes January's register comparable to June's instead of a fresh argument each month.
Conflict and Exclusivity Clauses
Any category exclusivity, non-compete or conflict language in the active contracts, and who signs off when two accounts want the same term. Without it the conflict register can only tell the team that a clash exists, not who is entitled to the ground.
Guide Juma with project info
Each file in a project can carry a short description in the project info field. Those descriptions tell Juma what a file holds and when it matters, so the right context gets picked up for the task at hand rather than everything at once.
- Client Account Roster: "Accounts in scope, their verticals and competitors, and which ones sit close enough to collide. Use to scope the register and run the conflict check."
- Retainer Terms and Hours: "Monthly hours, contracted minimums and the blended rate per account. Use for the allocation and for costing every brief."
- Prioritization Weights: "Our criteria, their weights and what disqualifies a gap. Use as the scoring model so months stay comparable."
- Conflict and Exclusivity Clauses: "Category exclusivity and conflict language in the active contracts, plus who signs off. Use for every row of the conflict register."
Plan the whole portfolio in one pass
Frequently Asked Questions
How is this different from running a keyword gap analysis per client?
A per-client analysis answers what one account is missing. A portfolio run answers which account gets the hours, and that question only has an answer when the accounts are scored on one model in one register. The ranking crosses client lines, so a third-placed gap on one account can outrank another account's best.
Three things only appear at portfolio level. Research that one account's work can reuse for another, which is a saving no single-client pass can see. Exact-query collisions between accounts, which no single-client pass is even looking for. And an hour allocation, which needs every account's scores in the same column to be anything other than a guess.
The single-client analysis is still the right tool for a deep dive once an account has the hours. This one decides which account that is.
What stops the allocation from being arbitrary?
The rule is printed. Each account's contracted minimum comes off the top, the remainder is apportioned by that account's share of total qualified score, and the fractions are shown alongside the result so the hours can be recomputed from the register rather than taken on trust.
That matters most in the conversation where it gets questioned. An account lead asking why their client received fewer hours this month gets the account's score total and the arithmetic, not an assurance. If the agency's own weights are in the project, the answer traces all the way back to a rule the team agreed in advance.
Where the plan deviates from the scores on purpose, it has to say so and give the reason. A ranking that is quietly overridden is worse than no ranking at all.
Can we hand this register to a client?
Not as it stands, and the document says so. A cross-client register names other accounts on nearly every page, so it comes back marked internal with a stated list of what to remove for a client-safe version: the allocation, the portfolio score totals, the shared-research clusters, the conflict register and every other-client reference.
What remains after those cuts is genuinely useful to send: that client's own rows with their competitor URLs and check dates, their briefs, and the limits that apply to their data. The cut list is part of the deliverable rather than a judgment the account team makes under time pressure.
What does it do when the accounts barely overlap?
It reports the thin overlap instead of manufacturing a pattern. A portfolio of accounts in unrelated categories will produce few shared-research clusters and few collisions, and the honest output is a short list with the reason, not a set of strained connections between unrelated clients.
That is worth knowing in itself. An agency whose accounts never collide can brief them independently and skip the ownership conversation entirely. An agency finding the same term under three accounts has a commercial question to settle before anyone writes a word.
How long does this take compared with building it by hand?
Pulling competitor evidence for several accounts, scoring the gaps on a consistent model, reconciling the hours and checking for collisions between clients is usually two to three days of a senior strategist's month, repeated every month, and the cross-client checks are the part that gets skipped when the month is tight.
Running this returns the register, the allocation, the reuse clusters, the conflict check and the top briefs in one working session. What it does not decide is which criteria deserve the weight, whether a collision is one the agency can live with, and which account's relationship can absorb fewer hours this month. Those are judgment calls with contracts behind them. Strategy, taste and judgment stay human, and no allocation reaches a client without a named person signing it off.
The monthly re-run gets cheaper too. The rejected list stays rejected, the unassessed list becomes the shortlist for whatever data the team connects next, and the weights stay in the project so each month's register is comparable to the last.