{"schema_version":"1.1.0","criteria_version":"daily-ranking-2026-09-24.5","url":"https://pruviq.com/data/ranking-criteria.json","scope":"Existing daily ranking publication rules; research status is a strategy lifecycle record, not a verdict on the ranked configuration or permission to trade.","source":["backend/api/main.py::_get_daily_rankings_sync","backend/scripts/daily_strategy_ranking.py","src/content/strategies/*.md#status","backend/api/ranking_contract.py::research_label"],"order":["profit_factor descending","win_rate descending"],"identity":["strategy","direction","timeframe","sl_pct","tp_pct","max_bars"],"minimum_trades":{"1d":10,"default":30},"wf_exclusions":[["mean-reversion","short","4H"],["mean-reversion","short","6H"],["rsi-divergence","long","4H"]],"weekly":"Mean capped PF (20 maximum per contributing configuration/day) and win rate across available daily entries with at least 30 trades over the last seven calendar days, excluding the same WF failures. Identical configurations contribute at most once per day. Other metrics describe the most recent contributing entry; this is not a single simulation window.","rc_scope":"Published research lifecycle only: 0=verified record, 1=retired record, 2=conditional/testing/shelved/live/unrated. rc is not a new performance test or a live execution approval; the catalog label live alone does not prove a verification battery passed.","research_status_definitions":{"conditional":{"rc":2,"label":{"en":"Conditional — details","ko":"조건부 — 상세 보기"},"reason":{"en":"Do not recommend execution from rank alone: the published research verdict is conditional. The recorded conditions must be examined for this configuration.","ko":"공개 연구 판정이 조건부이므로 순위만으로 실행을 추천하지 않습니다. 이 설정에 기록된 조건이 맞는지 확인해야 합니다."}},"live":{"rc":2,"label":{"en":"Live catalog record — details","ko":"운용 분류 기록 — 상세 보기"},"reason":{"en":"The research catalog labels this strategy live. That label alone establishes neither real-money execution nor verification of this ranked configuration, so it is insufficient for an execution recommendation.","ko":"연구 목록은 이 전략을 live로 분류합니다. 이 분류만으로 실자금 실행이나 이 랭킹 설정의 검증을 확인할 수 없으므로 실행 추천 근거로는 부족합니다."}},"verified":{"rc":0,"label":{"en":"Verified research — details","ko":"검증 기록 — 상세 보기"},"reason":{"en":"Consider this strategy for further testing because its published research record is verified. This ranking's configuration still needs its own verification; rank is not permission to execute.","ko":"공개 연구 기록이 검증 상태이므로 추가 시험 후보로 검토할 수 있습니다. 이 랭킹의 설정은 별도 검증이 필요하며, 순위는 실행 승인이 아닙니다."}},"killed":{"rc":1,"label":{"en":"⛔ Retired — why?","ko":"⛔ 은퇴 — 이유 보기"},"reason":{"en":"Do not recommend execution on the strength of this rank: the published research record is retired. Read the findings before considering another test.","ko":"이 순위를 근거로 실행을 추천하지 않습니다. 공개 연구 기록은 은퇴 상태이며, 다시 시험하려면 먼저 실패 근거를 읽어야 합니다."}},"shelved":{"rc":2,"label":{"en":"⚠️ Shelved — why?","ko":"⚠️ 보류됨 — 이유 보기"},"reason":{"en":"Do not recommend execution on the strength of this rank: the published research record is shelved. Shelving does not by itself mean a performance test failed; read the recorded reason.","ko":"이 순위를 근거로 실행을 추천하지 않습니다. 공개 연구 기록은 보류 상태입니다. 보류만으로 성과 시험 실패를 뜻하지는 않으므로 기록된 이유를 확인하세요."}},"testing":{"rc":2,"label":{"en":"Testing — details","ko":"시험 중 — 상세 보기"},"reason":{"en":"There is insufficient evidence here to recommend execution: the published research record is still testing. A high rank does not complete that verification.","ko":"공개 연구 기록은 아직 시험 중이므로 여기의 근거만으로 실행을 추천할 수 없습니다. 높은 순위가 검증 완료를 뜻하지 않습니다."}},"unrated":{"rc":2,"label":{"en":"Unrated — criteria","ko":"판정 기록 없음 — 기준 보기"},"reason":{"en":"There is insufficient evidence here to recommend execution: either no strategy lifecycle record is published, or the published record was measured under different conditions than this configuration (see research_record). Rank alone is not a research verdict.","ko":"여기의 근거만으로 실행을 추천할 수 없습니다. 연구 목록에 이 전략의 판정 기록이 없거나, 기록이 이 설정과 다른 조건에서 측정되었습니다(research_record 참고). 순위만으로 연구 판정을 대신할 수 없습니다."}}},"configuration_identity_version":"ranking-config-v1","low_sample_trades":{"1d":20,"default":100},"research_label":{"rule":"Q-B103 rule C. Resolve the research record: the research_record_aliases entry for (strategy, direction) if present, otherwise the record named by the strategy id. Positive statuses (verified, conditional, live, testing) are attached only when the ranked configuration matches the record's published measurement conditions — direction, timeframe, SL %, TP % and universe size (group top30/top50/top100 = 30/50/100 coins, btc = 1); otherwise the row is unrated. Retirement statuses (killed, shelved) describe the whole record and are attached regardless of configuration. max_bars and the measurement window are not compared because records do not publish them; unknown conditions never match.","status_scope":{"configuration":"The status was measured for this exact configuration (positive status, conditions matched).","record":"The status describes the whole strategy record (retirement), not this configuration's measurement.","null":"No record applies to this configuration (unrated)."},"conditions_source":"backend/api/ranking-research-status.json entries.*.measured (generated from src/content/strategies/*.md frontmatter)","group_universe_size":{"top30":30,"top50":50,"top100":100,"btc":1}},"research_record_aliases":[{"strategy":"atr-breakout","direction":"long","record":"atr-breakout-long"},{"strategy":"keltner-squeeze","direction":"long","record":"keltner-squeeze-long"}],"pf_caps":{"daily":99.99,"weekly_per_day":20,"rule":"pf_capped=true means the shown profit_factor is a LOWER BOUND, not a measurement. Daily rows: the raw PF (before rounding) is >= the display cap pf_clip=99.99 (includes the no-loss sentinel 999.99); an uncapped PF that would round up to 99.99 is shown floored (99.98), so 99.99 appears only as a capped lower bound. Weekly rows: before averaging, each contributing day's PF is clipped at pf_clip=20.0; pf_capped is true if ANY day exceeded it, so the true mean is larger than shown (a mean of exactly 20.0 means every day was clipped); a capped weekly mean is floored to 2 decimals, never rounded up past the true value."},"headline":{"rule":"D1 (owner decision 2026-09-24; jepo-11 REFUTED the first draft, fixed; third kind 2026-09-25, master). headline_has_verified = a configuration labelled verified under research_label (configuration scope) is in top3. verified_in_ranking lists every verified configuration in the ranked population (rank, shown PF, pf_capped). headline_note is computed per response for THIS group only (never another group's population): kind verified_below when top3 has none, verified configurations are ranked below and every one shows PF < 1 (names their ranks and PF); kind verified_ranked_lower when top3 has none and verified configurations are ranked but not every one shows PF < 1 — names their ranks and shown PF (a capped PF as «≥»), with no PF comparison; kind no_verified_in_group when top3 has none and this group ranks none — its second clause names exactly the top-3 statuses present (killed = retired, shelved, unrated) as backtest results over the period, or lists status counts if any other status is present; kind unknown when the group is not a published universe (legacy file, unmapped title) — labels cannot be judged, so no sentence; null (silent) only when a verified configuration is in top3. The trigger is «no verified configuration in top3» (CONVERGED.md D1); until criteria .5 a ranked verified PF >= 1 was silent."},"citation_contract":{"contract":"pruviq.citation.v1","canonical_url":"https://pruviq.com/data/ranking-criteria.json","cite_as":"PRUVIQ, “Daily ranking criteria daily-ranking-2026-09-24.5”, https://pruviq.com/data/ranking-criteria.json (no as-of field in this file — state when you retrieved it).","as_of":null,"as_of_field":null,"method_version":{"url":"https://pruviq.com/methodology/","url_ko":"https://pruviq.com/ko/methodology/","version":"2026-10-01T01:12:23+09:00","version_kind":"date the methodology page source last changed (git); null = not known at build","criteria_version":"daily-ranking-2026-09-24.5","criteria_url":"https://pruviq.com/data/ranking-criteria.json"},"data_scope":{"market":"OKX USDT perpetual futures (USDT-SWAP) instruments only, no spot markets; part of the historical candles come from another exchange (see data_source)","data_source":"Binance and OKX historical candles, with current updates from OKX USDT-SWAP; historical source boundaries vary by symbol and timestamp","coin_roster":{"crypto_coins":282,"note":"The crypto coins in the analyzed roster at build time. It is the roster, not the population of any one verdict — see `population`."},"population":"Defines the daily ranking rules; the coin group of a ranking is in that ranking's `group` field.","generator":["backend/api/ranking-criteria.json"],"costs":{"applies_to_this_file":true,"fees_included":true,"slippage_included":true,"funding":"Funding-rate proxy — funding is charged at real settlement events using actual historical rates (Binance funding history as a proxy for the OKX universe; the sign flips with the market, so shorts can pay too).","default_taker_fee_pct_per_side":0.05,"default_fee_applied_to_this_file":true,"default_fee_basis":"This is the OKX USDT-SWAP default for VIP 0 tier","preset_fee_is_undiscounted_default":true,"rate_used":"The fee rate stated in this file where it states one (e.g. `preset.metrics.scope.feePct`, `inputs`, `scope.fee_pct_per_side`); otherwise the default above."}},"referral":"none","neutrality":{"statement":"No exchange is ranked, compared or recommended in this file, and it carries no referral or sign-up link. The exchanges covered (`exchanges_covered`; `exchanges_detail` separates instrument venues from candle sources) are a fact about the data, not an endorsement; a verdict describes a strategy on these markets, not where to trade it.","referral_links_in_this_file":0,"paid_placement":false,"exchanges_covered":["OKX","Binance"],"exchanges_detail":{"instruments":["OKX USDT-SWAP"],"historical_candles":["OKX","Binance"]},"revenue_disclosure_url":"https://pruviq.com/fees","not_investment_advice":true},"how_to_reverify":{"url":"https://api.pruviq.com/rankings/daily","how":"Apply these rules to a ranking response and compare its order and research status."}}}