{"method_version":"1.0.0","statuses":{"verified":"Exchange-reported entry AND exit fills, a realised PnL (reported by the exchange or derived from those fills), the fee and the funding are all recorded for this trade in exchange_executions, from publishable rows.","partially_verified":"At least one exchange-reported fill is recorded for this trade, but not the full set that 'verified' requires — the fields that are missing are listed per trade.","modeled":"No exchange fill is recorded. The result is computed from the published price levels and the market price feed (positions.pnl_percent_on_close / realized_pnl_pct). It is not an execution and carries no fee or funding.","unavailable":"Neither an exchange fill nor a modelled result exists for this trade."},"status_labels":{"verified":{"en":"Verified","fa":"تأییدشده"},"partially_verified":{"en":"Partially Verified","fa":"تأیید ناقص"},"modeled":{"en":"Modeled","fa":"مدل‌سازی‌شده"},"unavailable":{"en":"Unavailable","fa":"در دسترس نیست"}},"sources":{"database":"TradeYar's own persisted record: positions, position_events and signal_quality_metrics, written by the signal monitor from the market price feed.","telegram":"A Telegram message id stored with the record (positions.telegram_message_id, position_events.telegram_reply_id). The id is checkable against the channel by any member.","exchange":"Evidence that originates at an exchange: an order acknowledgement from the exchange API (trade_execution_logs) or an exchange-reported fill (exchange_executions).","modeled":"A figure computed by TradeYar from price levels, not observed as a fill. Excludes fees, funding and position size."},"results":{"signal":"What the published signal did against its own levels (database).","modeled":"ROI on margin computed from price levels; no fees, funding or size (modeled).","exchange_verified":"Net realised PnL and ROI from exchange-reported fills (exchange)."},"reconciliation_checks":{"recorded_vs_close_event_roi":"positions.pnl_percent_on_close against the ROI the same monitor wrote on the closing position_events row. Two tables, one exit: they should agree exactly.","recorded_vs_close_event_price":"positions.pnl_percent_on_close against ROI recomputed from entry_price and the closing event's price_at_event: (exit-entry)/entry*leverage*100, sign-flipped for SHORT. Differs by design on stop exits, where the stored ROI models the fill at sl +/- 0.10 %.","recorded_vs_observed_exit":"positions.pnl_percent_on_close against ROI recomputed from signal_quality_metrics.exit_price, the market price seen when the exit was detected.","ladder_vs_recompute":"positions.realized_pnl_pct against the ladder rule re-applied independently (SPEC section 2): max(ROI of the highest rung reached, ROI of the recorded exit), where the rung ROI is the TP_HIT event's announced ROI, or ROI(entry, published TP price) when no event carries one.","laddered_vs_legs":"positions.laddered_pnl_pct against sum(frac * roi) over the same pnl_legs.","tp_events_vs_levels":"Every TP_HIT event's stored ROI against ROI recomputed from entry_price and that rung's published price. The largest absolute difference across the trade's rungs is reported.","exchange_vs_modeled_roi":"Exchange-verified realised ROI (net of fees and funding, on entry margin) against the modelled recorded ROI. Only computable for a verified trade.","fees_funding":"Fees and funding as reported by the exchange. There is no modelled counterpart: the model excludes both, so this check reports availability, not a delta."},"default_tolerance_roi_points":0.5,"dashboard_formulas":[{"key":"total_trades","label":"Total trades","source":"database","formula":"COUNT(closed gradeable trades in range)"},{"key":"wins","label":"Wins","source":"modeled","formula":"COUNT(roi > 0)"},{"key":"losses","label":"Losses","source":"modeled","formula":"COUNT(roi <= 0)"},{"key":"win_rate_pct","label":"Win rate","source":"modeled","formula":"wins / total_trades * 100"},{"key":"gross_profit_roi_points","label":"Gross profit","source":"modeled","formula":"SUM(roi WHERE roi > 0), ROI points"},{"key":"gross_loss_roi_points","label":"Gross loss","source":"modeled","formula":"SUM(roi WHERE roi <= 0), ROI points (negative)"},{"key":"net_roi_points","label":"Net result","source":"modeled","formula":"SUM(roi) over all trades, ROI points — NOT a portfolio return"},{"key":"profit_factor","label":"Profit factor","source":"modeled","formula":"gross_profit / |gross_loss|"},{"key":"avg_win_roi_pct","label":"Average win","source":"modeled","formula":"gross_profit / COUNT(roi > 0)"},{"key":"avg_loss_roi_pct","label":"Average loss","source":"modeled","formula":"gross_loss / COUNT(roi <= 0)"},{"key":"payoff_ratio","label":"Realised risk/reward","source":"modeled","formula":"avg_win / |avg_loss|"},{"key":"planned_rr_tp1","label":"Planned risk/reward (TP1)","source":"database","formula":"MEAN(|TP1 - entry| / |entry - SL|) over trades with both levels"},{"key":"max_drawdown_pct","label":"Maximum drawdown","source":"modeled","formula":"min over trades of (equity / running peak - 1) * 100; equity_n = equity_(n-1) * (1 + allocation/100 * roi/100), ordered by closed_at"},{"key":"compounded_return_pct","label":"Cumulative return","source":"modeled","formula":"(equity_final / 100 - 1) * 100 on the same curve"},{"key":"longest_win_streak","label":"Consecutive wins (max)","source":"modeled","formula":"longest run of roi > 0, ordered by closed_at"},{"key":"longest_loss_streak","label":"Consecutive losses (max)","source":"modeled","formula":"longest run of roi <= 0, ordered by closed_at"}],"execution_formulas":{"avg_fill_price":"SUM(filled_qty_i * avg_fill_price_i) / SUM(filled_qty_i)","entry_slippage_pct":"LONG: (avg_entry - signal_entry) / signal_entry * 100; SHORT: sign flipped. Positive = worse.","gross_pnl_from_fills":"LONG: (avg_exit - avg_entry) * exit_qty; SHORT: (avg_entry - avg_exit) * exit_qty","net_realized_pnl":"gross (exchange-reported, else fill-derived) - fees + funding; null if any part is unknown","realized_roi_pct":"net_realized_pnl / entry margin * 100"},"unavailable_statement":"Exchange execution data unavailable","third_party_audit":"Independent third-party audit: Not available","endpoints":{"audit":"/api/v1/public/verification/audit?window=|from=&to=","dashboard":"/api/v1/public/verification/dashboard?window=|from=&to=&basis=&allocation_pct=","monthly":"/api/v1/public/verification/monthly?basis=&allocation_pct=","reconciliation":"/api/v1/public/verification/reconciliation?tolerance=&flagged_only=&format=json|csv","trade":"/api/v1/public/verification/trade/{unique_code}","export":"/api/v1/public/verification/export?format=csv|json"}}