ReLoop.me · Profile Intel & Role Intel

Methodology

What the classification vocabularies are, what the system checks before it delivers, what it confirms versus what it infers, and what we have actually measured about whether it repeats itself. Including the claims we have withdrawn.

Last updated 5 October 2026. Hand-maintained, not generated from the pipeline. Updated weekly. The overview at reloop.me/methodology is the pitch and updates monthly; this page is the technical audit underneath it.
Engine on this pageRole IntelProfile Intel
Renderer27.9.6716.92
Delivery check before sendinggate 1.14 (21 coded rules)Quality Reviewer gate (29 phases)
Salary tables3.652.77
Object transformer2.4.81.16.2
Request builder · prompt4.23.03.35.22 · prompt 3.35.26 via patch 1.4.0
Input stepcalibrator prompt 1.1input builder 1.9
Reviewer prompt2.93.20.12
Index emit0.3.30.3.0
ESCO codesterms 1.0.0 · shown, exact matches onlylookup 0.1.0 · stored, not shown
Generation temperature0 since 2 Oct 20260.3
Last repeat-run measurement1 Oct 20261 Oct 2026

Read back from the live workflows on 5 October 2026, not from notes. The product columns were reviewed line by line on 23 September; newer facts are added as notes dated 5 October and in the changelog. Where an older sentence and a newer dated note disagree, the dated note is current.

What changed since 23 September

The two products

Both are read from a document you submit, both are delivered to this domain, and both run on the same engine. What differs is what they read, what they emit, and how much of each has been measured. They are set side by side so the difference is visible rather than asserted — including where one column is fuller than the other.

There is a second reason they sit together. Both already emit the same class of structured output — a closed classification, an evidence trail, a pay figure with its basis stated — and that shared shape is what a future comparison layer would read. Role × Profile, the planned layer that reads a person's structured profile directly against a role's structured demand, does not exist yet. When it does, it will not re-read either document; it will read the two structured outputs this page already documents. Nothing below should be taken as evidence that layer is built — the open backlog on each side, and the "On the roadmap" section further down, are what is actually true today.

Status at a glance

ProductComparable todayOpen backlog
Role Intel4 of 7 fields — the money and what feeds it, not the archetype word14 open
Profile Intel7 of 9 fields — the money and the vocabulary, not management tier or peak reports7 open

Counted by hand from the comparability tables and open-backlog lists below on every weekly update — not computed, and not a substitute for reading either list.

5 October 2026: backlog counts recounted from the lists below (the counts shown on 23 September were already behind them). Items closed today stay on the list, marked closed with their evidence. The comparability column was not recounted; the repeat-run cards in each column show what moved.

Role Intel €7 Measured 1 Oct 2026

A structured read of a role — what a job description is actually asking for, and how to read it.

Closed vocabularies

Same test as the column beside this one: for each value list, does the prompt lock it or merely list it. Role Intel answers worse than Profile Intel on the first vocabulary, and that is the most important line on this page.

Role archetypes 7, defined — not runtime-validated

Builder · Operator · Specialist · Connector · Fixer · Translator · Anchor

Until 10 September 2026 the prompt carried the seven bare words and no definitions; the definitions existed only as tooltip strings in the renderer, written after the fact, and the model never saw them. That is no longer true. Each of the seven now carries a written definition in the prompt itself, together with the evidence necessary for it to apply at all, the evidence sufficient to assign it decisively, and named patterns that resemble it and are not it. Job titles, seniority words, industry, culture language and tool lists are excluded as evidence by rule. A role carries a dominant type and may carry a secondary.

The vocabulary is still not runtime-validated. The reviewer is instructed to fail an off-vocabulary value as severe, and a legacy eighth value is coerced before storage — but neither is a deterministic check in code, which is why this heading says defined rather than closed. Whether the definitions make the assignment reproduce is a separate question, measured separately, and it has not been measured yet.

Seniority ladder 5 producible — not validated

Senior IC · Manager · Senior Manager · Director · VP/Executive

These five are the rungs the pay engine can actually price and label. Three problems sit behind that sentence. The free-text matcher accepts seventeen tokens and maps them onto those five. ic_junior is priced but has no band label, so a junior role is captioned with the senior band's name, and it is absent from the ladder, so it can never be scope-adjusted. And ic_mid, c_level and head_of are referenced by three consumers but producible by none.

Occupational family · geography closed

Families resolve through an alias map to a canonical set. Geography resolves to one of ten bands: four Romanian cities plus RO_other, and EU_west, EU_cee, EU_south, EU_nordic_ch, EU_unspecified. Pay is held per family × geography × rung.

Pay confidence closed

Calibrated or Estimated, with Disclosed where the employer published a band. Any inferred seniority forces Estimated.

This page claimed that on 1 September and the claim was not fully true until 7 September. Seniority is resolved four ways. The 1 September change caught two of them. It missed the third: where a job title carries an ambiguous token — lead, manager, principal, staff — the engine deliberately declines to trust the title and takes the level from a model-generated signal instead, and those briefs kept printing as Calibrated. The label now follows the actual basis in all four cases, shipped 7 September 2026. More published figures read Estimated than did before, and that is the correct direction. Briefs delivered between 1 and 7 September that carried an ambiguous title may show Calibrated where they should read Estimated; the figure itself is unchanged, only its confidence label. If you hold one and want it re-issued, ask.
Two vocabularies are not closed, and one of them is not a vocabulary at all. gap_type — the label naming what a role is missing — has no fixed list: two runs of the same input produced eight distinct labels with one overlap. And role_seniority_chip has no runtime validator anywhere in the pipeline; the sister product has been observed emitting C-level, which is off-vocabulary, and it reached a pay band regardless. Both are open. Recorded 2 September 2026.

What is comparable today

FieldVocabularyReproducedComparable?
Seniority band (pay)closed, 5yesyes
Family · geographyclosedyesyes
Likely offer · ask · rangederived from those threeyes, to the euroyes
Pay confidence tierclosed, 3yesyes
Role archetypelisted, not lockedno — 3 of 5NO
Secondary archetypelisted, not lockedno — 1 of 6NO
Gap typenot closednoNO
Prose, ordering, phrasingfreeno, by designnot intended to be

So the honest claim is that two Role Intel briefs are comparable on money and on the classifications that set it, and not on the single word that names the role's shape. That word is the most quotable thing on the brief and it is the least reproducible.

What is confirmed, and what is inferred

Everything comes from the job description submitted. Nothing is looked up: the posting is not fetched, the employer is not researched, no listing is retrieved.

Confirmed from the document

  • Stated title, location, work model
  • Stated responsibilities and requirements
  • A published salary range, where the JD gives one
  • Stated team size, reporting line, budget
  • Named tools, stacks and certifications

Inferred by the system

  • Role archetype and secondary archetype
  • True seniority and scope versus the title
  • JD-inflation signals and severity
  • Occupational family and geography band
  • Pay figures, which follow from those two
  • Transferability and talent-pool depth

These are readings of a posting, not facts about the employer.

What the system does not do

  • It does not fetch the job posting. A brief that claims it retrieved the JD is blocked before delivery — that is a named gate rule.
  • It does not evaluate a person, and it never sees one. A Role Intel brief is a read of a document about a job.
  • It does not tell you whether to apply. It has no verdict field of that kind.
  • It does not price above a figure the employer published. The internal table may never outbid a published ceiling — also a gate rule.

The delivery gate

Deterministic code inside the renderer, not a model. Nineteen numbered rules, DG-01 to DG-19, gate version 1.8. Each finding carries a rule id, a severity, a message and a machine-readable evidence object. Any finding at BLOCK stops delivery; WARN findings are recorded and the brief ships.

Why 1.8, briefly: 1.7 could reject its own correct output. One rule demanded a verdict — under-priced, over-priced, or aligned — on every brief, including ones priced against a job description that published its own salary grid, where no verdict was ever computable. 1.8 tells the two cases apart before asking for a verdict. The incident that surfaced it is below, dated.

#Checks#Checks
DG-01Indexability / robots contractDG-11Fabricated provenance ("retrieved the JD")
DG-02Verbatim JD span leakageDG-12Renderer produced a deliverable brief
DG-03Third-party email / phone leakageDG-13Function-area count vs calibrator
DG-04Named third-party employers on a public pageDG-14No figure above a published ceiling
DG-05Salary node contract completenessDG-15Ask basis matches the ask figure
DG-06Scope bump must not leak into likely offerDG-16Floor-only and degenerate disclosed ranges
DG-07Estimated-family band above Estimated confidenceDG-17Unanchored geography vs a rendered figure
DG-08EU anchor cap against evaluated valueDG-18Editorial claims vs evidence
DG-09Offer plausibility, disclosed and modelled pathsDG-19Comp scenarios vs the offer figure
DG-10Banned strings in the delivered brief
Updated 5 October 2026. The paragraph and table above describe gate 1.8. The live gate is 1.14 and has twenty-one rules. DG-20 (gate 1.12, 4 Oct) blocks delivery when a posting that is not employment renders a salary figure. DG-21 (gate 1.13, 5 Oct) warns, and never blocks, when the brief's written commentary contradicts the computed comparison with a published pay range. Gate 1.14 (5 Oct) fixed DG-17: it searched for a piece of stylesheet text rather than a rendered pay figure, and in one tested case blocked a correct brief. Versions 1.9 to 1.11 are recorded in the renderer's own change notes and are not itemised here yet.
The gate reports everything it runs — on briefs that ship. On blocked briefs it reported almost nothing, until today. A delivered brief carries delivery_gate_findings: the full serialised list of every finding, with ids, severities and evidence, plus a pass flag and block and warn counts. But a blocked brief throws, and the throw replaces the output — so the findings were lost precisely when they mattered. On 1 September a real brief was blocked and the stored reason was 77 characters of the tail of one sentence, with every rule id cut off; identifying the rule took a reconstruction from the payload. Two fixes have shipped: the message is now a single line, and the rule ids are appended at the end, where the truncation keeps them. Recorded 2 September 2026.

