From equalizer
Use when querying or analyzing Equalizer platform data — SPV lookups, stratification views, portfolio analytics, transaction analysis, or any ABF data questions
How this skill is triggered — by the user, by Claude, or both
Slash command
/equalizer:equalizer-analyticsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Query and analyze ABF transaction data from the Equalizer platform. Operates in two modes: Single-Query (specific KPI questions) and Comprehensive Analysis (full transaction reports).
Query and analyze ABF transaction data from the Equalizer platform. Operates in two modes: Single-Query (specific KPI questions) and Comprehensive Analysis (full transaction reports).
Users are ABF and structured finance professionals — portfolio managers, credit analysts, structurers. They understand DPD buckets, delinquency migration, roll rates, vintage/cohort analysis, SMM, CPR, WA FICO, WA APR, concentration risk, and static vs. dynamic pool analysis.
Never explain basic concepts. Assume full fluency.
Don't: "The loss vintage data tracks cumulative defaulted principal by origination month and the term at which defaults occurred." Do: "The 2023-05 cohort shows a sharp elbow at term 8, jumping from 0.58% to 2.87%."
Every sentence either presents data or interprets it. No preamble, no filler.
Multiple tenants are configured as separate MCP server entries. Each tenant's tools are prefixed with the plugin and server name (e.g., mcp__plugin_equalizer_equalizer-staging__list_spvs).
Before any tool call:
A stratification view defines:
When a view has filters on its metrics, those filters change the meaning. "Outstanding Balance where Days In Delay > 0" is delinquent outstanding balance — always communicate this distinction.
When a view has bucketed dimensions (clusters), use the bucket labels in your response (e.g., "the 30-60 day bucket" rather than raw numbers).
Comprehensive Analysis Mode triggers when the user requests broad, multi-dimensional analysis — any request that does not target a single specific KPI but asks for a holistic or multi-faceted view of the transaction. Use intent, not keyword matching.
Single-Query Mode is the default for all other queries.
Find SPV: Call list_spvs(name="...") to locate the SPV by name. Results are capped at 15 — if total_matches > returned, ask the user to refine.
Discover views: Call list_template_analytics(spv_id="...") for curated analytics, or list_spv_views(spv_id="...") for assigned views. Match the user's query intent against the display_name, description, aggregations, and group_by fields of the returned views.
Disambiguate: If multiple views match, attempt to resolve using: a. Exact metric name match — user's term matches a metric name exactly b. Filter match — user's intent implies a filter only one view has (e.g., "delinquent balance" → view filtered by "Days In Delay > 0") c. Dimension match — user mentions a segmentation only one view provides (e.g., "by vintage")
If unresolvable, present the options:
I found multiple views relevant to [Topic]:
- [View A] — [metric(s)] [filtered by X if applicable], segmented by [dimension(s)]
- [View B] — [metric(s)] [filtered by Y if applicable], segmented by [dimension(s)]
Which one would you like to explore?
Filter (optional): If the user requests filtering:
a. Call get_filterable_columns(strat_view_id="...", spv_id="...")
b. Match the user's filter intent to a column by display_name
c. Pass as table_filters in the data retrieval call
Supported operators by data type:
string: =, !=, in, not in, is null, is not nullamount/number/percentage/integer/days: all operators (=, !=, >, <, >=, <=, in, not in, range, is null, is not null)date/datetime: comparison operators + rangeboolean: =, !=, is null, is not nullRetrieve data: Call get_analytics_data(strat_view_id="...", spv_id="...") for curated views, or get_strat_view_data(strat_view_id="...", spv_id="...") for assigned views. Both return compact CSV format.
Source link: Call get_strat_url(strat_view_id="...", spv_id="...") to generate a frontend URL. Append as: View Table
Start directly with the insight. No preamble.
| Query Type | Focus On |
|---|---|
| Trend ("how has X changed?") | Delta between first and last visible rows |
| Status ("what is X?") | Latest row value or total from stats |
| Segmentation ("where is X strongest?") | Segment with highest/lowest value |
| Bucket ("what about 90+ days?") | Matching cluster label in the dimension |
Call list_template_analytics(spv_id="...") and list_spv_views(spv_id="..."). Group results by domain based on view names, descriptions, and metrics:
| Domain | Match on |
|---|---|
| Portfolio Overview | outstanding balance, loan count, weighted average metrics |
| Credit Performance | delinquency, DPD, days past due, days in delay |
| Loss Vintage Analysis | default, loss, charge-off, write-off |
| Prepayment Vintage Analysis | prepayment, CPR, SMM, early repayment |
| Concentration | geographic, state, FICO distribution, concentration |
STOP. Do not retrieve data yet. Present what the report will cover:
I've identified the following analysis domains for this Transaction:
- Portfolio Overview — [N] views found
- Credit Performance — [N] views found
- Loss Vintage Analysis — [N] views found
- Prepayment Vintage Analysis — [N] views found
- Geographic & FICO Concentration — [N] views found
Would you like the full report, or focus on specific sections?
If a domain has no matching views, flag it as unavailable.
Deliver one block at a time. After each block, ask: continue, skip, or jump to Key Findings.
| Block | Sections |
|---|---|
| Block 1 | Executive Summary & Portfolio Overview |
| Block 2 | Credit Performance Analysis |
| Block 3 | Loss Vintage Analysis |
| Block 4 | Prepayment Vintage Analysis |
| Block 5 | Geographic & FICO Concentration |
| Block 6 | Key Findings & Risk Assessment (synthesizes all prior) |
For each block:
Key Findings & Risk Assessment only references data from delivered blocks. If sections were skipped, state this explicitly.
Portfolio: Growth trajectory, ramp-up rate, amortization rate. Summarize WA characteristics (FICO, APR, term, loan size) and note drift over time.
Credit: Calculate DQ as % of outstanding balance per bucket per reporting date. Identify trend direction (stable, rising, accelerating, volatile). Flag any bucket with >15% MoM growth. Note if delinquent loans have lower FICO / higher APR (negative selection).
Losses: Identify the term at which defaults accelerate (the "elbow"). Cross-reference defaults by segment. Flag any segment where default share exceeds portfolio share.
Prepayment: Cross-reference prepayment by FICO to detect adverse selection. Compute derived metrics:
1 - (1 - CumPrepay)^(1/Term)1 - (1 - SMM)^12Concentration: Flag single-name or single-geography concentration >10%. Identify dominant credit band in FICO distribution.
Do NOT reproduce full data tables. Summarize inline (3-5 key figures), highlight outliers and inflection points, link to the platform for full datasets. Tables allowed only if <=5 rows and <=5 columns.
When comparing SPVs:
list_spvs() to find the comparison targetCRITICAL: Never use one SPV's strat_view_id to query another SPV's data.
| Metric | Formula | Notes |
|---|---|---|
| Monthly SMM | 1 - (1 - CumPrepay)^(1/Term) | From cumulative prepayment at given term |
| Annualized CPR | 1 - (1 - SMM)^12 | Annualizes monthly prepayment speed |
| MoM Change | (Current - Prior) / Prior | Month-over-month delta as percentage |
| Concentration Drift | Share_t+n - Share_t | Projected share change in bps |
| Delinquency Rate | DQ Balance / Total Outstanding Balance | Per DPD bucket per reporting date |
| Default Share vs Portfolio Share | Segment Default % / Segment Portfolio % | Ratio > 1.0 = over-representation |
Always show derived metrics alongside raw inputs so the user can verify.
npx claudepluginhub eltonmeh/equalizer-plugin --plugin equalizer-pluginGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.