The Competitor-Brief Finding Standard: Decision-Grade, Directional, or Hold
Grade any finding about a rival's people with one source letter, one corroboration number, one likelihood term, and a release verdict a second analyst would match.
Key takeaways
- Grade the source letter (A to F) and the finding number (1 to 6) separately, and award a 1 only when at least two independent origins confirm the same claim, counted per origin and never per URL.
- In Refolk's index, 40 ML engineers is 3.4% of the 1,182 Machine Learning Engineer titleholders in Canada but about 6.5% of the Toronto-area estimate, so a headcount finding with no stated denominator cannot be graded consistently.
- Published ghost-job estimates run from 14.2% to 27.4% depending on country and method, so a job post is evidence of hiring intent at best and never proof of a hire.
- Every judgment in a brief uses exactly one ICD 203 likelihood term, and confidence goes in a separate sentence, because ICD 203 says the two must not be combined in the same sentence.
- Moves that rest on profile changes from the last four months are provisional and capped at a 2, because profiles lag new jobs and nearly 1 in 5 established US LinkedIn users retroactively edit past roles.
- A zero count from stacked filters is not evidence of absence: in Refolk's index, adding a Senior filter to a Canada ML Engineer search returned 0, even though 2 of 25 unfiltered profiles carried a Senior title.
This standard grades every finding about a rival's people, teams, and moves before a competitor or talent-intelligence brief goes to leadership. It is written for strategy teams, talent-intelligence analysts, and operators sizing a market. It gives you a two-axis source grade, a fixed set of likelihood words, three release verdicts with worked boundary cases, and a 12-item pre-send checklist. The aim is that two analysts grading the same finding reach the same answer.
What makes a finding about a rival fit to ship?
A finding is fit to ship when it meets five conditions. It is atomic. Every source behind it is traced to an origin. It carries a reliability letter and a credibility number, graded separately. It uses exactly one likelihood term, with confidence in its own sentence. And a second analyst has confirmed its release verdict blind. The rest of this section defines each term precisely enough that two people would grade the same case the same way.
- Finding. One claim with one subject, one verb, one date range, and one number. "Rival X has moved about 40 ML engineers to Toronto since spring" is one finding. "Rival X is building in Toronto and poaching from Meta" is two findings, and each gets its own grade.
- Origin. The first party that produced the information: a company release, an individual's own profile, a regulatory filing, a job post, a code repository, or a third party's own reporting. Sources are where you found something. Origins are where it came from.
- Reliability letter (A to F). How far you trust the origin, based on its track record across many reports.
- Credibility number (1 to 6). How believable this specific claim is, judged without looking at the letter.
- Likelihood term. One of the seven ICD 203 probability phrases, such as "likely" or "very unlikely". ICD 203 is the US intelligence community's directive on analytic standards.
- Confidence. High, moderate, or low. It describes the evidence base behind a judgment, not the probability of the event.
- Release verdict. Decision-Grade (can carry a decision), Directional (ships with a caveat), or Hold (comes out of the brief).
The five layers of a graded finding
- Release verdictDecision-Grade, Directional, or Hold, confirmed by a blind second grade
- WordingOne likelihood term per judgment, with confidence in a separate sentence
- Credibility number1 to 6 per finding, where a 1 needs two independent origins
- Reliability letterA to F per origin, based on its track record
- Origin logURL, capture date, publication date, collection method, and origin tag
None of this is new tradecraft. The two axes come from the NATO intelligence grading system, usually called the Admiralty Code, and the likelihood terms come from ICD 203. What this standard adds is a translation to the public signals talent and market analysts actually use: profiles, job posts, filings, repos, and press.
One point on where this sits relative to professional codes. The SCIP Code of Ethics covers lawfulness, conflicts of interest, honesty, and disclosing your identity and organization before interviews. It does not require you to log the source, date, or method behind each finding, and it describes itself as guidelines from which companies "can set their own standards". The logging rule here follows ICD 203, which strongly encourages source summary statements that give "a holistic assessment of the strengths or weaknesses in the source base".
How to grade sources in a competitive intelligence report
Grade sources on two separate axes. A letter from A to F rates the origin's reliability, and a number from 1 to 6 rates the credibility of the specific finding. The Admiralty Code, formally codified in NATO's AJP-2.1 under STANAG 2511, requires that "each descriptor is considered in isolation to ensure that the reliability of the source does not influence the assessed accuracy of the report."
| Code | Letter: source reliability | Number: finding credibility |
|---|---|---|
| A / 1 | Completely reliable | Confirmed by other independent sources |
| B / 2 | Usually reliable | Probably true, not confirmed |
| C / 3 | Fairly reliable | Possibly true |
| D / 4 | Not usually reliable | Doubtful |
| E / 5 | Unreliable | Improbable |
| F / 6 | Reliability cannot be judged | Truth cannot be judged |
The letter is earned over time. In the Admiralty system it "reflects performance over time across multiple reporting events", so an A means the origin has "a history of complete reliability", not that it looks official.
Starting letters for public people-signals
Each origin type needs a starting letter before it has a track record, or two analysts will disagree on day one. The letters below are Refolk's policy choice, not figures from any source. Public studies of lag and error exist only for filings and job posts. For press releases, commit history, speaker lists, and news reports, those rates have not been published. Adjust each letter as you record the origin's hits and misses.
| Origin type | Starting letter | What it proves | Where it misleads |
|---|---|---|---|
| 8-K Item 5.02 filing | A | Officer departure, on a legal clock | Principal officers only, not teams |
| Company press release | B | What the company chose to announce | Numbers serve the company |
| Individual profile | C | A first-hand self-report | Lags new jobs; past roles get edited |
| Job post | C intent, D hiring | Where the company says it will hire | 14-27% may be ghost posts |
| Code repository | C | Activity happened | Shows activity, not employment |
| News report | Grade its origin | Depends on whom the reporter used | Often restates the release |
The filing row is the only public people-signal with a legal clock attached. An Item 5.02 8-K is due within four business days of the notice of termination or resignation, "not the executive's last day". The SEC allows no extension under Rule 12b-25. That makes the filing the natural anchor for an A, but only for principal officers.
Counting corroboration
The credibility number depends on how many independent origins confirm the claim. Circular reporting, also called false confirmation, is when information "appears to come from multiple independent sources, but in reality comes from only one source." The fix is to trace each cited source back to where its data came from before you count anything.
The AJP-2.1 primary text was not checked for its exact wording on what counts as a separate collection path. Secondary sources say only "independent". The working test in this standard is a policy choice: two origins are independent when neither could have produced its content by copying the other. One published policy states the effect plainly: "Independent corroboration across separate domains moves the credibility number toward 1."
Every F and every 6 needs a written reason. Raters reach for "cannot be judged" too readily because it can always be defended, and an unexplained F hides that you skipped the work.
Estimative language for competitor analysis
Every judgment in the brief uses exactly one ICD 203 likelihood term, and confidence is stated in a separate sentence. This removes the most common reason two readers take different meanings from the same line. Readers can no longer tell "likely" apart from "high confidence".
ICD 203 sets seven likelihood bands. Each band has two equivalent terms in two rows, shown here separated by a slash:
- almost no chance / remote: 01-05%
- very unlikely / highly improbable: 05-20%
- unlikely / improbable: 20-45%
- roughly even chance / roughly even odds: 45-55%
- likely / probable: 55-80%
- very likely / highly probable: 80-95%
- almost certain / nearly certain: 95-99%
Four wording rules follow from the directive:
- One term per judgment. If you need two terms, you have two findings.
- One row per brief. ICD 203 strongly encourages analysts not to mix terms from different rows. A product that mixes them "must include a disclaimer clearly noting the terms indicate the same assessment of probability." The simple fix is to pick the first row and stay with it.
- Confidence and likelihood in separate sentences. ICD 203 says products expressing confidence "must not combine a confidence level and a degree of likelihood, which refers to an event or development, in the same sentence."
- No decimals from small samples. "Roughly half" survives scrutiny. "52%" taken from 25 profiles does not.
Confidence is about the evidence. ICD 203 says it "may be based on the logic and evidentiary base that underpin it", and a secondary summary says it depends on "the quantity and quality of the underlying sources and how well the analyst understands the topic." As policy, this standard ties confidence to verdict. High confidence is only available to Decision-Grade findings. Moderate fits a Directional finding graded 2. Low fits a Directional finding graded 3.
DECISION-GRADE [Subject] [likelihood term] [verb] [object] [date range], [number] of [denominator]. Confidence is high: [origin 1] and [origin 2] confirm this independently. DIRECTIONAL [Subject] [likelihood term] [verb] [object] [date range], [number] of [denominator]. Confidence is [moderate/low] because [what is missing: origin, window, or attribution]. Treat as directional until [specific check] on [re-check date]. HOLD Not in brief. Logged as [finding ID], held because [reason]. Re-check on [date].
Keep the bracketed parts short and specific; the caveat must name a check and a date, not a general doubt.
Release verdicts: Decision-Grade, Directional, or Hold
The verdict follows from the grade by a fixed rule. Decision-Grade needs a 1 backed by at least one A or B origin, or an A2 filing stated exactly as filed. Directional covers 2s, 3s, and provisional findings, and ships with a caveat. Hold covers everything else, and those findings come out of the brief. These thresholds are Refolk's policy. What matters is that the rule is written down and applied the same way every time.
| Verdict | Minimum grade | How it ships |
|---|---|---|
| Decision-Grade | 1 with an A or B origin; or A2 filing, stated as filed | Judgment plus high-confidence sentence |
| Directional | 2 or 3; or a provisional finding | Judgment plus a caveat that names a check and a date |
| Hold | 4, 5, or 6; E-only basis; no denominator; unresolved peer split | Removed and logged for re-check |
Origin reliability against corroboration
Worked boundary cases
These are the cases where analysts most often split. Grade them as a team once and the disagreements tend to stop.
| Finding | Grade | Verdict | Why |
|---|---|---|---|
| Rival X's CFO has resigned | A2 | Decision-Grade | 8-K Item 5.02, restated exactly as filed |
| Rival X moved about 40 ML engineers to Toronto since spring | C2 | Directional | Profiles plus job posts; recent window; no confirming non-profile origin |
| Rival X is building a Toronto ML team | D4 | Hold | Job posts only, over 30 days old, reposted |
| Rival X opened a Toronto office | B2 | Directional | Release plus a news story that restates it: one origin |
| Rival X has no ML engineers in Montreal | Ungraded | Hold | Zero from stacked filters is not absence |
Here is the 40-engineer finding worked through. Two origins sit behind it: individual profiles, which show Rival X as employer and Toronto as location, and Rival X's own Toronto job posts. They are independent of each other. But job posts show intent to hire, not completed moves, so they agree with the finding without confirming it. That leaves the move resting on profiles alone, from a window short enough to trigger the recency rule. The finding grades C2, Directional, with moderate confidence.
Rival X has likely added several dozen machine learning engineers in the Toronto area since spring, about 3% of the ML Engineer titleholders indexed in Canada. Confidence is moderate because the count rests on individual profiles, which lag recent moves, and job posts, which show intent rather than hires. Treat as directional until the profile count is re-run eight weeks from now.
This is also how to caveat a competitor org chart finding. The caveat names the missing piece, which is the origin, the window, or the attribution, and the check that would close it. "Data may be incomplete" is not a caveat.
Denominators and recency: the two rules talent findings need
A headcount finding must state its denominator, meaning the population its number is drawn from, along with the source and sample size. A move finding built on recent profile changes is provisional until an origin other than profiles confirms it. Without both rules, analysts grading the same finding disagree on what it means before they even reach the letter and number.
State the denominator
A number with no denominator cannot be graded consistently. The same 40 engineers can be a rounding error or a real build-out depending on the pool. In Refolk's index of professional profiles, the Machine Learning Engineer pools look like this:
| Metric | Canada | US |
|---|---|---|
| Total ML Engineer titleholders | 1,182 | 10,232 |
| US to Canada multiple | - | 8.66x |
| Top-hub share of sample | Toronto area 52% | SF Bay area 40% |
| Meta share of sample | 8% | 16% |
The counts are full index totals. The shares come from 25-profile samples and have low precision. In the Canada sample, 13 of 25 profiles are in the Toronto area (Toronto 10, Greater Toronto Area 2, North York 1). In the US sample, 10 of 25 are in the Bay Area. Report these as "roughly half" and "about two in five", not as decimals.
| Denominator | Value | 40 as share |
|---|---|---|
| Canada ML Engineer titleholders | 1,182 | 3.4% |
| Toronto-area estimate (52% x 1,182) | ~615 | ~6.5% |
Narrowing the denominator for the Toronto finding
- 1,182Canada ML Engineer titleholders
Refolk's index, full count
- ~615Toronto-area estimate
52% hub share from n=25
- 40Claimed movers to Rival X
The finding under test
Pulling a denominator is usually the slowest part of grading, because it means writing a title, location, and employer query for each finding. With Refolk you describe the population in plain English and get the matching profiles back, so the denominator row in the grading record takes minutes rather than an afternoon.
Check attribution against the dominant employer
Meta is the top employer in both samples: 4 of 25 in the US and 2 of 25 in Canada. When one large firm dominates a talent pool, its moves can look like a regional trend. Before you attribute a Toronto rise to Rival X, you need a company-specific origin, meaning profiles or posts that name Rival X itself. Check what the dominant employer did in the same window first.
Treat recent profile moves as provisional
Profiles lag real moves at both ends. At the start, common advice is to update "typically between two weeks and two months or so after starting a new position", and "some users don't bother to update their profiles with new positions at all." Long after the fact, nearly 1 in 5 established US LinkedIn users retroactively edited the title or description of a job they no longer held, with a median of 4.5 years after leaving. No public study gives the share of moves visible at 4, 8, or 12 weeks.
The best indirect evidence comes from a field experiment. It discarded jobs added in the first month or two because they "reflect the difference in the probability of having an up-to-date profile rather than getting a new job", and it used a start date at least four months later. I set this standard's recency window at four months on that basis. That is a policy choice, and you can check it locally by re-running the same count eight weeks later and seeing how much it grows.
The grading procedure, step by step
Grading a brief takes nine steps, from splitting claims into atomic findings to the lead's pre-send check. The analyst does steps one to seven, a peer grades blind at step eight, and the lead owns step nine. No published source times these steps, so plan from your own first run rather than from a benchmark.
Grade every finding before the brief ships
- Break the brief into atomic findingsSplit every claim until it has one subject, one verb, one date range, and one number. Done when no finding needs the word "and" to state it.
- Log every sourceFor each source, record the URL, capture date, publication date, and collection method. Done when every finding has at least one complete log row.
- Trace sources to origins and collapse duplicatesTag each source with its origin and merge sources that share an origin. Done when you count independence per origin, not per URL.
- Assign a reliability letter per originStart from the policy starting letter for the origin type and adjust it based on track record. Every F gets a written reason.
- Assign a credibility number per findingGrade the claim without looking at the letter. A 1 requires two independent origins confirming the same claim, and every 6 gets a written reason.
- Apply the denominator and recency rulesState the population, with source and sample size. Flag profile-based moves from the last four months as provisional and cap them at 2.
- Write the wordingGive each judgment one ICD 203 likelihood term and put confidence in a separate sentence. Directional findings get a caveat that names a check and a date.
- Give a release verdict and get a blind second gradeMap the grade to a verdict by the fixed rules. A peer grades without seeing your grades, and differences are resolved in writing.
- Run the pre-send checklistThe lead runs all 12 items on the whole brief. It ships only when every item passes, with held findings logged and dated.
On step eight: the blind second grade is the step that makes the standard repeatable. If your team uses tools to collect sources or suggest starting letters, keep the final grade with a person. One published policy holds that "no algorithm is allowed to award itself an A1", and that is the right default for any brief going to leadership.
FINDING ID: Claim (one subject, one verb, one date range, one number): Denominator (value, source, sample size): Sources S1 | URL: | captured: | published: | method: | origin: S2 | URL: | captured: | published: | method: | origin: Origins after collapse (count): Reliability letter, best origin: Reason: Credibility number: Reason: Provisional (profile move in last 4 months): yes / no Attribution check (dominant employer ruled out): yes / no Likelihood term (ICD 203, row 1): Confidence (high / moderate / low): Reason: Release verdict (Decision-Grade / Directional / Hold): Caveat line (Directional only): Second grader: Blind grade: Resolved grade: Note: Re-check date:
One record per atomic finding; keep it in the brief's appendix so the lead and the peer grader work from the same sheet.
How finding grades go wrong
Most bad grades come from eight repeatable failures. Some count one origin twice. Some read silence as absence. Some treat intent as outcome. Some hide a weak claim behind a precise-looking number. Each failure below lists what it looks like and the check that catches it. In practice this list does more to keep grades consistent than the rubric does.
1. Fake corroboration
A news story that restates the company's own release gets counted as a second source, and the finding jumps from 2 to 1. Check: does the article cite the release or use the same figures? If so, both are one origin.
2. Aggregator echo
Several people-data sites show the same person with the same title and dates, and the grader counts three sources. They are one self-report copied three times. Check: identical title strings and identical dates mean one origin.
3. Recent-move undercount
Profile counts understate moves in the recent window, which produces false negatives such as "no Toronto build-out yet". Check: compare the locations in the rival's job posts with the profile count. A gap between the two is a reason to re-check, not a reason to report absence.
4. Ghost posting read as a hiring signal
Between 14% and 27% of postings may never be filled, depending on country and method. Treat posts as intent, never as hires.
| Study | Ghost-post figure | Method |
|---|---|---|
| Greenhouse | 18-22% | Platform data |
| ResumeUp.AI, US LinkedIn | 27.4% | Postings over 30 days old |
| ResumeUp.AI, Canada | 24.9% | Same |
| ResumeUp.AI, UK | 14.2% | Same |
The figures disagree because the methods measure different things. An employer self-report figure of 33% captures intent rather than outcome, and the Congressional Research Service has noted "there are no official statistics on the magnitude of ghost jobs." The Canada rate is almost double the UK rate, so a Toronto finding built on job posts carries more noise than a London one. Check: is the post more than 30 days old, and does it keep getting reposted? If both are true, drop the finding's number by one.
5. Retroactive title inflation
A past role reads "led AI platform" because the person edited it years later. Nearly 1 in 5 established US LinkedIn users retroactively edited a past role, and roughly 70% of self-described AI product managers did. Check: compare the profile against archived snapshots or filings before you use a past title as evidence.
6. Filter collapse
A narrow query with stacked filters returns nothing, and the brief reports that nothing exists.
Check: re-query with fewer constraints, then filter the results by reading titles. Asking Refolk for the population in plain English, such as "senior machine learning engineers in Montreal", avoids the stacked-filter trap because you are not combining structured filters that can quietly cancel each other out.
A zero count is a query result, not a market fact.
7. Small-sample precision
"52% of Canada's ML engineers are in Toronto" sounds like a fact, but it comes from 25 profiles. Check: any share taken from a sample under a few dozen is written with a likelihood term or a rounded phrase, never decimals, and the sample size goes in the grading record.
8. Reflexive F6
Graders retreat to "cannot be judged" because it is always defensible, and the brief fills with F6s that say nothing. Check: every F and every 6 has a written reason that the peer grader can challenge.
Pre-send checklist and keeping the standard current
The brief ships only when all twelve items below are true. The lead runs the checklist, not the analyst who wrote the findings. After sending, keep the standard current by updating origin letters from track record and re-checking held findings on their logged dates.
Pre-send checklist for a competitor or talent-intelligence brief
- Every finding has one subject, one verb, one date range, and one number.
- Every source has a log row with URL, capture date, publication date, and collection method.
- Every source is tagged to an origin, and duplicate origins are collapsed.
- No finding graded 1 rests on fewer than two independent origins that confirm the same claim.
- Every origin has a reliability letter, and every F has a written reason.
- Every finding has a credibility number graded separately from the letter, and every 6 has a written reason.
- Every headcount or share finding states its denominator, source, and sample size.
- Every profile-based move from the last four months is marked provisional and graded no higher than 2.
- Every finding attributed to a rival has an origin that names the rival, and the dominant employer has been ruled out.
- Every judgment uses exactly one ICD 203 likelihood term from one row, with confidence in a separate sentence.
- Every Directional finding carries a caveat naming a specific check and a re-check date.
- A peer has graded every finding blind, all differences are resolved in writing, and every Hold is logged with a re-check date.
Keeping the standard current
- Letters move with track record. Each time a finding is later confirmed or contradicted, record the result against its origin type. Review starting letters on a fixed schedule your team sets. A letter that never moves means no one is recording outcomes.
- Re-check held findings on their dates. A Hold is a deferred finding, not a discarded one. Most move up once a second origin appears, such as a filing, a release that names a team, or a profile count that grows after the lag window.
- Re-verify external figures by method, not by headline. Ghost-post estimates change with how they are measured. When you update the ghost-post table, record the method next to each figure, and keep the post-age test (over 30 days and reposted) as the local check whatever the published rate says.
- Re-read ICD 203 when it changes. The likelihood bands and the separate-sentence rule come from that directive, which has been amended before. Check the current text from the Office of the Director of National Intelligence before you re-adopt this standard each year.
- Re-run denominators for every brief. Index counts change as people move and update profiles. A denominator copied from last quarter's brief should go back through the same grading as any other number.
Questions practitioners ask
What is the Admiralty Code and can I use it for business intelligence?
Yes, as long as you grade the origin of each piece of information and not the website where you found it. The Admiralty Code is the NATO intelligence grading system. It gives a letter from A to F for how reliable the source is and a number from 1 to 6 for how credible the specific report is, and the two are graded separately. To use it on business signals, give each origin type a starting letter and require two independent origins before you award a 1.
Can a finding be decision-grade with only one source?
Usually not. Under this standard, Decision-Grade needs a credibility number of 1, which means at least two independent origins confirming the same claim. The one exception is a regulatory filing with a legal deadline, such as an 8-K Item 5.02 executive departure, and only when the finding says no more than the filing says. That case grades A2 and can ship as Decision-Grade. Anything you infer beyond the filing needs its own corroboration.
How do I word confidence in a talent intelligence finding?
Write two sentences: one for likelihood and one for confidence. The first sentence states the judgment with a single ICD 203 likelihood term, such as 'likely' or 'very unlikely'. The second states high, moderate, or low confidence and names the evidence behind it. ICD 203 says confidence and likelihood must not be combined in the same sentence. Also avoid decimals that come from small samples, because they suggest a precision the data does not have.
Why are recent profile moves treated as provisional?
Profiles lag real job changes. Common advice is to update somewhere between two weeks and two months after starting a new role, and some people never update. One field experiment threw out jobs added in the first month or two for this reason. So a count of recent moves built from profiles probably undercounts, and it cannot reach a 1 until an origin other than profiles confirms it.
Should job postings count as evidence that a competitor is hiring?
Count them as evidence of intent, not of hires. Published ghost-job estimates range from 14.2% in the UK to 27.4% for US LinkedIn postings, and Greenhouse platform data puts the share at 18-22%. A post that is more than 30 days old and keeps being reposted should pull the finding's number down. Treat job posts as an origin that agrees with a move, never as one that confirms it.
Can software assign the grades automatically?
Software can collect sources, collapse duplicates, and suggest a starting letter, but a person should set the final grade. One published policy puts it bluntly: no algorithm is allowed to award itself an A1. This standard also requires a blind second grade from a peer for every finding before release, which is a step a tool cannot do for you.
Try it on the search you came here for
Stop building boolean strings. Just describe the person.
Type one sentence. I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web as it is right now, and hand back a ranked list with the reason next to every name.
01Describe them
One plain sentence. Role, city, stack, stage, whatever matters to you.
02I read the web live
GitHub, public LinkedIn and Crunchbase records, the open web. Not a database that went stale last quarter.
03You read the shortlist
Ranked, with the reasoning under every name. Open a profile, ask a follow-up, narrow it down.
- Staff backend engineers in NYC who shipped Rust in production
- Series A fintechs in SF under 50 people, growing headcount this year
- Maintainers of fast-growing Rust web frameworks on GitHub
- No boolean, no filters, no seat to buy. One box.
- Read at search time, so a profile updated yesterday counts today.
- Every step visible as it runs, every name with its reason.
500 free credits on sign-up. No card, no demo call. See real searches.