Engagement type, published-range comparison, ESCO

Three additions from 4 and 5 October 2026. Each is code around the model's reading, not a new model judgement.

Engagement type 6, closed · since 4 Oct 2026

Employment · Contract / fractional · Board / advisory seat · Fellowship / programme · Investment call · Volunteer role

Every posting is classified before it is priced. Only employment is priced against employment salaries. Anything else gets an economics panel and no salary figure, with a fixed line saying why: it is not employment, ReLoop.me does not compare it with employment salaries, and calibrated market data for that engagement type is not available yet. Gate rule DG-20 blocks delivery if a figure renders anyway, and these postings are kept out of the pay index. On the stored test set, 16 of 16 employment briefs came out unchanged and 44 of 44 non-employment briefs carried no figure. Profile Intel describes engagement with different words today (salaried, fractional, founder with equity); the two lists are not yet reconciled.

Comparison with a published range since 5 Oct 2026

When a posting publishes a pay range, the brief states where that range sits against ReLoop.me's own estimate for the scope the posting describes: below, at the low end, within or above. The comparison is made at the band edges, in gross annual terms, by code. A typical line: “The published range sits below ReLoop.me's estimate for this scope (…): even its ceiling (€XK) is under the band's floor (€YK).” It compares an estimate with a published figure; it is not a market fact and not an apply-or-pass verdict. No line is shown when no range is published, when only a floor is published below the band's top, when the location cannot be anchored, or when pay is equity-led. DG-21 flags a brief whose written commentary contradicts the computed line.

The title now caps the model's seniority reading (salary 3.65, 5 Oct). A title containing “manager” is priced no higher than Manager, and one containing “lead” or “leader” no higher than Senior Manager, when the level comes from the model rather than the title. The cap only ever lowers a level, and the brief says so in one line. Where the posting names no team, the brief prices the work described rather than the title.

Found and fixed the same day, 5 October 2026. A live brief told its reader a published range sat below the estimate, while the brief's own commentary called it competitive. Three faults stacked: the model read the role a level above its title; a detector trusted a category label written by the calibrator model as if the employer had written it; and “product launch” in a consumer-goods advert rerouted the role to product marketing. All three were fixed in salary 3.65. Re-run on the same advert, the brief now reads within, matching the prediction written down before the fix. On roughly 40 recent briefs, 7 had been priced from a model reading above a plain title; about one recent brief in six would now price lower.

Occupation code ESCO · exact matches only · since 5 Oct 2026

A brief can carry the role's occupation in ESCO, the European Commission's classification of skills, competences and occupations (v1.2.1), linked to its ESCO page. It is shown only when the job title matches a mapping a person has checked and marked an exact match; closest-family matches are stored and not shown. The code is read from that table with no model call, so the same title always gets the same code. Most titles have no checked mapping yet, so most briefs carry no code. Requirement terms are looked up and stored, not shown. How the mapping is built and kept current is under the common engine.

Determinism — what we measured

Same intent as the column beside this one, same answer in shape, but the split falls in a different place: Role Intel's money reproduces and Role Intel's headline word does not.

Identical input · pay path

Two runs of the same job description on the same day reproduced the pay figures exactly. A third run, captured separately as a fixture on live code, reproduced an earlier brief's figures to the euro. A fourth case was checked by recomputing the arithmetic by hand from the published band: likely offer at the lower third of a €89,700–€152,300 grid gives €110,566.7, rounded to €110,550, and the ask at the grid maximum gives €152,300. Both matched the delivered figures digit for digit.

The pay engine is deterministic code and behaves like it. Where pay has moved between runs, the cause has been a classification changing upstream, not the table.

Identical input · the archetype

Sixteen runs of byte-identical input returned Builder six times, Operator six times, Fixer four times — near-uniform across three of the seven values. Temperature was tested at three settings including 0; pinning it made the spread worse, not deterministic.

Separately, six real job descriptions were each submitted twice by accident, hours apart, byte-identical. The dominant archetype reproduced in 3 of 5 comparable pairs, the secondary in 1 of 6. In one case a single submission was delivered twice from literally the same bytes and came back Operator/Translator once and Builder/Connector the other.

The cause was known and it was not mysterious: the seven archetypes were handed to the model as a bare list with no definitions. That was the cheapest experiment on the backlog, and on 10 September 2026 it was run — the seven now carry written definitions, necessary and sufficient evidence tests, named false positives, and a stated order of resolution rather than a best-fit judgement.

Those figures have now been replaced by repeat runs. The paragraph that used to sit here promised numbers rather than more description. They are in the card below.

Identical input, four runs · 23 Sep 2026

A real, already-delivered job description. Reproduced offline: no live form submission. The live Request Builder node code was re-fetched from the workflow, and the two clauses deployed that morning were located in the captured system prompt to confirm the prompt under test is today's. The real user message was pulled from execution history straight to disk and never hand-retyped. Four independent, blind completions against that prompt and that message.

FieldRun ARun BRun CRun D
Role titleAI Practice Lead — all fourstable
CompanyKognitiv Inc. — all fourstable
Scope mis-level flagunder — all fourstable
Single-function flagtrue — all fourstable
AI-exposure levelBuilder — all fourstable
Compensation structuresalaried — all fourstable
Dominant archetypeTranslatorOperatorTranslatorOperatormoved
Secondary archetypeOperatorTranslatorOperatorTranslatormoved
Seniority readingSenior ManagerSenior ManagerDirectorSenior Managermoved
Geography chipUnstatedUnstatedUnstatedemptymoved
Confidence labelMediummediummediummediummoved

Seven fields of twelve reproduced across all four runs. Five moved.

The archetype pair is stable as a set and unstable as an order. All four runs returned the same two types — Translator and Operator — and all four disagreed about which of them the role is accountable for, two each way, with the secondary the exact mirror of the dominant every time. That is a sharper result than the sixteen-run spread above: the rubric appears to have settled which types are in play without settling which one is the answer. The step that assigns accountability is where the remaining instability sits.

The pay engine is still deterministic. The reading handed to it is not. Three runs read the role as Senior Manager and one as Director, with nothing else about the document changed. On the live table those two bands, for this occupational family and this region, are €3,650 and €4,700 net per month — a 29% swing in the delivered figure, roughly €73,000 against €94,000 gross a year, on identical input. The arithmetic below the classification reproduces to the euro; the classification above it does not. The brief actually delivered from this document carried the Director reading — the one that came up once in four.

Caveats, both limiting. One document, four runs, is not a rate — it is one document on one day, and the two Profile Intel studies on this page show that which field is unstable depends on the document. And the harness is not the production caller: the live Role Intel request sets no temperature parameter at all, taking the API default, and these four runs were independent completions at whatever sampling the harness applied. Directionally informative about reproducibility, not a claim of identical decoding.

What the 10 September change altered

The change also alters some outputs: where a posting’s accountability and its dominant method point to different types, the dominant type may now differ from what the same posting returned before 10 September. The direction is intended; the size of the shift is unmeasured. A further clause narrowing one of the seven types shipped on 23 September, hours before the runs above; it is present in the prompt they were run against, and is itself unverified until a widened set is graded.

A question for whoever maintains the Profile Intel column. The changelog below records an earlier sixteen-input reproducibility study as unrecorded because its date and fields cannot be sourced. The sixteen-run study above is a Role Intel archetype study. These may be the same study, filed against the wrong product. We are flagging the possibility rather than merging them, because guessing would be exactly the failure the log exists to prevent.

Repeat runs since 23 September · added 5 Oct 2026

1 October, thirty runs of one job description on production settings (temperature 0.3), set beside two general models given a simple prompt (gpt-5-mini, gemini-3-flash-preview, thirty runs each). Role type Builder 30 of 30. Seniority Senior Manager 22, Senior 8, so the same posting can be priced on two rungs. Capability names were close to unique: 124 distinct names in 140 slots. Capability themes overlapped from run to run at 0.66, against 0.73 and 0.76 for the general models. So Role Intel is not more repeatable than a general model on capability wording, and this page does not claim it is.

1 October, title test, eight runs per arm. The same posting body under two titles, “Head of Growth” and “Growth Marketing Specialist”. Role Intel read the seniority as Mid-Senior 8 of 8 under both titles; both general models moved with the title. What differs is judgement, not repeatability: it reads the scope the posting describes, not the title.

Since then: on 2 October the generation call was set explicitly to temperature 0. On 5 October the title cap above came in: for the posting in the four-run card, titled “AI Practice Lead”, a Director reading is now priced as Senior Manager, so the 29% swing shown there can no longer reach the delivered figure for titles of that kind. Neither change has been re-measured with repeat runs yet. One job description per test is not a rate.

What we claim, precisely

  • The generation call runs at temperature 0.3, set explicitly at the request, and the reviewer at 0.3 as well.
  • Seniority band, family, geography and every pay figure reproduced exactly across the identical-input cases above. Evidence from a handful of documents, not a guarantee.
  • The role archetype does not reproduce, at 3 of 5 and 1 of 6, on samples that are small but consistent, and on a mechanism we can name.
  • Whether the generation call ever ran without an explicit temperature is not established. The retained workflow history reaches back only to 1 September 2026 — four versions, all from that day — so the question cannot be answered from it. It is not answered by assumption either.
