{"window":{"key":"all","requested_start":null,"requested_end":null,"observed_start":"2026-05-17T15:13:12+00:00","observed_end":"2026-08-15T23:00:37+00:00","days":90.32},"trades":1156,"entry_latency_sec":{"coverage":{"value":1155,"unit":"count","denominator":1156,"denominator_label":"closed gradeable trades in window","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"COUNT(*) WHERE signal_quality_metrics.entry_latency_sec IS NOT NULL","methodology_version":"1.0.0"},"median":{"value":6.0,"unit":"seconds","denominator":1155,"denominator_label":"entry latency measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"median of signal_quality_metrics.entry_latency_sec","methodology_version":"1.0.0"},"p90":{"value":201.0,"unit":"seconds","denominator":1155,"denominator_label":"entry latency measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"nearest-rank 90th percentile of signal_quality_metrics.entry_latency_sec","methodology_version":"1.0.0"},"p99":{"value":20643.0,"unit":"seconds","denominator":1155,"denominator_label":"entry latency measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"nearest-rank 99th percentile of signal_quality_metrics.entry_latency_sec","methodology_version":"1.0.0"},"mean":{"value":835.3775,"unit":"seconds","denominator":1155,"denominator_label":"entry latency measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"arithmetic mean of signal_quality_metrics.entry_latency_sec","methodology_version":"1.0.0"},"min":{"value":0.0,"unit":"seconds","denominator":1155,"denominator_label":"entry latency measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"MIN(signal_quality_metrics.entry_latency_sec)","methodology_version":"1.0.0"},"max":{"value":168366.0,"unit":"seconds","denominator":1155,"denominator_label":"entry latency measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"MAX(signal_quality_metrics.entry_latency_sec)","methodology_version":"1.0.0"}},"slippage_pct":{"coverage":{"value":1083,"unit":"count","denominator":1156,"denominator_label":"closed gradeable trades in window","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"COUNT(*) WHERE signal_quality_metrics.slippage_pct IS NOT NULL","methodology_version":"1.0.0"},"median":{"value":0.0,"unit":"percent","denominator":1083,"denominator_label":"slippage measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"median of signal_quality_metrics.slippage_pct","methodology_version":"1.0.0"},"p90":{"value":0.0,"unit":"percent","denominator":1083,"denominator_label":"slippage measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"nearest-rank 90th percentile of signal_quality_metrics.slippage_pct","methodology_version":"1.0.0"},"p99":{"value":0.3568,"unit":"percent","denominator":1083,"denominator_label":"slippage measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"nearest-rank 99th percentile of signal_quality_metrics.slippage_pct","methodology_version":"1.0.0"},"mean":{"value":-0.0739,"unit":"percent","denominator":1083,"denominator_label":"slippage measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"arithmetic mean of signal_quality_metrics.slippage_pct","methodology_version":"1.0.0"},"min":{"value":-59.8571,"unit":"percent","denominator":1083,"denominator_label":"slippage measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"MIN(signal_quality_metrics.slippage_pct)","methodology_version":"1.0.0"},"max":{"value":2.2931,"unit":"percent","denominator":1083,"denominator_label":"slippage measurements","window_start":"2026-05-17T15:13:12+00:00","window_end":"2026-08-15T23:00:37+00:00","method":"MAX(signal_quality_metrics.slippage_pct)","methodology_version":"1.0.0"}},"definitions":{"entry_latency_sec":"Seconds between the signal being dispatched and the entry condition triggering. These are LIMIT entries: a large latency means the price took that long to come back to the published entry, not that our system was slow. Long-tail values are published as-is — the maximum is a real row, not a cap.","slippage_pct":"(entry_trigger_price - entry_price) / entry_price * 100, signed. Positive means the fill was worse than the published entry for a LONG. Recorded by the monitor at trigger time.","not_measured":"There is no exchange fill, no fee and no funding cost in this dataset — see known_limitations L5. This section measures our own signal-to-trigger pipeline, not a broker execution report."},"coverage_note":"1155 of 1156 trades in this window carry an entry-latency measurement and 1083 carry a slippage measurement. Every percentile above states its own denominator; none of them is computed over the full trade count.","provenance":{"methodology_version":"1.0.0","methodology_url":"/api/v1/public/performance/methodology","source":"positions + signal_quality_metrics + partial_close_log + position_events","row_counts":{"positions_table_rows":1495,"closed_gradeable_trades":1156,"excluded_housekeeping_rows":339,"trades_with_telegram_message":905,"trades_with_observed_exit_price":1084,"trades_with_nonreconciling_exit_price":760,"trades_with_partial_fills":87,"trades_without_recorded_leverage":0,"tp_hit_events":818,"distinct_symbols":93},"data_loaded_at":"2026-08-16T00:22:59.107191+00:00","cache_ttl_seconds":60.0,"snapshot_age_header":"X-Snapshot-Age-Seconds","consistency":"Every number on this surface is computed by one module, so no two endpoints can apply different definitions of a win, a window or a universe. The data SNAPSHOT is cached per worker process for 60 seconds and the API runs several workers, so two endpoints can be answered from snapshots up to one TTL apart and differ by whatever closed in between. Compare provenance.data_loaded_at on the two responses before comparing their numbers — that field exists so the skew is measurable rather than deniable.","timestamp_policy":"Every timestamp published by this module is ISO-8601 in UTC (+00:00). Source columns are TEXT in mixed formats: positions.created_at/activated_at/closed_at and partial_close_log.executed_at always carry an explicit UTC offset; position_events.occurred_at is written naive in Asia/Tehran local time by app.trading.utils.now_sql_naive(). A naive value is therefore interpreted as Asia/Tehran and converted to UTC. There is exactly one conversion function, so no two timestamps in one payload can be in different zones.","money_figures_available":false,"money_note":"positions.pnl_usdt, positions.quantity and positions.exit_price are 100% NULL. Absolute profit in USDT is not computable from this dataset and is never published."}}