Methodology

How scoring works

TRAIL is a triage system, not an auditor. Grades surface entities that may warrant closer review. They are not conclusions of wrongdoing.

Grade scale

A

90–100

Clean

No credible adverse signals detected across any data source.

B

75–89

Clean

Minor or ambiguous signals; worth monitoring but not escalating.

C

55–74

Flagged

Moderate signals: regulatory warnings, civil disputes, or investigative coverage.

D

35–54

Flagged

Significant signals: fraud allegations, enforcement actions, major penalties.

F

0–34

Alert

Serious signals: criminal charges, convictions, or ongoing investigations.

Data sources

Each scan draws on two tiers of evidence. Regulatory records are the primary input — they are definitive official actions. Media search results are secondary and can only reinforce, not override, regulatory findings.

Tier 1 — Regulatory & investigative records

CRA Revocation

Revocation

Non-registered charity statuses (Revoked, Suspended, Annulled) from CRA T3010 filings.

Match method

Business number (exact)

FINTRAC AMP

Enforcement

Administrative monetary penalties issued by FINTRAC for anti-money-laundering violations.

Match method

Entity name

OSC / Capital Markets Tribunal

Enforcement

Regulatory proceedings and enforcement actions from the Ontario Securities Commission.

Match method

Respondent name

Blumbergs Blog

Investigative

Canadian charity law investigative reporting — sector-specific high-signal source.

Match method

Name scan in post text

Tier 2 — Adverse media search

Perplexity web search

Three queries per entity against 12 trusted domains (CBC, Globe and Mail, National Post, RCMP, justice.gc.ca, OSFI, CRTC, Competition Bureau, Auditor General, Reddit). Results from the past 12 months only. Up to 4 results per query.

Query 1

"[name]" fraud charges criminal investigation Canada

Query 2

"[name]" regulatory penalty enforcement action Canada

Query 3

"[name]" site:reddit.com Canada grant funding

Signal weighting

Regulatory records anchor a score floor — the grade cannot be higher than the floor set by the most severe record present. Media search results can push the score down further, but cannot override a regulatory floor upward.

Signal

Score ceiling

Grade floor

CRA Revoked / Annulled

≤ 40

D

CRA Suspended

≤ 55

C

FINTRAC AMP ≥ $500K

≤ 30

F

FINTRAC AMP $50K – $500K

≤ 45

D

FINTRAC AMP < $50K

≤ 60

C

OSC / tribunal proceeding

≤ 60

C

Blumbergs investigative post

≤ 75

B

Fuzzy / possible match

70% of above

Reduced

Media — criminal charges

≤ 54

D–F

Media — regulatory fine

≤ 74

C–D

Media — op-ed / allegation

Minor signal only

No signals

90–100

A

Entity matching

Regulatory records from scraped sources don’t always name entities the same way federal grant data does. TRAIL resolves this through a cascading match strategy:

  1. 1

    Business number (exact)

    confidence 1.0

    9-digit CRA root or any known BN variant. Definitive.

  2. 2

    Normalized name (exact)

    confidence 1.0

    Lowercased, suffix-stripped match against canonical entity name.

  3. 3

    Alias (exact)

    confidence 0.95

    Known alternative names from the golden entity record.

  4. 4

    Fuzzy token-set

    confidence 0.85+

    Dice coefficient on filtered token sets. Common words (the, canada, association) excluded to prevent false positives.

  5. 5

    Free-text scan

    confidence 0.95

    Canonical name substring match in narrative sources (Blumbergs blog posts).

Fuzzy matches are flagged as “possible match” on entity pages so reviewers can see why a record was surfaced and judge it independently.

AI grading model

Once evidence is assembled, an LLM grades the entity. The model receives regulatory records and media results in two clearly labelled sections and is instructed to treat regulatory records as the authoritative input.

Primary modelmoonshotai/kimi-k2.6
Fallback modelgoogle/gemini-flash-3.0
RoutingOpenRouter (fallback)

The model is instructed to base its assessment only on provided evidence, not training knowledge. When regulatory records and media results conflict, regulatory records take precedence. The model never states a conclusion as fact.

Limitations

  • Regulatory source crawls run on-demand, not continuously. An enforcement action filed after the last crawl will not appear until the next run.
  • Adverse media search covers the past 12 months only. Older incidents require manual review.
  • Name-based matching (fuzzy) carries false-positive risk, particularly for common names. Possible-match records are flagged explicitly.
  • TRAIL covers federal grants and Alberta provincial grants. Other provincial funding, contracts, and procurement are not yet included.
  • A grade of A does not mean an entity is free of problems — it means no signals were found in the sources TRAIL monitors.

Federal spending data from open.canada.ca (2006–2025). CRA charity data from T3010 filings. Alberta data from open.alberta.ca (FY2020–2026). Regulatory enforcement data from FINTRAC, OSC / Capital Markets Tribunal, and CRA public records.