Narrowed 5 October 2026. The first item above was not reliably true: on 23 September the live request carried no temperature (see the caveat in the four-run card), and which setting applied between then and 2 October is not settled. Since 2 October the generation call runs at 0, read back from the live request; the calibrator and the reviewer stay at 0.3. The second item held on the cases it lists and not on the later runs. The narrower claim: the pay figure reproduces exactly whenever the seniority, family and geography readings do; the seniority reading itself does not always reproduce.

EU AI Act posture

Not analysed, and not inherited. The Profile Intel analysis turns on a brief being commissioned by the person it describes. A Role Intel brief describes a job, is commissioned by a candidate reading that job, and evaluates no natural person at any point — a structurally different question that has not been worked through. The mechanism set out under the common engine below is stated there because it is the same whoever reads it; where the line falls for Role Intel specifically is open.

Submitted material and retention

Not established. Whether Role Intel makes the same retention promise as Profile Intel, and whether a mechanism stands behind it, has not been audited. Stating it before checking is how the Profile Intel promise ran ahead of its mechanism, and the same mistake is not worth repeating on this side of the page.

Delivery identity

A Role Intel brief declares product = "Role Intel", and that label appears in the brief's provenance paragraph and in its structured page data. Whether the two products are visually distinguishable to a reader who lands on one has not been audited.

Open backlog

  • Role archetype does not reproduce. 2 Sep 2026. Half closed 10 Sep 2026 — the seven values are no longer undefined in the prompt. Repeat runs, 23 Sep 2026: four blind runs of one real posting returned the same two candidate types every time and split two–two on which of them is dominant, the secondary mirroring the dominant each time. The rubric settled which types are in play; it did not settle which one is the answer. The item stays open, now with a number and a narrower target: the instability is in the accountability step, not in the vocabulary.
  • Gap type has no closed vocabulary — 8 labels across 2 runs. 2 Sep 2026.
  • No runtime validator on the seniority chip, in either product. 2 Sep 2026.
  • Thirteen non-monotonic salary rows: Senior Manager prices above Director in two families, so a scope adjustment upward lowers the band while the brief says it was adjusted for scope. 2 Sep 2026.
  • ic_junior has no band label and cannot be scope-adjusted; a junior role is priced correctly and captioned with the senior band's name. 2 Sep 2026.
  • Three phantom rungs are referenced by consumers and producible by none. 2 Sep 2026.
  • Pay figures are not stored, so the database cannot answer what a given brief told a customer about money. 2 Sep 2026.
  • Romanian briefs leak English interface strings — 59 sites inventoried, 46 of them reaching the page. The locale itself resolves correctly; these are untranslated constants. 2 Sep 2026.
  • The scope-adjustment direction is emitted and never read by the renderer, so a brief can argue a title is inflated and then advise as though it were understated. 2 Sep 2026.
  • The engine version stamped into the brief index is four versions stale. 2 Sep 2026.
  • The prompt build is not recorded with the brief. The stored version string does not name it, and three prompt builds since 7 September all write the same string, so a brief can be attributed to a build only by its timestamp. 10 Sep 2026.
  • The seniority chip flips on some postings: Senior Manager 22, Senior 8 across thirty identical runs, and the chip sets the pay rung. Measured at temperature 0.3; not re-measured at 0. 1 Oct 2026.
  • Capability names are close to unique from run to run (124 distinct in 140 slots), which blocks any comparison that joins on capability names. 1 Oct 2026.
  • Engagement-type words differ between the two products. 5 Oct 2026.
Profile Intel €19 Measured 1 Oct 2026

A structured capability read of one person, from their CV, commissioned by that person.

Closed vocabularies

A closed vocabulary means the system may only emit values from a fixed list. It is what lets two briefs be compared. Where a vocabulary is not closed, this page says so.

Profile types 7, closed

Builder · Operator · Specialist · Connector · Fixer · Translator · Anchor

The prompt states these must be exactly this set. A profile carries a primary type and may carry a secondary. The type is separate from the career archetype — a free-text positioning label capped at four words, which may never be one of the seven types.

Career patterns 7, closed

Linear · Progression · Steady · Lateral · Crossover · Multi-track · Multi-context

A profile carries a dominant pattern and, where the shape is dual, a foundation pattern. The dominant is always the more distinctive of the two, never the more common one.

Capability ladder 4 bands, closed

Every brief carries four to six capability clusters. Each gets a band, an evidence confidence and a recency class. The band is not a judgement of the person; it is a statement about how much of the CV supports the claim.

BandRequires
DistinctiveDocumented market outcome and rarity evidence and confidence High and recency Current or Recent
ExpertConsistent multi-role evidence at confidence High — or Med only where the cluster has a quantified outcome anchor
DemonstratedTwo or more roles, no outstanding outcomes; confidence Med or Thin
EmergingLimited, recent or unvalidated evidence; mentioned once or implied only

Evidence confidence

High3+ anchors, 2+ roles
Med2 anchors, or one role
Thin1 anchor, or implied

Recency

Currentwithin 2 years
Recent2–6 years
Historic7+ years

The recency gate caps the top of the ladder, and only the top. If the newest supporting evidence for a capability is seven or more years old and has not been refreshed by recent work, that capability caps at Expert rather than Distinctive. It is never dropped below Expert on recency alone. A rare credential stays a rare credential even when it is old — currency of a capability and rarity of a credential are different axes, and the system does not collapse them.

Legacy labels. Briefs generated before the ladder was renamed carry Solid, Developing and Basic. These map to Demonstrated, Emerging and Emerging. They are not emitted in new output.

One vocabulary is not closed, and you should know which. The management-tier scale used in the experience timeline — IC / Team Lead / Manager / Senior Manager / Director / VP / C-level — is specified as a list but not locked the way the vocabularies above are, and its seven values do not map one-to-one onto the six-rung scale the pay engine uses. A fix is specified and not yet shipped. Recorded 1 September 2026; see the changelog.

What is comparable today

Comparability rests on the closed value lists, not on the prose being identical. So it holds for exactly the fields whose vocabularies are closed and which have been shown to reproduce:

FieldVocabularyReproducedComparable?
Profile typeclosed, 7not measuredby vocabulary
Career patternclosed, 7not measuredby vocabulary
Capability bandclosed, 4not measuredby vocabulary
Confidence · recencyclosed, 3 eachnot measuredby vocabulary
Seniority band (pay)closed, 6yesyes
Family · geographyclosedyesyes
Likely-offer figurederived from those threeyesyes
Management tiernot closednoNO
Peak direct reportsan integer, not a vocabularynoNO
Prose, ordering, phrasingfreeno, by designnot intended to be

So the honest form of the claim is narrower than "briefs are comparable". Two briefs can be compared on profile type, career pattern, capability band, seniority, family, geography and the pay figures. They cannot currently be compared on management tier or peak direct reports. Those two are named in the changelog as open, and this table is what the claim is reduced to until they close.

Read the geography row with the backlog open. “Comparable” here means two briefs use the same value consistently. It does not mean the value is right for the market. A defect found 2 September 2026 puts Southern-European, Nordic and Swiss profiles on a neighbouring band — reproducibly, and printed as calibrated. The pay rows inherit it. See the open backlog below.

What is confirmed, and what is inferred

Everything on a brief comes from the submitted CV. Nothing is looked up about the person, and no external record is consulted. But not everything on a brief has the same standing.

Confirmed from the document

  • Employers, role titles, stated dates
  • Durations computed from those dates
  • Stated skills, tools, named credentials
  • Stated figures, as the CV states them
  • Education and certifications as listed

Every evidence anchor must trace to specific content in the CV. An empty anchor list is a correct output; an invented one is a failure.

Inferred by the system

  • Profile type and career pattern
  • Capability clusters, bands, confidence, recency
  • Seniority band and occupational family
  • Salary bands, which follow from those two
  • Rarity anchors and the misread-risk audit
  • Trajectory, fit and direction

These are readings of a document, not verified facts about a person.

What the system does not do

  • It does not verify that a claim in the CV is true. It audits how well the CV supports the claim, and marks each one substantiated, partial, weak, unverifiable or unsupported.
  • It does not look the person up. No search, no public records, no social profiles.
  • It does not rank one person against another. A brief is commissioned by, and about, one person.
  • An impressive company-scale number the audit cannot substantiate is treated as context, never as a lift to a band, a confidence, a level or a trajectory.
  • Since 4 October 2026, nothing typed into the order form moves a figure or a band. Answers to the form's questions steer what the read pays attention to. A self-estimated salary is no longer shown to the model at all; it is compared with the read only after the read is done.

The delivery gate

Before a brief is delivered, a separate reviewer model checks it against numbered rules and returns pass, warn or fail on each. The gate owns the final decision. There are 29 numbered phases — eleven K phases and sixteen L phases, plus a truncation check and a language check. Six L phases carry lettered sub-checks. There is no K8.

