Best used with an AI agent

40+ live apps, open data APIs, MCP servers, and 200+ guides - more than anyone wants to click through. Point your AI here and it reads the whole map and does the work: finds the tool, pulls the data, runs the analysis, and hands you the links.

Here for the open-source code? Your agent finds the right repo for you - and can even clone and deploy it.

Prefer to explore on your own? Go right ahead.

Paste this to Claude Code, Codex, or any AI agent:
Go to tigzig.com and read tigzig.com/llms.txt. It is a practitioner toolkit - 40+ analytics apps, open no-auth data APIs, MCP servers, open-source repos (github.com/amararun), and 200+ build guides. Help me [your task]. Surface the exact links; where there is an API or MCP, call it directly; and if I want to self-host, find the repo and help me deploy it.

Dynamic Scoring

Rank funds by a custom weighted blend of returns and risk metrics.

Source data: AMFI daily NAV (17,900+ schemes) + Nifty benchmark indices · Last updated: 2026-07-02 · Open the MFPRO tool

Overview

Dynamic Scoring lets you rank funds by a weighted combination of any available metrics. You choose which metrics matter, how much weight each gets, and whether higher or lower values are better. The system normalizes all metrics to a common 0-1 scale, applies your weights, and produces a final score from 0 to 100.

This is a fully transparent, configurable scoring system. Every step is shown below so you can reproduce it in Excel if needed.

Step 1: Select Metrics and Weights

From the 15 available metrics (CAGR 1Y/3Y/5Y/10Y, Max DD 1Y/3Y, Sharpe, Sortino, Alpha, Beta, Info Ratio, Up Capture, Down Capture, Tracking Error, Win Rate), enable the ones you want and assign weights. Weights are entered as numbers (e.g. 33, 33, 34) and automatically normalized so they sum to 100%.

Example: 3-metric setup

CAGR 1Y: weight 40 | Sharpe: weight 30 | Alpha: weight 30

Normalized weights: 40/100 = 0.40, 30/100 = 0.30, 30/100 = 0.30

Step 2: Direction - Higher or Lower is Better

Each metric has a default direction. For example, higher CAGR is better (↑ Higher), while higher Max Drawdown means bigger loss so lower is better (↓ Lower). You can toggle this for any metric. The direction affects how the normalized value is oriented:

If direction = "Higher is better": scaled value stays as-is
If direction = "Lower is better": scaled value = 1 - scaled value

This flip ensures that "good" always maps toward 1 and "bad" toward 0, regardless of whether the raw metric is naturally ascending or descending.

Step 3: Normalization (Scaling to 0-1)

Raw metrics have different units and ranges (CAGR in %, Beta around 0-2, Sharpe around -1 to 3). We normalize each metric to a 0-1 scale so they can be compared. Three methods are available:

3a. Min-Max Normalization

scaled = (value - min) / (max - min)

Takes the minimum and maximum values across all funds for that metric, and linearly maps the range to [0, 1]. The fund with the lowest value gets 0, the highest gets 1.

Example: CAGR 1Y for 3 funds

Fund Raw CAGR Scaled (Higher=better)
Fund A8%(8-5)/(15-5) = 0.30
Fund B15%(15-5)/(15-5) = 1.00
Fund C5%(5-5)/(15-5) = 0.00

Trade-off: Simple and intuitive. However, a single outlier (e.g. one fund with 50% CAGR) can compress all other funds into a narrow range near 0, making them hard to distinguish.

3b. Z-Score Normalization

z = (value - mean) / standard deviation
clamped = clip z to [-3, +3]
scaled = (clamped + 3) / 6

Measures how many standard deviations each fund is from the group average. Values beyond ±3 standard deviations are clipped (capped), then the range [-3, +3] is mapped to [0, 1]. The mean maps to 0.5.

Example: Sharpe Ratio for 4 funds

Values: 0.5, 1.0, 1.2, 2.8 | Mean = 1.375, Std Dev = 0.84

Fund Raw Sharpe Z-Score Scaled
Fund A0.50-1.04(-1.04+3)/6 = 0.33
Fund B1.00-0.45(-0.45+3)/6 = 0.43
Fund C1.20-0.21(-0.21+3)/6 = 0.47
Fund D2.80+1.70(1.70+3)/6 = 0.78

Trade-off: Handles outliers well because ±3σ clipping prevents extreme values from dominating. The center of the distribution gets the most spread. However, it assumes roughly symmetric data - works best with 5+ funds.

3c. Percentile Rank

Sort all funds by metric value
scaled = rank position / (number of funds - 1)

Ranks funds from lowest to highest. The bottom fund gets 0, the top gets 1, and others are evenly spaced regardless of how far apart their actual values are.

Example: Alpha for 4 funds

Fund Raw Alpha Rank Scaled (Higher=better)
Fund C-2.0%00/(4-1) = 0.00
Fund A1.5%11/(4-1) = 0.33
Fund B4.0%22/(4-1) = 0.67
Fund D12.0%33/(4-1) = 1.00

Trade-off: Most robust to outliers - a fund with 50% alpha is treated no differently than one with 5%, as long as both are "the best." This also means magnitude differences are lost. Best when you care about relative ranking, not absolute differences.

Note: This Percentile Rank normalization method is the same formula used by the standalone "% Rank" toggle in the returns table. The METRIC_DIRECTION configuration (which defines whether higher or lower is better for each metric) is the single source of truth for direction - both the scoring system and the % Rank column read from it. See the dedicated Percentile Rank tab for full details on how the standalone ranking works.

Step 4: Compute Final Score

After normalizing each metric to 0-1 (with direction flip applied), we compute the weighted average and scale it to 0-100:

For each enabled metric i with weight w_i and scaled value s_i:

normalized_weight_i = w_i / sum(all weights)

raw_score = sum(s_i × normalized_weight_i) / sum(normalized_weight_i for metrics that have data)

final_score = round(raw_score × 100)

The division by applied weights (not total weights) handles the case where a fund is missing data for some metrics. If Fund A has CAGR but no risk metrics (e.g. an index with no benchmark comparison), it is scored only on CAGR using the CAGR weight portion.

Complete Worked Example

Setup: 3 metrics, Min-Max scaling, 3 funds.

Metric Direction Weight Fund A raw Fund B raw Fund C raw
CAGR 1Y ↑ Higher 40 12% 8% 18%
Max DD 1Y ↓ Lower 30 -10% -5% -20%
Sharpe ↑ Higher 30 1.2 0.8 1.5

Min-Max scaling:

Metric Min Max Fund A scaled Fund B scaled Fund C scaled
CAGR 1Y (↑) 8 18 0.40 0.00 1.00
Max DD 1Y (↓) -20 -5 0.67 1.00 0.00
Sharpe (↑) 0.8 1.5 0.57 0.00 1.00

Weighted score (weights normalized: 40+30+30=100):

Fund A = (0.40 × 0.40) + (0.67 × 0.30) + (0.57 × 0.30) = 0.16 + 0.20 + 0.17 = 0.53 → Score: 53
Fund B = (0.00 × 0.40) + (1.00 × 0.30) + (0.00 × 0.30) = 0.00 + 0.30 + 0.00 = 0.30 → Score: 30
Fund C = (1.00 × 0.40) + (0.00 × 0.30) + (1.00 × 0.30) = 0.40 + 0.00 + 0.30 = 0.70 → Score: 70

Fund C scores highest (70) due to best CAGR and Sharpe, despite the worst drawdown. Fund B scores lowest (30) - it had the best drawdown but worst CAGR and Sharpe.

Score Color Coding

Important Notes

Related metrics

More Tools methodology from the MFPRO analytics tool: