Skip to content

File-review rubrics

A file-review rubric is the structured checklist a compliance reviewer scores against when sampling an AR’s customer files. Each rubric maps to one regulatory permission scope: MCOB for residential mortgage broking, ICOBS for general insurance broking, CONC for consumer credit broking. A fourth, vertical-agnostic IAR rubric is used whenever the AR under review is an Introducer Appointed Representative.

The demo ships the canonical set in lib/rubrics.ts. In production these seed the database; principal-admin can override per-tenant in a later release.

The right rubric is the one whose scope matches the AR’s appointment. An IAR may not give regulated advice, may not arrange, and may not deal. Reviewing an IAR file against MCOB suitability or ICOBS demands-and-needs would test obligations the IAR is not subject to and would miss the obligations the IAR is subject to (status disclosure, scope adherence, hand-off accuracy).

The product picks the rubric in getRubric(code, arType):

export function getRubric(code: RubricCode, arType: ArType = "AR"): RubricItem[] {
if (arType === "IAR") return IAR_ITEMS;
return RUBRICS[code];
}

The file-review surface reads ar.type from the AR record and renders the IAR rubric without further config. Reviewers see an “introducer scope” badge in the header and a one-line explanation that suitability and affordability items have been filtered out.

This means a single principal firm can supervise a mixed network — full ARs reviewed against MCOB, IARs reviewed against IAR — or an entirely IAR network (e.g. an estate-agent referral network introducing to a mortgage principal) reviewed entirely against the IAR rubric.

See also: Case-file contents for what the reviewer is looking at when they score each item.

lib/rubrics.ts
export interface RubricItem {
/** Handbook reference, e.g. "MCOB 4.7A.2R". */
code: string;
/** Plain-language descriptor. */
label: string;
/** Section grouping (e.g. "Suitability", "Disclosure"). */
section: string;
}
export type RubricCode = "MCOB" | "ICOBS" | "CONC";
export const RUBRICS: Record<RubricCode, RubricItem[]>;

A FileReviewFinding references an item by itemCode, denormalises the itemLabel for audit immutability, and records the reviewer’s outcome (pass, advisory, fail, n/a), evidence, and remediation. See Data shapes.

score (0-100) is the mean of non-n/a outcomes:

OutcomeNumeric
pass1.0
advisory0.7
fail0.0
n/aexcluded

score = 100 * mean(applicable outcomes).

export function getRubric(code: RubricCode): RubricItem[];
export function getRubricSections(code: RubricCode): string[];

getRubricSections returns sections in their first-seen order, which is the order the workspace UI groups items.

Used by Heritage Mortgage Network in the demo.

CodeLabel
MCOB 4.7A.2Customer’s needs and circumstances were assessed
MCOB 4.7A.5Recommendation is suitable for the customer
MCOB 4.7A.6Suitability rationale is documented
CodeLabel
MCOB 11.6.2Income and committed expenditure verified
MCOB 11.6.5Stress test applied for interest rate increases
MCOB 11.6.18Interest-only repayment strategy evidenced
CodeLabel
MCOB 5.5.1ESIS issued before customer commitment
MCOB 5.6.6ESIS contains required pre-contract information
MCOB 5.6.16Cooling-off period notice included
CodeLabel
MCOB 4.4A.1Broker fee disclosed before customer commitment
MCOB 4.4A.4Procuration fee structure declared
CodeLabel
FG21/1Vulnerability indicators considered and recorded
CodeLabel
PRIN 2AConsumer Duty outcome assessment captured

Used by Crown GI Collective in the demo.

CodeLabel
ICOBS 5.2.2Customer demands and needs identified
ICOBS 5.2.3Statement of demands and needs documented
CodeLabel
ICOBS 5.3.1Personal recommendation explained
CodeLabel
ICOBS 6.1.5Insurance Product Information Document provided
ICOBS 6.4.1Status disclosure (broker vs intermediary)
ICOBS 6.4.4Remuneration disclosure (commission)
CodeLabel
PROD 4.5Fair value assessment for the distribution arrangement
PROD 4.5.6Premium-to-cover ratio appropriate for target market
CodeLabel
PRIN 2A.1Consumer understanding outcome documented
CodeLabel
FG21/1Vulnerability indicators captured during sale
CodeLabel
ICOBS 8.1.1Claims handling expectations explained at sale

Used by Pinpoint Credit Network in the demo.

CodeLabel
CONC 4.2.5Adequate explanations given to enable informed decision
CONC 4.2.7Customer’s understanding probed before agreement
CONC 4.2.8Adverse consequences of payment difficulties explained
CodeLabel
CONC 5.2A.4Creditworthiness assessment carried out before granting credit
CONC 5.2A.10Sources of information for the assessment recorded
CONC 5.2A.20Customer-specific affordability assessment performed
CodeLabel
CONC 4.2.15Pre-contract credit information document provided
CONC 4.4.2Total amount payable and APR disclosed
CodeLabel
CONC 4.4.4Broker fee disclosed and consented to
CONC 4.5.3Commission disclosure adequate
CodeLabel
FG21/1Vulnerability indicators captured in the customer file
CodeLabel
PRIN 2A.4Consumer support outcome recorded

Used whenever the AR under review has type: "IAR", regardless of whether the principal firm holds MCOB, ICOBS, or CONC permissions. Sources: SUP 12.2 (IAR scope), SUP 12.5 (written-contract scope), PRIN 7 (clear, fair and not misleading), PRIN 2A (Consumer Duty at point of introduction), FG21/1 (vulnerability identification at first contact).

CodeLabel
SUP 12.2.2Introduction was within the scope of the IAR appointment
SUP 12.5.5Customer informed they are dealing with an introducer, not the principal
PRIN 7Information about the principal’s product was clear, fair, and not misleading
CodeLabel
SUP 12.5.6Status disclosure (regulated via the principal) provided to customer
DISP 1.2Complaints route to the principal explained
CONC 4.5 / ICOBS 4 / MCOB 4.4AAny commission or referral fee disclosed before introduction

The failure mode for IARs. An IAR who advises, recommends, or arranges has stepped outside the scope of its appointment, which is itself a SUP 15-notifiable issue.

CodeLabel
SUP 12.2.10No regulated advice given (no recommendation, no comparison, no opinion on suitability)
SUP 12.2.11No arranging activity carried out (no application completion, no submission)
SUP 12.2.12Only the principal’s approved promotional material was used
CodeLabel
PRIN 2ACustomer information collected was accurate and complete at hand-off
FG21/1Vulnerability indicators flagged to the principal at hand-off
SYSC 9Introduction recorded with timestamp, customer consent, and product context

Per-tenant overrides (production, planned)

Section titled “Per-tenant overrides (production, planned)”

In production, principal-admin can:

  1. Add tenant-specific items (e.g. an internal anti-bribery checklist alongside the regulatory items).
  2. Mark canonical items as inapplicable for a specific permission profile (e.g. an IAR permission scope that does not advise).
  3. Edit label text. The code is immutable; reviewers always reference the same handbook citation.

Overrides are versioned. A file review references the rubric version it was scored against, so a change to the rubric does not retroactively alter prior reviews. The annual-review packet shows the rubric version at the time of each review.