#Phase#Phase
K1Version compatibilityL1Required fields
K2Seniority calibrationL2Type and enum validation
K3Calibration gatesL3Inflation-signal validation
K4Path coherenceL4Friction-point type enum
K5Type-confidence validationL5Inflation coherence
K6Market-adjacency completenessL6Recency rule
K7Unique-signal nullabilityL7CV-completeness mirror
K9Delivery gate (final call)L8Vocabulary gate, inflation risk
K10Substantiation validationL9Language consistency
K11Contamination resolutionL10Distinctive-edge structure
K12Macro ranking-implicationL11Value-layer enum
YTruncation checkL12Capability schema
ZLanguage gateL13Searchable skill tags
L14Visible / internal field contract
L15Source-citation defaults
L16Premium-eligible flag
The gate reports a subset of what it runs. All 29 phases execute, but the machine-readable result carries fifteen entries: thirteen rules with a pass / warn / fail, plus two warn-only sub-checks (seniority anchor, tenure coherence). The remaining sixteen phases act on the output and raise warnings, but do not surface a per-phase verdict. We are stating this rather than publishing a rule count that sounds larger than what is reported. Recorded 1 September 2026.

A brief is delivered on pass_validated or compact_validated. On fail_validated it is held and not sent. A held brief is a working gate, not a lost order — it means the reviewer found something the read could not stand on.

Determinism — what we measured

The design intent is that the same CV produces the same brief. That is not what we measured, so it is not what we claim.

Identical input, two runs · 1 Sep 2026

FieldRun ARun B
Seniority bandDirectorDirectorstable
Occupational familymarketingmarketingstable
GeographyRO_bucharestRO_buchareststable
Likely-offer figure€3,250€3,250stable
Inflation-risk labelMediumMediumstable
Market-value figure€4,017€4,095moved
Peak direct reports14moved
Coordination-scope labeltwo different stringsmoved

The classifications that set the salary reproduced exactly. The management-scope reading did not.

Identical input, two runs · 23 Sep 2026

A different real, already-delivered candidate document from the one used on 1 September — not a re-run of the same input. Reproduced offline: no live Tally submission. The exact live CIA Request Builder and CIA Prompt Patch (REGRESSION-78) node code was re-fetched from the workflow and executed standalone to reconstruct today's deployed system prompt; the real user message was pulled from n8n execution history straight to disk, never hand-retyped. Two independent, blind runs against that reconstructed prompt and the real user message.

FieldRun ARun B
Seniority bandsenior_managermanagermoved
Occupational familyhr_peoplehr_peoplestable
GeographyRO_bucharestRO_buchareststable
Likely-offer figure€3,100€2,200moved
Inflation-risk labelMediumMediumstable
Market-value figure€3,500€2,500moved
Peak direct reports55stable
Coordination-scope labeltwo different strings, same tier ("Regional")moved

This run moved on the field the 1 September run held stable — seniority band swung a full band (senior_manager → manager) — and the salary figures moved with it, roughly a 29–38% swing on the same document. Peak direct reports, which moved on the 1 September document, held stable on this one. Two single-document measurements six weeks apart do not average into a rate; they show that which field is unstable depends on the document, not on a fixed property of the field.

Caveat: the harness used to run this comparison cannot pin the API's temperature parameter the way the live call does (temperature 0.3). The two runs above are independent completions at whatever sampling the runtime applied, so this is directionally informative about reproducibility, not a claim of the exact same decoding setting as production.

Eighteen characters changed · 1 Sep 2026

The same document with an eighteen-character phrase deleted from one bullet. Nine of twelve timeline rows were identical. Three moved, and the peak-level reading moved with them:

RoleWithWithout
Head of Marketing & GrowthDirectorManager
Marketing & Operations LeadDirectorManager
FounderC-levelIC

Peak management level for the whole profile: Director in one run, Manager in the other — a two-band swing on the same document. The claims audit also differed: twelve claims listed in one run, thirteen in the other, and the one claim marked unsupported in the first was not audited at all in the second. That single difference propagated to the inflation-risk label and to whether a whole block appeared on the page.

The prediction under test — that the phrase was setting the seniority band — was wrong. The band did not move; the management tier did. We are recording the failed prediction because it is the result.

Repeat runs, 1–2 October 2026 · added 5 Oct 2026

Thirty runs of one real CV on production settings, set beside two general models given a simple prompt (thirty runs each). Seniority 30 of 30, profile type Builder 30 of 30. Capability themes overlapped from run to run at 0.69, against 0.79 and 0.83 for the general models, so Profile Intel is not more repeatable on capability wording either. The headline capability took 14 different values in 30 runs, and one capability sat on the Expert/Distinctive boundary, 17 against 13.

Echo test, eight runs per arm, synthetic CV. The same CV with and without a header in which the person rates their own capabilities. The self-rated capabilities appeared in 0 of 8 Profile Intel runs, against 4 to 8 of 8 for the general models; Profile Intel marked the self-labelled version down for inflation instead. The CV used in the thirty-run test labels its own “distinctive edge”: the general models rated that capability Distinctive in 31 of 32 and 29 of 31 slots, and Profile Intel rated it Demonstrated in 22 of 30.

2 October: the evidence-quality score moved from the model into code (object transformer 1.15.0). Ten runs of one CV then returned the same score, 58, every time, where it had ranged from 62 to 74.

What we claim, precisely

  • Generation runs at temperature 0.3. It is a language model reading a document, and it does not repeat itself exactly.
  • Two identical-input studies now sit on this page, six weeks apart, on two different real documents. Read field by field rather than as two separate verdicts: occupational family, geography and the inflation-risk label were stable on both documents. Two runs each — that is evidence, not a guarantee.
  • Market-value figure and the coordination-scope label were unstable on both documents. Named, dated, and open on both studies.
  • Seniority band, the likely-offer figure and peak direct reports flipped between the two documents — stable on one, unstable on the other. That is the most important reading on this page: instability is document-dependent, not a fixed property of a field. A field reproducing cleanly on one CV is not evidence it will on the next one.
  • No field on this page has been observed more than twice. "Stable" above means stable across two runs on one document, not a measured rate — the same field could still move on a third run or a different document.
  • Both studies were run after 28 August 2026, so they describe the engine as it is configured today. They are not a measurement of the briefs produced before that date, which ran at a materially higher temperature — see the changelog.
  • Comparability rests on the closed value lists, and the table above names which fields that covers today.

EU AI Act posture

A Profile Intel brief is a capability overview commissioned by the person it describes, and in that use it is not a high-risk AI system. Using one to evaluate, screen, rank or compare someone else against a role is a different purpose and may fall within high-risk classification. The mechanism, and the date it applies, is set out under the common engine below.

Open backlog

  • Management-tier vocabulary is not closed. Fix specified, not shipped. 1 Sep 2026.
  • Peak direct reports does not always reproduce, and it is load-bearing on the pay figure via a peak-management premium. Moved (1 vs 4) on the 1 Sep 2026 document; held stable (5 vs 5) on a second, different document measured 23 Sep 2026. Document-dependent — not resolved.
  • The claims audit varies in selection, not rating — which moves the inflation label and whether a whole pay block renders. 1 Sep 2026.
  • An earlier sixteen-input reproducibility study is unrecorded because its date and fields cannot yet be sourced. 1 Sep 2026. Checked against Role Intel's own sixteen-run study, 23 Sep 2026, and confirmed not the same study — see the changelog. Still open, still unsourced.
  • Suppressed-pay wording renders in English on Romanian briefs. 2 Sep 2026. Closed 5 Oct 2026: Romanian briefs now always use the Romanian sentence (renderer 16.92).
  • Southern-European, Nordic and Swiss profiles are priced on the wrong band. The pay engine holds separate bands for those regions and resolves the city correctly; the classification step cannot emit them, so a profile is forced onto a neighbouring band and the figure is printed as calibrated. Evidenced on a Rome profile priced on Central and Eastern European bands. 2 Sep 2026. Closed, recorded 5 Oct 2026: fixed by a geography override in salary 2.50/2.51; the fix shipped before 23 September and this page never recorded it.
  • The engine version stamped into a brief does not match this page. Briefs were seen carrying cia=3.20.0 against a single 3.27.2 figure this page stated on 2 Sep 2026. Status 23 Sep 2026: this page no longer publishes one overall number to compare against — the header above now lists five components read separately off the live workflow. Root cause now traced. The CIA prompt never defines a _metadata.cia_version field — zero occurrences in the decoded system prompt. The Quality Reviewer prompt tells its model to read that field anyway; asked to copy a value that is not on the page in front of it, the model supplies a plausible one, most often its own version number, which is why so many briefs carry the Quality Reviewer's changelog numbers rather than the generation engine's. Demonstrated live 4 Sep 2026: three briefs of one person on an identical engine carried cia=3.20.0, cia=3.20.0+ and cia=3.27.2. Traced, not fixed — the field the model is asked to copy still does not exist. Closed, recorded 5 Oct 2026: fixed by prompt patch 1.3.0 and object transformer 1.16.1 (3 Oct). A brief generated on 4 October carries cia=3.35.26, the build it actually ran on.
  • One withdrawn brief identifier is a placeholder pattern, not a generated identifier. It appears in the withdrawn-brief list as a string of literal X characters. Either it was never a delivered brief and the list is one entry long, or a placeholder reached a delivered page — which would be a defect in identifier generation rather than a dead page. Not yet established. 10 Sep 2026. Closed 5 Oct 2026: no Profile Intel record carries that identifier or a link to it, so it was never a delivered brief.
  • The language lock can be overridden by the model on an English-jargon-dense CV, even when everything upstream is correct. Found live 23 Sep 2026: a Romanian CV with heavy English professional terminology (job titles, functional-area names) got a deterministic, correctly-locked detected_language="ro" at 0.90 confidence, and an explicit instruction naming every narrative field the lock covers — the model still wrote the entire brief in English (0.95 confidence, 926 markers across all 181 narrative strings; not a marginal slip). The G-5 merge guard, added 11 Sep 2026 after a different language-lock incident, caught it and held the brief undelivered — that is the guard working as designed, not a new failure, and nothing was sent to the candidate on the wrong-language brief. A revised instruction, naming English job-title and industry-terminology density explicitly as vocabulary rather than a language signal, was tested offline against the real held document: two independent runs, both fully Romanian (roughly 1,000 Romanian markers against under 60 English markers each, no individual field scoring predominantly English). Prepared as a versioned patch. Not yet deployed. Status 5 Oct 2026: deployed in input builder 1.8 on 23 September; not yet observed on a second jargon-dense Romanian CV, so it stays open.
  • The headline capability is unstable: 14 different values in 30 runs of one CV. 1 Oct 2026.
  • The top band boundary flips: one capability Expert 17, Distinctive 13 across 30 runs. 1 Oct 2026.

