What is an Evidence Packet?
An Evidence Packet is a self-contained compliance audit bundle for a single instrument. It carries the determination, every screen with its calculation, the source filings and XBRL tags each number came from, a confidence breakdown, and stability metrics — everything needed to reproduce and defend a screening decision. This is what turns a screening result into a defensible compliance decision. ETF issuers, advisors, and fund managers use Evidence Packets to:Document for Shariah boards
Show the exact filings, tags, and ratios behind each verdict.
Satisfy audits
Reproduce any determination from its filing set and methodology version.
Build client reports
Pull structured numerator/denominator data straight into reports.
Track threshold proximity
Watch how close a holding sits to flipping over time.
Evidence is available only after a stock has been analysed. While
determination.status is pending, GET /instruments/{symbol}/evidence returns 404.Fetching a packet
Structure
Field reference
methodology
The exact ruleset, as separate id (aaoifi-ss21) and version (2026.1) fields, plus a human-readable name. Combined, this is the aaoifi-ss21@2026.1 reference you’ll also see in meta.methodology. See Methodology versioning.
determination
The verdict — status, confidence, machine-readable reason_codes, and purification (required plus the percentage of dividends to purify).
screens[]
One entry per screen, keyed by name: business_activity, debt_to_market_cap, cash_to_market_cap, or prohibited_revenue. Every entry reports result: "pass" | "fail", and then carries one of two payloads:
- Business-activity screen
- Financial-ratio screens
Carries a
detail object — primary_activities, prohibited_activities, activity_compliance (permissible or non-permissible), and concerns.sources[]
The provenance for each screen — what makes a packet reproducible. Every source ties the numbers back to a filing:
confidence_detail
How the confidence score was built: the base_confidence it started from, the extraction_strategies_used, any fallbacks_used, and each penalty or boost (type, impact, reason) applied along the way.
stability
The full stability signal — quarters_compliant, quarters_total, flip_rate, the closest_threshold it’s nearest to breaching (one of the four screen names, e.g. prohibited_revenue, with its current_distance and trend), a stability_rating, and stability_drivers. See Stability metrics.

