How listings are selected & ranked
Every filter and every score applied to a listing, published in full. A ranking you cannot inspect is a ranking you have to trust.
The selection filter
To be listed, a strategy must clear a set of checks including a minimum live return. Default thresholds:
| Origin | Minimum live ROI |
|---|---|
| Native (built on Stretus) | 5% |
| Remote (external signals) | 10% |
Strategies that performed worse do not appear. The listing set is a survivorship-filtered selection, so its aggregate performance is better than the population of strategies actually built on this platform.
This is not hidden and it is not an accident, a quality filter is a reasonable thing to have. But disclosing the results without disclosing the selection rule would let you infer that listings are representative, and they are not.
The full eligibility rule set
Evaluated at publish time. All must pass.
| Check | Default | Can it be disabled? |
|---|---|---|
| Ownership, you own the strategy | Always | No. Never |
| Status gate, the strategy is deployed live | live | Yes, configurable |
| Minimum days live | 7 days | Yes, configurable |
| Minimum live return | 5% native / 10% remote | Yes, configurable |
| Research Analyst gate, non-crypto requires the RA role | Enabled | Yes, configurable |
Rules are resolved per tenant and per origin, with a wildcard fallback and then these defaults. A failing publish returns every unmet requirement with your current value and the required value, for example "minimum days live: 3, required 7".
The bypass switch
A global kill-switch (MARKETPLACE_PUBLISH_RULES_BYPASS) supersedes the per-tenant master switch.
When it is on, every configurable check is skipped for every tenant, including the Research
Analyst gate. And publishing requires only the integrity checks: the strategy exists and you own it.
Its own documentation states the default should be false. The code default is true, and no
deployment manifest sets it. On any environment that does not explicitly set it, including
demonstration environments, a user with no registration can publish an Indian equity strategy.
What this means for you as a reader: the only check you can rely on unconditionally is ownership. Do not treat a successful publish as evidence that you were permitted to publish.
What this means as a finding: flipping the default to false and moving the RA gate out of the
bypassable block, so it sits beside the ownership check as an always-enforced integrity check, is a
P0 item. Until then, this documentation cannot honestly promise the gate.
Earlier documentation said "Ownership and the RA gate are the checks you can always rely on." That was true of the intent and false of the code. This paragraph replaces it.
Seven days is not a track record
The default minimum is seven days live. Seven days of live trading through one market condition tells you very little about a strategy's behaviour. Read the days-live figure on a listing, not just its return.
Paper-sourced metrics
A configuration flag (MARKETPLACE_PAPER_PERFORMANCE_ENABLED) permits publishing from a paper
deployment and sources listing metrics from simulated performance rather than live.
The flag's own documentation says "Production must keep this false." Its code default is true, and
it is explicitly set to true on the deployed demonstration and development environments.
When it is on, simulated results appear in the same ROI, drawdown, Sharpe and health-score fields as live results, and the card carries no Live/Paper indicator at all. There is no visual distinction.
As a reader: on a non-production environment, treat listed performance as possibly simulated. As a finding: setting the flag false in production, and adding an unmissable SIMULATED badge wherever it remains on, is a P0 item.
The health score
A 0-100 composite. The formula, published here for the first time:
Health = (0.35 * RC) + (0.25 * RQ) + (0.20 * CS) + (0.10 * ER) + (0.10 * PD)
| Weight | Component | Computed as | Default when absent |
|---|---|---|---|
| 0.35 | RC, Risk control | clamp(100 - min(max_drawdown, 100), 0, 100) | Drawdown 40 |
| 0.25 | RQ, Return quality | clamp((sharpe / 3.5) × 100, 0, 100) | Sharpe 1.2 |
| 0.20 | CS, Consistency | clamp(win_rate, 0, 100) | Win rate 50 |
| 0.10 | ER, Engagement / trade density | clamp(55 + min(35, (trades/days) × 2), 0, 100) | |
| 0.10 | PD, Profile discipline | clamp(100 - abs(return) × 0.4 - volatility × 0.35, 0, 100) | Vol 25, return 10 |
Three things the formula tells you that the number does not
Drawdown dominates. At 0.35, risk control is the largest single weight. A listing with a great return and a deep drawdown scores worse than the return alone suggests, deliberately.
The ER component has a floor of 55. Any strategy with real trading activity earns at least 5.5
points from it. That is why zero is a safe sentinel for "unrated": a genuinely active strategy can
never score 0.
PD penalises large returns. 100 - abs(return) × 0.4 - volatility × 0.35 reduces the score as
absolute return grows. That is intentional, a very large return on a short window usually means high
volatility, but it means health score and return are not monotonically related, and a high-return
listing can carry a mid-tier health score for a structural reason rather than a flaw.
Zero means unrated
A strategy with no live trading activity scores 0, explicitly, rather than falling through to the ~53.8 that the neutral defaults would produce. Without that guard an untraded strategy would present as mid-tier.
Earlier docs described a health-score label "Unrated" for a score of 0. No such label exists in the interface. The rendering is a two-branch check: 85 or above is Excellent, 70 or above is Healthy, and anything lower is At Risk.
So a brand-new listing with no trades, scoring 0, is labelled At Risk. Not "Unrated". The score is honest; the label is misleading, and reading the number rather than the adjective is the safer habit.
Read the number, not the adjective
An adjective attached to an investment product does work the number does not: "Excellent" reads as an endorsement. Health score 87/100 says the same thing without the endorsement, and now that the formula is published above, you can see exactly what produced it.
Risk tier
Low / Medium / High, derived from the listing's live drawdown profile. A description of observed behaviour, not a suitability judgement.
Ranking and sorting
| Sort | Ranks by |
|---|---|
| Health score (default) | The composite above |
| Top ROI | Past return over the selected window |
| Most deployed | Count of deployments |
| Recently updated | Last update time |
The default sort was called Recommended and one browse tab was Low Risk Picks. Both have been renamed, to Health score and Lowest drawdown.
The mechanic was always a health-score ranking, which is neutral in substance. The names were advisory: "Recommended" is the platform speaking in the first person about which securities strategies you should consider, and "Picks" is stronger still.
Cohort-relative ranking
Some rankings and badges are computed relative to what is currently on screen. "Highest 90-day return (this view)" changes as you filter. A superlative whose reference set you cannot see is not a superlative, which is why badges are now named after the metric they measure. See Ratings & badges.
Featured and Verified
Some listings carry a Verified marker and appear in featured slots. This is platform curation, not self-serve. You cannot mark your own strategy verified.
Verified confirms identity and listing integrity. It is not an assessment of the strategy's merit or its suitability for anyone. Featuring is editorial placement, not a judgement of quality.
Reading a listing sceptically
A short checklist that uses everything above:
| Ask | Where to look |
|---|---|
| How many days live? | Seven is the floor and seven is nothing |
| How many trades? | A high return on few trades is noise |
| Is this live or simulated? | No card indicator. Check the environment |
| What is the drawdown, in money on my allocation? | The number that decides whether you can hold it |
| What produced the health score? | The formula above: is it drawdown or return quality? |
| Is the badge a threshold or cohort-relative? | Ratings & badges |
| What does the author say in the description? | And is any of it a performance claim? |