The common engine

Both products run on this. It is stated once here rather than twice above, because a claim written in two places is a claim that will eventually disagree with itself.

Architecture

Deterministic code around model calls: a generation step that reads the document and writes the structured output, and a separate reviewer that checks that output against numbered rules before anything is delivered. Everything between and around them — extraction, normalisation, the pay lookup, the gate arithmetic, the rendering — is ordinary code and behaves the same way every time.

The number of calls is not the same on both sides, and this page said it was until 2 September 2026. Profile Intel runs two. Role Intel runs three: a small calibrator that classifies the posting first, then generation, then the reviewer. Model and temperature differ too — see the table beside this one.

Model configuration

Profile Intel

Generationclaude-sonnet-4-6temp 0.3, max_tokens 20,000
Reviewerclaude-haiku-4-5temp 0

Role Intel

Calibratorclaude-haiku-4-5temp 0.3
Generationclaude-sonnet-4-6temp 0 since 2 Oct 2026, max_tokens 32,000
Reviewerclaude-sonnet-4-6temp 0.3, max_tokens 16,001

Temperature 0 on the Profile Intel reviewer is not determinism either — it is a decoding setting, not a guarantee of an identical result. Role Intel has no call at 0: all three run at 0.3, and the reviewer is the larger model rather than the small one. Changed 2 October 2026: Role Intel's generation call now runs at 0, so the sentence before this one describes the configuration up to that date.

The temperature boundary, and how much of the delivered corpus sits on the wrong side of it. Before 28 August 2026 the Profile Intel generation call set no temperature at all and ran at the API default of 1.0 — the only model call in the product without an explicit setting, while the reviewer beside it already sat at 0. It writes the whole brief, structured fields included. Counted against the engine fingerprint stored with each brief: 109 briefs were generated before the fix and 9 after it, with 13 produced too early to carry a fingerprint at all. Roughly five in six Profile Intel briefs delivered to date were produced at temperature 1.0. Briefs from either side of 28 August 2026 are not directly comparable artefacts, and the engine fingerprint recorded with each brief is what distinguishes them. Whether the Role Intel generation call had the same gap is not yet established, and cannot be settled from the workflow history: the retained history for the Role Intel workflow reaches back only to 1 September 2026 — four versions, all from that day's work. Role Intel's generation temperature is explicit today, applied to the request at call time. How long it has been is an open question with no evidence behind it either way.

Classification standard: ESCO

Since 5 October 2026 both products look up codes in ESCO v1.2.1, the European Commission's classification of skills, competences and occupations. Romanian COR codes come from the EURES ESCO–COR mapping where one exists. This service uses the ESCO classification of the European Commission; the Commission does not endorse ReLoop.me.

What "deterministic" does and does not mean here

The pipeline is deterministic code around a language model, and the code is deterministic — the same inputs produce the same pay lookup, the same gate arithmetic, the same rendered layout. The classification step is not. Any claim that "the same input produces the same output" has to say which of those two it is talking about, and ours did not. That is why it was withdrawn rather than restated.

Submitted material and retention

Where the EU AI Act line falls

A brief commissioned by the person it describes is not, in that use, a high-risk AI system. Using one to evaluate, screen, rank or compare someone else against a role is a different purpose, and may fall within high-risk classification under Annex III point 4(a) of Regulation (EU) 2024/1689 — AI systems intended for the recruitment or selection of natural persons, in particular to evaluate candidates — via Article 6(2). Article 25(1)(c) is the route by which provider obligations transfer: a party who modifies the intended purpose of a system so that it becomes high-risk is considered its provider and takes on the obligations in Article 16. Those obligations apply from 2 December 2027, deferred from 2 August 2026 by Regulation (EU) 2026/1744 — so this describes where the line will fall, not an obligation in force today. It is a statement of scope, not legal advice.

This states the mechanism, which is the same whoever reads it. How it applies to Role Intel specifically has not been analysed — Role Intel reads a role rather than a person, which is a different question and does not inherit the Profile Intel answer.

On the roadmap

Not defects — features that don't exist yet, named here on purpose so they don't quietly drop off the list. Dated when work starts. Moved to the changelog, and off this list, when they ship.

Profile Intel — ESCO codes on the brief

Started 5 October 2026. Job titles are looked up and stored, not shown. Codes appear on Profile Intel briefs once three briefs in a row each carry at least one validated exact code. Capability terms need a stable input first: the model naming each capability's core term from a closed list, rather than in its own words.

Role Intel — show the independent estimate next to a published band

Shipped in part, 5 October 2026, as the published-range comparison line in the Role Intel column. Kept here until the gap is shown as a figure as well as a position.

Today, whenever a job description publishes its own salary band, Role Intel still computes its own independently modelled value for the same work — and then doesn't show it, deferring entirely to the employer's number. The plan is to show both: what they publish, what the model independently values the work at, and the gap between the two, stated plainly.

The gap runs both ways, and the copy has to say so. Sometimes the independent estimate is higher than the published band — under-priced scope. It can also be lower: early-stage, well-funded roles in particular sometimes publish a band ahead of what the seat's actual scope would independently price at. Neither direction is the one to expect by default; the point is showing the number, not editorialising it.

Profile Intel — close the seniority vocabulary

Seven values are listed for management tier; only six are locked in the pay engine, and nothing checks the list at runtime today (see the open-vocabulary flag above). The plan is one shared enum across both consumers, hard-failed in deterministic code rather than judged by a model.

What this page shows, and what stays proprietary

Enough to check a claim on a brief against a stated definition, and to see the shape and pace of the work. Not enough to rebuild the engine.

Shown here

  • The full classification vocabularies — closed and not-closed alike
  • What the delivery gate checks, and what it reports versus what it runs
  • Measured determinism figures, including the ones that came out badly
  • A dated changelog of every claim added, changed, or withdrawn
  • Model and temperature configuration for both products

Not shown here

  • The generation and reviewer prompts themselves
  • How a value gets assigned to a vocabulary term — the classification logic
  • The pay-derivation tables and their weighting
  • The Role × Profile matching logic, once it exists

The line is drawn where it is on purpose: what's shown is what a reader needs to check a claim on their own brief. What's kept is what would let someone reproduce the read without doing the work of building it.

Changelog

Claims added, changed and withdrawn. Newest first. Every entry carries a date and a reason. A withdrawn claim stays on this page — removing it would defeat the point of the page.

