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
RevocationNon-registered charity statuses (Revoked, Suspended, Annulled) from CRA T3010 filings.
Match method
Business number (exact)
FINTRAC AMP
EnforcementAdministrative monetary penalties issued by FINTRAC for anti-money-laundering violations.
Match method
Entity name
OSC / Capital Markets Tribunal
EnforcementRegulatory proceedings and enforcement actions from the Ontario Securities Commission.
Match method
Respondent name
Blumbergs Blog
InvestigativeCanadian 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
Business number (exact)
confidence 1.09-digit CRA root or any known BN variant. Definitive.
- 2
Normalized name (exact)
confidence 1.0Lowercased, suffix-stripped match against canonical entity name.
- 3
Alias (exact)
confidence 0.95Known alternative names from the golden entity record.
- 4
Fuzzy token-set
confidence 0.85+Dice coefficient on filtered token sets. Common words (the, canada, association) excluded to prevent false positives.
- 5
Free-text scan
confidence 0.95Canonical 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.
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.