5 October 2026
ChangedA job title now caps how senior the model may read the roleRole
Titles with “manager” price at most as Manager, and titles with “lead” or “leader” at most as Senior Manager, when the level comes from the model's reading. Two family detectors were also tightened: a category label written by the calibrator model no longer counts as evidence for marketing technology unless the advert names such a tool, and “product launch” alone in a consumer-goods advert no longer reroutes to product marketing. Found on a live brief that called a published range “below” while its own commentary called it competitive; re-run, it reads “within”, as predicted before the fix. Regression set: 61 of 72 stored inputs unchanged, the 11 changes all on that advert. Salary 3.65.
5 October 2026
ChangedA delivery check that could block a correct brief was fixedRole
DG-17 looked for a piece of stylesheet text instead of a rendered pay figure; in a tested case it blocked a correct brief. It now looks for the rendered element. 66 stored inputs unchanged. Renderer 27.9.67, gate 1.14.
5 October 2026
AddedRole Intel briefs can show an ESCO occupation codeRole
Shown under the location line, linked to the ESCO page, only when the job title matches a row a person has checked and marked an exact match. The footer then adds: “This service uses the ESCO classification of the European Commission.” Lookup by table, no model call. In testing the same job description returned the same code three times out of three. Requirement terms are looked up and stored, not shown. Renderer 27.9.66, ESCO terms 1.0.0.
5 October 2026
AddedPublished pay ranges are compared with ReLoop.me's estimateRole
Below, at the low end, within or above, compared at band edges by code; no line when no range is published, when only a low floor is published, when the location cannot be anchored, or when pay is equity-led. Where a posting names no team, the brief prices the work described rather than the title, and says so. New warning rule DG-21. Salary 3.64, renderer 27.9.66, gate 1.13.
5 October 2026
ChangedRomanian Profile Intel briefs: pay wording fully in RomanianProfile
The suppressed-pay sentence and the pay-guard labels now render in Romanian on Romanian briefs, closing an item open since 2 September. The near-case line now reads “The CV evidence supports the same level”. English briefs unchanged. Renderer 16.92.
5 October 2026
ChangedOne marketing pay row aligned between the two enginesBoth
Marketing, Bucharest, senior individual contributor: 850/1,100/1,500 to 950/1,250/1,700 net EUR a month, the value Role Intel adopted the day before (one publisher, 2025). The other Romanian city rows for marketing are still ratios of the old Bucharest row. Profile Intel salary 2.77.
5 October 2026
AddedProfile Intel looks up ESCO codes for job titles, without showing themProfile
Experience titles are looked up in the checked table and the result is stored with the record. Nothing on the brief changes. It turns on when three briefs in a row each carry a validated exact code. Before building it we checked three runs of one CV against the table: 0 matches, and the capability names overlapped in only 3 of 47 between two runs of the same CV. That is why titles go first and capability terms wait.
5 October 2026
ChangedFour Profile Intel backlog items closedProfile
Suppressed-pay wording on Romanian briefs (fixed today). The Southern-European, Nordic and Swiss band defect (fixed in salary 2.50/2.51 and never recorded here). The cia= version stamp (fixed 3 Oct). The placeholder brief identifier (never a delivered brief). Each stays on the list, marked closed with its evidence.
4 October 2026
AddedA checked ESCO mapping table and a weekly update loopBoth
Terms are mapped to ESCO at two levels, exact and related. Two models from two vendors propose; a person validates; only validated rows reach a brief. Measured against the reviewer on 62 terms, the model panel's best code was in her accepted set 77% of the time. Details under the common engine.
4 October 2026
AddedEngagement type is classified before pricingRole
Six types. Only employment gets a salary figure; the others get an economics panel and a fixed line saying why. New blocking rule DG-20; these postings are kept out of the pay index. Object transformer 2.4.8, renderer 27.9.64, gate 1.12, index emit 0.3.3.
4 October 2026
ChangedForm answers and a self-estimated salary no longer move any figureProfile
Form answers steer what the read looks at. A self-estimate is removed from the model's input and compared with the read only afterwards. A new “second thread” row shows an alternative trajectory side by side, and the contract-rate block renders for the first time. Prompt patch 1.4.0, input builder 1.9, renderer 16.91.
4 October 2026
ChangedPraise for the employer is removed from Role Intel briefs by codeRole
Phrases such as “reputable employer” are a judgement about a company the brief has not researched. Removed deterministically. On 55 stored runs: 14 briefs touched, 21 adjectives and 5 sentences removed, no false removals found. Object transformer 2.4.7.
3–4 October 2026
ChangedUK pay priced by region, quarterly cells updated, the two engines alignedBoth
UK roles price on London unless a named place outside London is given, which applies a factor of 0.88 or 0.80. The quarterly pay check (1,017 dated points from 45 publishers) updated a set of cells. Profile Intel then took Role Intel's values for the shared cells, including 45 unsourced cells aligned down. Role Intel salary 3.63; Profile Intel salary 2.72 to 2.76.
3 October 2026
ChangedProfile Intel brief footer states crawlability and CV deletionProfile
“Your brief, your link. Crawlable by design — share it, or ask hello@reloop.me to remove it.” And: the CV and the text extracted from it are deleted within three months of delivery. The word “Confidential” was removed from that footer because the brief is not. Renderer 16.90.
3 October 2026
ChangedA no-team “Senior Manager” is shown and priced as SeniorRole
Where a posting gives the title no team, the chip reads Senior and the rung is priced as a senior individual contributor. Sentences promising a later calibration were removed from briefs. Object transformer 2.4.6, salary 3.61.
2 October 2026
ChangedRole Intel generation temperature set to 0Role
Set explicitly on the request and read back from the live workflow. The calibrator and reviewer stay at 0.3. Not yet re-measured; see the repeat-run card in the Role Intel column.
2 October 2026
ChangedEvidence-quality score and gap counts computed in codeProfile
They were model-emitted numbers and drifted between 62 and 74 on the same CV. Computed in code, ten runs returned 58 every time. Object transformer 1.15.0.
1 October 2026
Known gapRepeat-run test against two general modelsBoth
Thirty runs per product, set beside gpt-5-mini and gemini-3-flash-preview. On capability wording ReLoop.me was not more repeatable than either; the general models overlapped slightly more. The differences were in judgement: ReLoop.me did not echo a CV's self-ratings, and read a posting's seniority from its scope rather than its title. The claim that ReLoop.me is more consistent than general AI is not supported, and is not made. Figures in each product column.
27 September 2026
ChangedCompany and location typed into the Role Intel form are now readRole
Before this, both fields were ignored and the location could be read as the role title. Request builder 4.23.0.
26 September 2026
ChangedPay tables: Role Intel recalibrated, Profile Intel target roles cappedBoth
Role Intel's table was recalibrated against 788 dated external market points, with a provisional Consulting & Advisory family always published as Estimated (salary 3.58). Profile Intel now prices a role marked ready to move into at no more than one rung above the person's current level (salary 2.71).
25 September 2026
ChangedRole Intel picks a pay family from a closed listRole
The model chooses from 25 families. Where none fits, the brief says it is priced on the nearest one and names it. Pay fields are stored empty when the location cannot be anchored. Request builder 4.21.0, renderer 27.9.61.
23 September 2026
AddedRole Intel determinism re-measured, and the pay claim narrowedRole
This section carried a promise since 10 September that its figures would be replaced by numbers rather than description. Four blind repeat runs of one real, already-delivered job description against today’s deployed prompt now replace them. Seven fields of twelve reproduced across all four runs; five moved. The two archetypes in play were the same every time and which of them was dominant split two–two, with the secondary the exact mirror each time — so the rubric shipped on 10 September appears to have settled which types are candidates without settling which one is the answer. One claim on this page has been narrowed as a result. It previously read that Role Intel’s money reproduces and its headline word does not. The pay arithmetic does still reproduce to the euro — but the seniority reading that feeds it moved on one run in four, which on the live table is a 29% swing in the delivered figure on identical input, and the brief actually delivered from this document carried the reading that came up once in four. Method mirrors the Profile Intel re-measurement published the same day: live node code re-fetched, the real user message pulled from execution history straight to disk and never hand-retyped, independent blind completions. Same caveats — one document is not a rate, and the harness is not the production caller.
23 September 2026
Known gapThe language lock can be overridden by the model on an English-jargon-dense CVProfile
A real Romanian CV, dense with English professional terminology (job titles, functional-area names), got a deterministic detected_language="ro" lock at 0.90 confidence and an explicit instruction naming every narrative field the lock covers — and the model wrote the whole brief in English anyway (0.95 confidence, 926 markers across all 181 narrative strings; every field, not one stray sentence). This is not the source-of-truth bug fixed 12 Sept (the lock correctly read the deterministic value, not a model echo) and not the buried- instruction bug fixed 11 Sept (the instruction was unmissable). It is the underlying problem those two fixes narrowed but did not eliminate: the model can still decline to follow an explicit instruction. The G-5 merge guard, built 11 Sept for exactly this failure mode, caught it and held the brief — undelivered, unpublished, no email sent. Working hypothesis for this document specifically: the header and skills lines carry an unusually heavy load of English HR jargon kept as-is in the Romanian original, which may pull the model into an English register despite the lock. Tested offline against the real held document with a revised instruction naming that jargon-density pattern explicitly as vocabulary, not a language signal: two independent runs, both fully Romanian. Prepared as a versioned Build CIA Input patch; not yet deployed. See the open backlog for the current line.
23 September 2026
AddedProfile Intel determinism re-measured on a second documentProfile
The 1 September identical-input study stood alone for three weeks. A second measurement, on a different real, already-delivered document, is now on the page beside it, reproduced offline (no live Tally submission) by reconstructing today's deployed prompt from the live node code and pulling the real user message from n8n execution history. Read together rather than as two separate verdicts: occupational family, geography and the inflation-risk label held stable on both documents; the market-value figure and the coordination-scope label were unstable on both; seniority band, the likely-offer figure and peak direct reports flipped — stable on one document, unstable on the other. That last group is the finding: instability is document-dependent, not a fixed property of a field, which the 1 September study alone could not show. “Measured 1 Sep 2026” is now “Measured 23 Sep 2026.” The 18-character A/B study is untouched, still dated 1 September, not re-run this session.
23 September 2026
Changed“Different vocabularies” now has a definitionRole
One of the seven role types, Translator, required the role to sit between two named groups “with different vocabularies”. That phrase was never defined, and one advert flipped between Translator and Operator across four blind grader runs. The framing we first reached for — whether the second group has to be named — turned out to be the wrong question: the advert in question does name a second group, and both dissenting graders rejected Translator anyway. Their actual objections were that the named partners read as ordinary cross-functional colleagues, and that the deliverable named was a customer-facing product rather than a document. Two groups now count as having different vocabularies only when the posting requires the artifact to be restated to cross between them — a regulatory requirement becoming a test scenario, a legal constraint becoming a product rule. Teams that receive the same artifact in the same language are collaborators. And a conversion artifact must be a document; an experience, a product or a business result is an outcome, not an artifact. Deployed 23 September. This is a prompt change, so it is not yet verified. The predicted effect was written down before deployment — the advert should settle on Operator with no secondary — and repeat grading against a widened set has not yet run. Until it does, the reproducibility figures above stand.
23 September 2026
Known gapA measurement we had taken could not be taken againRole
A queued fix rested on a figure measured in mid-September across roughly twenty-two stored pipeline runs. When we went back to check that figure against a refined definition, only three of those runs still existed — the execution store keeps records for a short window, and nothing in the durable record held the values the figure was built from. The figure is not reproducible and we are not shipping the fix that depended on it. Six fields the engine already computed but discarded — the seat-leverage reading, the scope-adjustment trace, and a new seniority coherence pair — are now written to the durable record on every brief, so the question can be answered from stored data in future. This entry is here because a measurement we cited and can no longer reproduce is exactly the kind of claim this page exists to withdraw.
23 September 2026
ChangedTwo “unrecorded” studies flagged as possibly the same thing — they are notBoth
The Role Intel column flagged a question for whoever maintains this column: is the unsourced sixteen-input reproducibility study named in the 1 September entry below the same study as Role Intel's own sixteen-run archetype test (Builder six times, Operator six times, Fixer four times)? It is not, on two grounds. Role Intel's study is dated 2 September 2026 — a day after this engine's gap entry already recorded its own study as too old to date, which rules out one being a late write-up of the other. And they measured different things: Role Intel's study moved role_archetype, a Role Intel-only field with no Profile Intel equivalent, where this engine's classification vocabulary is profile type, career pattern and the capability ladder. The Profile Intel study stays unsourced and open; the two findings are separate.
23 September 2026
Changedhospitality.RO_bucharest.ic_senior.min tied to Role Intel's valueProfile
A 22 September fix on this engine raised this cell from 450 to 510 to clear an inversion below ic_junior.min (500). Role Intel's own equivalent fix tied ic_junior.min = ic_senior.min = 500 exactly, leaving the two engines ten EUR a month apart on the same cell — flagged as cosmetic and offered as a low-effort follow-up, now actioned. ic_senior.min: 510 → 500, mid 700 and max 1000 unchanged. This is a floor tie, not an inversion, and it now matches Role Intel's live value exactly. Row re-checked at min, mid and max: fully monotonic, zero new inversions anywhere in the table (the eight pre-existing product-family inversions are unchanged and remain open). Shipped as CIA-salary v2.69.
23 September 2026
ChangedA stale version comment corrected — no data changedProfile
The CIA Index Emit node's decorative header comment read v0.2.0. The constants it actually runs on — NODE_VERSION and INDEX_EMIT_VERSION, both checked against the end-of-file marker — were already correctly at 0.3.0 / 0.3. Only the banner line was wrong, and only a human reading the source file would ever have seen it; nothing a brief emits was affected. Corrected to read v0.3.0. No version bump, because the real version was already right.
23 September 2026
Changedelementary.EU_west.ic_senior.min mirrored to the statutory floorProfile
Mirrors what Role Intel reports was approved on its own side. ic_senior.min: 1660 → 1422 — the French minimum wage (SMIC, 1422 EUR/month), the floor already used at ic_junior.min for every EU_west row on this engine. mid 1660 and max 1950 unchanged. Ties ic_senior.min = ic_junior.min = 1422, a floor tie rather than an inversion, the same pattern already used elsewhere in this table (finance_accounting, hospitality). Zero new inversions; blast radius zero — the highest salary_version on any of the 174 delivered briefs swept was still 2.63. Shipped as CIA-salary v2.68.
23 September 2026
ChangedRegional Romanian pay sourced for marketing, not carried over from BucharestProfile
Four Romanian regional geographies in the marketing family — Cluj, Timișoara, Iași, and a catch-all — priced sixty cells (ic_senior through vp; ic_junior untouched) at sourced regional ratios against this engine's own Bucharest anchor: Cluj ×1.20, Timișoara ×0.85, Iași ×0.95, other ×0.70 (lower confidence). Two of the four ratios — Cluj and Iași — read as at or above Bucharest rather than below it, which is not the intuitive direction; reviewed against the sourced data and approved as sourced rather than adjusted to match instinct. These ratios are anchor-independent by construction and were shared with Role Intel so the same multipliers can be applied there if and when it adopts the same Bucharest anchor — that adoption is a separate, not-yet-made decision on Role Intel's side. Zero new inversions. Shipped as CIA-salary v2.67.
23 September 2026
Known gapfinance_accounting.EU_west.ic_senior.min traced, not fixed — staying openBoth
Role Intel's cross-check asked when this engine's ic_senior.min = 2500 was set, ahead of a possible reconciliation. Traced through this engine's own changelog history rather than raw workflow-version archaeology: no change from v2.63 through v2.69 touches ic_senior on this cell, and it already carried its current value before this session's visible history begins. It is a legacy anchor, the same category as this page's other documented 2021-era anchors, not something a recent fix introduced. Unlike the elementary fix above, there is no sourced replacement value for this cell on either engine yet — Role Intel's own figure for it is equally unsourced. Left as is, folded into the shared product-family reconciliation work still open on both sides.
22 September 2026
ChangedSeventeen pay-table cells reconciled against the Profile Intel engineRole
The two engines keep separate pay tables with a common ancestor, and they had drifted. A reconciliation pass moved seventeen cells in the Role Intel table. On thirteen of them the Role Intel value was already the correct one and only the band edges moved. Two larger proposed changes were not taken: one would have raised a senior individual contributor floor above the manager floor in the same column, and one would have left the same Bucharest role priced two-and-a-quarter times apart depending on whether the advert happened to name the city. Both were sent back rather than shipped. The ladder is now checked at the bottom, middle and top of every band rather than the middle alone — the defect that prompted this was invisible to a middle-only check and was live on the other engine.
13 September 2026
AddedFractional and interim engagements are now recordedRole
The title map read “Head of” as a director-level title whether or not the posting said fractional. Across twenty-one stored briefs, five had their band set from the title alone and two of those were fractional roles priced at a full director band. The words fractional, interim, part-time, contractor and freelance appeared nowhere in the pricing logic. They are now detected and recorded. No figure changes. A band cap was considered and rejected: the titled band drives what the employer is likely to offer, and capping it would make that number wrong rather than right.
12 September 2026
ChangedA VP band can no longer be asserted over a seat with no reportsRole
Where a posting described more scope than its title implied, the engine could raise the band by one level. Nothing stopped that raise landing on a VP band even when the engine's own reading of the posting found no people management. Measured across twenty-two stored runs: twelve upward adjustments, none downward, and three director-titled briefs raised to a VP band on a seat with no reports. The raise is now blocked from landing on VP when the seat reads as an individual contributor. Narrow on purpose — every other upward adjustment survives. Forward-only: briefs already published keep the band they were published with.
10 September 2026
ChangedA job ad that describes no work now gets an answer that says soRole
The role-type rules covered two cases: the posting names one clear measure of success, or it names none and two or more candidate types are genuinely in play. There was no rule for the third case — a posting that names a title, a seniority, a company, a tool list and a benefits list, and never describes the work the hire would be responsible for. The evidence standard rules every one of those inadmissible, and the output still requires one of seven values, so the model was left to supply one with nothing permitted to go on. In practice that means the job title, which the same rules forbid. There is now a stated floor. On such a posting the brief says the posting does not describe the work, names the closest type on whatever mandate language does exist, assigns no secondary, and carries the lowest confidence the engine can express. A floor call is a claim about the advert, not about the role. Deployed 10 September and not yet measured; like the change below it, the reproducibility figures above stand until repeat runs replace them.
10 September 2026
Known gapThe engine build that produced a brief cannot be read back from the stored recordBoth
The version string stored with each brief names the renderer, the transformer, the salary table and the index emitter — but not the prompt build that made the classification. Every brief from 7 September onward records the same string across three different prompt builds. This qualifies the entry below it. That entry says the stored classification for every delivered brief is retained and the question is therefore answerable: true of the classification, not of the build that produced it, which can currently be separated only by the time the brief was created. Recorded 10 September 2026. The fix is one line and is not shipped.
10 September 2026
WithdrawnTwenty-nine delivered brief pages have been taken down and no longer resolveBoth
Twenty-nine brief pages delivered during the private beta were withdrawn — twenty Role Intel and nine Profile Intel. Every one of the twenty-nine has been checked and returns 404. If you hold a link to a brief from before the paid beta and it no longer opens, this is why, and it is not a fault at your end. The pages were removed because they were produced by engine versions whose claims this page can no longer stand behind; leaving them reachable would have left unsupported figures in public. Ask at hello@reloop.me and the brief will be re-issued on the current engine at no charge. The identifiers are retained internally so any link can be traced to what it was. One of the nine Profile Intel identifiers is a literal placeholder pattern rather than a generated identifier, and whether a brief was ever delivered under it has not been established — that question is open and is recorded in the Profile Intel backlog above rather than closed out quietly with the rest.
10 September 2026
ChangedThe seven types now carry a written evidence standard, not a bare list of namesBoth
Each type now carries a definition, the evidence necessary for it to apply at all, the evidence sufficient to assign it decisively, and named patterns that resemble the type and are not it. Job titles, seniority words, industry, culture language and tool lists are excluded as evidence by rule. Above the seven sits one test — what would be missing from this organisation if the role were left unfilled — and a stated order of resolution: the type describing what the hire is accountable for is dominant, the type describing the method by which that accountability is discharged is secondary, and a fixed order settles the remainder when a posting names no single measure of success. This is deployed and not yet re-measured. The reproducibility figures above stand until repeat runs replace them — a rubric that closes the gap which plausibly caused the spread is a reason to expect improvement, not a result.
10 September 2026
Known gapThe change above alters some outputs, and the size of the shift is unmeasuredRole
Where a posting’s accountability and its dominant method point to different types, the dominant type may now differ from what the same posting returned before 10 September. The direction is intended — a role accountable for shipping a platform that also translates regulation is a role for shipping a platform — but no corpus has been run, so we cannot say how many briefs it affects. If you hold a brief from before 10 September and wonder whether it would say something different today, the honest answer is that it might. The stored classification for every delivered brief is retained, so this is answerable once repeat runs are done, and it will be answered here.
7 September 2026
Withdrawn“Any inferred seniority forces Estimated” — as stated on 1 SeptemberRole
Seniority resolves four ways. The 1 September change caught two of them and this page recorded the claim as complete. It missed the third: where a job title carries an ambiguous token — lead, manager, principal, staff — the engine deliberately declines to trust the title and takes the level from a model-generated signal instead. Those briefs printed as Calibrated. The test looked at which fallback supplied the level rather than at whether the level came from the title at all, and the model-generated path matched neither string it was looking for. It now tests the basis directly, which has exactly one non-inferred value. More published figures now read Estimated than did before. That is the correct direction and it is what this page already promised. Briefs delivered between 1 and 7 September on an ambiguous title may carry the wrong confidence label; the figure itself is unaffected. Ask and it will be re-issued.
7 September 2026
ChangedThe band a pay figure came from is now recorded with the figureRole
Role family, seniority band and geography were being written empty on every delivered brief — the fields existed and were mapped, but to names three characters different from the ones the engine emits. The effect was that no published figure could be traced back to the table row it came from, on any brief, which made the pay claims on this page unauditable from the stored record. They now populate, alongside the confidence tier and the raw seniority token the lookup used. This does not fix the briefs already delivered, whose stored bands remain empty; it fixes every brief from 7 September onward.
2 September 2026
Withdrawn“A pay figure shown as calibrated is calibrated for that market”Profile
The 1 September withdrawal covered locations the engine could not map at all — those now show no figure. This is the other half, and it is worse, because nothing looks wrong. The pay engine holds distinct bands for Southern Europe, the Nordics and Switzerland, and its own city resolver identifies the location correctly. The classification step cannot emit those bands: the permitted list has ten values and none of them is Southern Europe. So the profile is forced onto a neighbouring band — a real band, with real data, from the wrong region — the figure prints with a range and a gross equivalent, and the brief states it is calibrated. Found on a Rome profile priced on Central and Eastern European bands, with the correct region sitting in the engine's own resolution log. Any brief already delivered for a Southern-European, Nordic or Swiss location carries a figure derived from a band that is not that market's. If you hold one and want it re-issued or removed, ask. A fix is specified and not yet shipped.
2 September 2026
AddedThe Role Intel column is filled inRole
Vocabularies, the nineteen gate rules, measured determinism and the open backlog, all read from the live workflow rather than from notes. Six of the eight outstanding items are now answered. Two are answered with "not established" and stay that way: retention, and whether the generation call ever ran without an explicit temperature — the retained workflow history only reaches back to 1 September 2026, so there is nothing to read. The EU AI Act question is recorded as open rather than inherited from the Profile Intel analysis, because a read of a role is not a read of a person.
2 September 2026
Withdrawn“Deterministic code around two model calls”Both
Stated as shared architecture; it is not shared. Profile Intel runs two model calls. Role Intel runs three — a calibrator, then generation, then the reviewer — and its three run at 0.3, 0.3 and 0.3, where Profile Intel's reviewer runs at 0. A sentence written once to avoid two copies disagreeing had instead made one description cover a system it did not describe.
2 September 2026
Known gapTwo vocabularies are open on the Role Intel sideRole
gap_type has no fixed list at all — two runs of one input produced eight distinct labels with a single overlap. And role_seniority_chip has no runtime validator anywhere in the pipeline, in either product; the Profile Intel side has been observed emitting C-level, which is off-vocabulary, and it reached a pay band. Named here because the Role Intel column now claims a closed vocabulary for other fields, and that claim is only worth something if the exceptions are named beside it.
2 September 2026
AddedMeasured Role Intel determinism, including the part that failsRole
Pay reproduces: identical inputs returned identical figures, one case checked to the euro against hand-recomputed grid arithmetic. The role archetype does not: sixteen runs of byte-identical input returned Builder six times, Operator six times and Fixer four times, and six accidentally duplicated real submissions reproduced the dominant archetype in 3 of 5 pairs and the secondary in 1 of 6. Pinning temperature to 0 made the spread worse. The cause is named — the seven archetypes are given to the model as a bare list with no definitions — and the fix has not been tried.
2 September 2026
ChangedA blocked Role Intel brief now records which rule blocked itRole
A delivered brief has always carried the full serialised gate findings. A blocked one threw, and the throw replaced the output — so the reason vanished exactly when it was needed. On 1 September a real brief was blocked and the stored reason was 77 characters of the tail of one sentence, with every rule id cut away; identifying the rule required reconstructing the arithmetic from the payload. The message is now a single line and the rule ids sit at the end, where the truncation keeps them.
2 September 2026
ChangedThis page now covers both productsBoth
Restructured so Role Intel and Profile Intel sit side by side above the shared engine. The Role Intel column is published empty and dated rather than filled with an unverified summary: it lists the eight things that must be measured before anything is claimed there. Setting the two columns beside each other makes the gap visible, which is the point.
2 September 2026
AddedThe retention promise has a mechanism — and one half of it does notBoth
A scheduled clear of stored CV text and the file reference was built for Profile Intel. It is stated here with the part it does not deliver: the uploaded file itself sits with the form provider, and removing our reference to it is not the same as deleting it there. That step is not yet in place. Saying so is better than letting the promise run ahead of the mechanism a second time.
1 September 2026
Withdrawn“Pay figures are calibrated for the market shown”Profile
Salary bands are held per occupational family and geography. A location that did not resolve to one of the mapped regions fell through to the Central and Eastern European band and printed a real euro figure from it, under a one-line caveat that the region was not calibrated. A caveat above a specific number is not the same as declining to give one — the number is what a reader takes away. From today those profiles show no pay figure at all, and say why. This is forward-only. Briefs delivered before 1 September 2026 for unmapped locations carry a figure derived from a European band that was not calibrated for their market, and it stands on the page as it was published. If you hold one of those briefs and want it re-issued or removed, ask.
1 September 2026
AddedHow much of the delivered corpus predates the temperature fixProfile
Counted against the engine fingerprint stored with each brief: 109 briefs were generated before the fix and 9 after it, with 13 produced too early to carry a fingerprint at all. Roughly five in six briefs delivered to date were produced at the API default temperature of 1.0. An independent count by record date agrees to within one row. This matters twice over. Both determinism studies on this page were run after the fix, so they measure the engine as it is configured now and say nothing about how the earlier briefs would reproduce. And it applies to any downstream use of the corpus, including as evaluation or training material.
1 September 2026
AddedThis pageProfile
Published the vocabularies, the numbered gate rules and the measured determinism status in one place, so a claim on a brief can be checked against a stated definition rather than taken on trust.
1 September 2026
ChangedAI Act citation correctedBoth
Earlier wording cited Article 25 alone. Article 25 is the mechanism that transfers provider obligations to whoever repurposes a system; it is not what makes the system high-risk. The classification route is Annex III point 4(a) — AI used to evaluate candidates — via Article 6(2). Both are now cited, along with the date those obligations actually apply, which the earlier wording omitted and which materially changes what a reader should infer.
1 September 2026
ChangedGate-rule count stated as reported, not as runProfile
Twenty-nine numbered phases execute; fifteen entries are reported in the machine-readable result. Publishing the larger number without that distinction would overstate what the gate demonstrably checks per brief.
1 September 2026
Withdrawn“All classification vocabularies are closed”Profile
The management-tier scale in the experience timeline is specified as a list but not locked, and its seven values do not map cleanly onto the six-rung scale the pay engine uses. Found while investigating a two-band swing in the peak-level reading between two runs of the same document. A fix is specified. The claim comes back when the fix ships and a regression test holds it — narrowed in the meantime to the comparability table above, which names the fields the claim still covers.
1 September 2026
Withdrawn“The same input produces the same output”Profile
Withdrawn on the strength of two controlled studies run today. The first put the same document through the pipeline twice: seniority, family, geography and the pay figures reproduced exactly, but peak direct reports moved from 1 to 4 and the coordination-scope label came back as a different string. The second changed eighteen characters and moved the peak management level two bands, from Director to Manager, along with the length of the claims audit. The claim was made because the pipeline is deterministic code around a language model, and the code is deterministic — but the classification step is not, and the claim did not distinguish between them. Replaced by the measured status above, which names which fields hold and which do not.
1 September 2026
AddedMeasured determinism figures, with the failed predictionProfile
Two runs of an identical document, and an eighteen-character A/B on the same document. The A/B was designed to show a phrase was driving the seniority band; it showed the opposite — the band held and the management tier moved instead. Recorded as it came out.
1 September 2026
Known gapAn earlier study is missing from this logProfile
A controlled reproducibility study of sixteen identical inputs was run before the two above and found non-deterministic classification. It is not recorded here because we cannot yet state its date or name the specific fields it moved, and this page does not carry claims it cannot source. It will be added when both are established. We are naming the gap rather than leaving it out, because a changelog that quietly omits an earlier finding is worth less than one that says where it is incomplete.
28 August 2026
ChangedGeneration temperature pinned to 0.3Profile
Today the generation call runs at temperature 0.3 and the reviewer at 0. Before 28 August 2026 the generation call set no temperature at all and ran at the API default of 1.0 — the only model call without an explicit setting, while the reviewer beside it already sat at 0. It writes the whole brief, structured fields included. Briefs produced before this date were generated at a materially higher temperature than briefs produced after it, and are correspondingly less likely to reproduce. This is the largest known determinism change in the system, and it means briefs from either side of 28 August 2026 are not directly comparable artefacts. The engine fingerprint recorded with each brief is what distinguishes them.