Copy-signal engine

Execution realism

The same signals under three execution assumptions. IDEAL is the original ledger. REALISTIC and CONSERVATIVE add observed detection latency, the observed market price at the simulated fill time, spread/impact, liquidity caps and fees. Pending and unavailable data are counted, never treated as losses. Built 19 Oct 2026 11:53 UTC in 826 s · backlog this run: 4 fetched (0 unavailable, 0 failed).

IDEAL
cfg 20d15dfd
REALISTIC
cfg 73f3379e
CONSERVATIVE
cfg a06eb988
Signals61,37161,37161,371
Simulated61,37151,89946,919
Pending data (not a result)033
Unavailable data (not a trading failure)03,5122,019
Invalid018139
Unfilled / expired05,93912,291
Data coverage100.0%94.3%96.7%
Fill rate (of decided)100.0%89.7%79.1%
Fill rate (of all)100.0%84.6%76.5%
Latency observed / estimated0 / 060,288 / 1,08060,288 / 1,080
Median latency (s)095160
Entry slippage avg / median (ticks)0.00 / 0.001.78 / 1.503.36 / 3.00
Exit slippage avg / median (ticks)0.00 / 0.001.72 / 1.503.06 / 3.00
Gross P&L$277,023$182,877−$43,412
Latency cost$0−$19,067,501−$8,396,725
Slippage cost$0$231,689$312,696
Fees$0$143,555$139,797
Net P&L$277,023$39,323−$183,210
Realized / unrealized$186,049 / $90,973−$166,281 / $205,604−$224,382 / $41,173
Settled trades25,24222,00520,641
Win rate (settled)63.4%53.3%52.6%
Avg / median return4.5% / 1.1%1.2% / 0.0%-3.6% / -0.3%
Max drawdown (realised)$6,064$117,282$167,733
Ending realised equity$186,049−$111,583−$163,534
P&L ex best 1 / 3$184,149 / $181,254−$125,763 / −$128,224−$175,927 / −$177,863
P&L ex best 5 / 10$178,954 / $173,567−$130,505 / −$134,960−$179,460 / −$183,083
Profit factor1.260.860.78
Expectancy / trade$7−$5−$8
Largest win / loss$1,900 / −$100$14,181 / −$110$12,393 / −$110
Fee provenanceNONE: 61371ASSUMED: 587 · OBSERVED: 25 · OBSERVED_RATE: 23570 · ASSUMED_UNKNOWN: 26518 · OBSERVED_FEE_FREE: 1199ASSUMED: 429 · OBSERVED: 25 · OBSERVED_RATE: 22068 · ASSUMED_UNKNOWN: 23349 · OBSERVED_FEE_FREE: 1048

Net P&L by signal type

TypeIDEAL (simulated · pending · net)REALISTIC (simulated · pending · net)CONSERVATIVE (simulated · pending · net)
CONSENSUS22,580 · 0 · $93,85119,342 · 1 · $68,98616,418 · 1 · −$14,354
CONVICTION_ADD19,700 · 0 · $94,19517,142 · 1 · −$21,19416,138 · 1 · −$106,681
EARLY_ENTRY210 · 0 · $2,645207 · 1 · −$4,072202 · 1 · −$4,007
NEW_POSITION18,881 · 0 · $86,33115,208 · 0 · −$4,39814,161 · 0 · −$58,168

Data quality

Not performance: how complete and how measured the underlying data is.

Signals65,569
Signals with observed latency60,291
Signals with estimated latency1,080
Price data complete / pending / processing120,193 / 6 / 0
Price data unavailable / failed3,474 / 0
Positions marked 1h / 6h / 24h53,129 / 52,857 / 38,900
Positions resolved / exited / still open17,605 / 6,468 / 35,414
Open positions checked by the marker35,408
Markets with fee flag / without14,137 / 1,226
Signal markets with no metadata yet10,015
Tracked wallets by bot classACTIVE: 139 · HIGH_FREQUENCY: 19 · INSUFFICIENT_DATA: 21 · BOT_HIGH_FREQUENCY: 1
IDEAL coverageSIMULATED: 61371
REALISTIC coverageINVALID: 18 · UNFILLED: 5939 · SIMULATED: 51899 · PENDING_DATA: 3 · UNAVAILABLE_DATA: 3512
CONSERVATIVE coverageINVALID: 139 · UNFILLED: 12291 · SIMULATED: 46919 · PENDING_DATA: 3 · UNAVAILABLE_DATA: 2019
Worker memoryrss 122.4 MB · heap 44.5/59.8 MB (12:05 UTC)

Portfolio (finite capital)

One portfolio per execution mode, replayed signal by signal with finite capital and the configured limits. Every figure is as of the last second the runner fully decided (the watermark), not now. Snapshot generated 2026-10-19 11:54 UTC.

The snapshot was generated 2026-10-19 11:54 UTC and has not been refreshed for 1.8 h (the worker refreshes it every 15 minutes when the feature is on).

Portfolio

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
As ofas of 2026-10-19 11:47 UTCas of 2026-10-19 11:22 UTCas of 2026-10-19 11:23 UTC
Start2026-09-27 04:28 UTC2026-09-27 04:28 UTC2026-09-27 04:28 UTC
Last run finished2026-10-19 11:53 UTC2026-10-19 11:54 UTC2026-10-19 11:54 UTC
Frontier (first event still waiting for data)none2026-10-19 11:39 UTC2026-10-19 11:40 UTC
Baseline noteIDEAL is a non-causal baseline: it fills at the source trade's own time, before the signal could have been known (plan B10). It is for comparison only, not a strategy that could have been run.——

Capital (cost basis)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Starting capital$1,000.00$1,000.00$1,000.00
Cash$276.41$152.68$196.12
Invested at cost$750.00$500.00$725.00
Equity at cost$1,026.41$652.68$921.12
Utilisation73.1%76.6%78.7%
Cash above the reserve$126.41$2.68$46.12

P&L (cost basis)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Realised P&L (net of fees)$26.41−$347.32−$78.88
Entry / exit fees$0.00 / $0.00$67.04 / $7.83$90.79 / $5.84
Realised before fees$26.41−$272.45$17.75
Realised return on starting capital2.64%-34.73%-7.89%

Market value (separate basis)

Open lots at their latest 1h/6h/24h mark up to the as-of time. Lots without a mark are valued at cost and counted below.

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Unrealised at marks−$58.29$6.35−$19.87
Equity at marks$968.12$659.03$901.25
Open lots without a mark (at cost)4 · $100.000 · $0.001 · $25.00

Risk (cost basis, equity curve)

points older than 7 days are thinned to the last point per hour, so drawdown before thinnedBefore is measured on hourly points

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Equity points352734
Peak equity$1,053.82$1,000.00$1,004.09
Max drawdown ($ / % of running peak)$191.56 / 18.55%$347.32 / 34.73%$135.25 / 13.53%
Ending equity$1,026.41$652.68$921.12
Hourly points before2026-10-12 11:00 UTC2026-10-12 11:00 UTC2026-10-12 11:00 UTC

Decisions

Fill rate: fills / decisions, excluding UNKNOWN (no price data) and REJECTED_DUPLICATE_POSITION (same source fill, plan D1).

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Decisions20,45620,45320,453
FILLED8072100
PARTIALLY_FILLED000
UNFILLED0514
EXPIRED0015
INVALID000
UNKNOWN0612
REJECTED20,37620,37020,312
Fill rate0.4%0.4%0.5%
Requested / filled$511,400.00 / $2,000.00$511,325.00 / $1,800.00$511,325.00 / $2,500.00
Resized to fit a limit000

Rejections by reason

REJECTED_DUPLICATE_POSITION is the same source fill seen by two signals (plan D1), not a risk limit

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
REJECTED_INSUFFICIENT_CASH019,4260
REJECTED_MAX_MARKET_EXPOSURE172335
REJECTED_MAX_OPEN_POSITIONS20,055260616
REJECTED_MAX_PORTFOLIO_EXPOSURE22943819,250
REJECTED_MAX_WALLET_ALLOCATION60212400
REJECTED_DUPLICATE_POSITION (same source fill, shown separately)151111

By signal kind

CONSENSUS is under-attributed: when it shares a source fill with NEW_POSITION the lot is credited to NEW_POSITION (plan D1)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
NEW_POSITION: requests / fills / lots opened7,239 / 41 / 417,239 / 34 / 347,239 / 40 / 40
NEW_POSITION: open / settled lots13 / 287 / 278 / 32
NEW_POSITION: realised P&L · fees$72.15 · $0.00−$108.89 · $37.98−$28.27 · $42.90
NEW_POSITION: win rate (settled lots)53.6%44.4%53.1%
NEW_POSITION: rejectionsREJECTED_MAX_MARKET_EXPOSURE: 5 · REJECTED_MAX_OPEN_POSITIONS: 7061 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 103 · REJECTED_MAX_WALLET_ALLOCATION: 29REJECTED_INSUFFICIENT_CASH: 6871 · REJECTED_MAX_MARKET_EXPOSURE: 7 · REJECTED_MAX_OPEN_POSITIONS: 96 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 154 · REJECTED_MAX_WALLET_ALLOCATION: 70REJECTED_MAX_MARKET_EXPOSURE: 9 · REJECTED_MAX_OPEN_POSITIONS: 261 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 6795 · REJECTED_MAX_WALLET_ALLOCATION: 113
CONSENSUS: requests / fills / lots opened4,294 / 8 / 84,293 / 8 / 84,293 / 15 / 15
CONSENSUS: open / settled lots5 / 33 / 58 / 7
CONSENSUS: realised P&L · fees−$33.52 · $0.00−$1.83 · $5.50−$23.65 · $11.83
CONSENSUS: win rate (settled lots)insufficient data (3 settled)insufficient data (5 settled)insufficient data (7 settled)
CONSENSUS: rejectionsREJECTED_DUPLICATE_POSITION: 15 · REJECTED_MAX_MARKET_EXPOSURE: 6 · REJECTED_MAX_OPEN_POSITIONS: 4215 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 37 · REJECTED_MAX_WALLET_ALLOCATION: 13REJECTED_DUPLICATE_POSITION: 11 · REJECTED_INSUFFICIENT_CASH: 4024 · REJECTED_MAX_MARKET_EXPOSURE: 6 · REJECTED_MAX_OPEN_POSITIONS: 63 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 95 · REJECTED_MAX_WALLET_ALLOCATION: 86REJECTED_DUPLICATE_POSITION: 11 · REJECTED_MAX_MARKET_EXPOSURE: 9 · REJECTED_MAX_OPEN_POSITIONS: 118 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 4019 · REJECTED_MAX_WALLET_ALLOCATION: 116
CONVICTION_ADD: requests / fills / lots opened8,739 / 31 / 318,738 / 30 / 308,738 / 45 / 45
CONVICTION_ADD: open / settled lots12 / 1910 / 2013 / 32
CONVICTION_ADD: realised P&L · fees−$12.22 · $0.00−$236.60 · $31.39−$26.96 · $41.91
CONVICTION_ADD: win rate (settled lots)63.2%40.0%59.4%
CONVICTION_ADD: rejectionsREJECTED_MAX_MARKET_EXPOSURE: 6 · REJECTED_MAX_OPEN_POSITIONS: 8596 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 88 · REJECTED_MAX_WALLET_ALLOCATION: 18REJECTED_INSUFFICIENT_CASH: 8353 · REJECTED_MAX_MARKET_EXPOSURE: 10 · REJECTED_MAX_OPEN_POSITIONS: 98 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 187 · REJECTED_MAX_WALLET_ALLOCATION: 56REJECTED_MAX_MARKET_EXPOSURE: 17 · REJECTED_MAX_OPEN_POSITIONS: 230 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 8264 · REJECTED_MAX_WALLET_ALLOCATION: 167
EARLY_ENTRY: requests / fills / lots opened184 / 0 / 0183 / 0 / 0183 / 0 / 0
EARLY_ENTRY: open / settled lots0 / 00 / 00 / 0
EARLY_ENTRY: realised P&L · fees$0.00 · $0.00$0.00 · $0.00$0.00 · $0.00
EARLY_ENTRY: win rate (settled lots)insufficient data (0 settled)insufficient data (0 settled)insufficient data (0 settled)
EARLY_ENTRY: rejectionsREJECTED_MAX_OPEN_POSITIONS: 183 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 1REJECTED_INSUFFICIENT_CASH: 178 · REJECTED_MAX_OPEN_POSITIONS: 3 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 2REJECTED_MAX_OPEN_POSITIONS: 7 · REJECTED_MAX_PORTFOLIO_EXPOSURE: 172 · REJECTED_MAX_WALLET_ALLOCATION: 4

Exposure

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Open lots302029
Invested at cost$750.00$500.00$725.00

Top markets by cost at risk (market · cost · share of invested · lots)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
#1 (by cost at risk)0x1d261d53c3ef… · $50.00 · 6.7% · 2 lot(s)0x4de721382047… · $50.00 · 10.0% · 2 lot(s)0x1ba8c5b41450… · $50.00 · 6.9% · 2 lot(s)
#2 (by cost at risk)0x4de721382047… · $50.00 · 6.7% · 2 lot(s)0x694595d0a008… · $50.00 · 10.0% · 2 lot(s)0x46ca741da4ab… · $50.00 · 6.9% · 2 lot(s)
#3 (by cost at risk)0x694595d0a008… · $50.00 · 6.7% · 2 lot(s)0xf17a11ec68f1… · $50.00 · 10.0% · 2 lot(s)0x4de721382047… · $50.00 · 6.9% · 2 lot(s)
#4 (by cost at risk)0xe192b7dcc815… · $50.00 · 6.7% · 2 lot(s)0x1ba8c5b41450… · $25.00 · 5.0% · 1 lot(s)0x694595d0a008… · $50.00 · 6.9% · 2 lot(s)
#5 (by cost at risk)0x030b0d3c2f07… · $25.00 · 3.3% · 1 lot(s)0x1d261d53c3ef… · $25.00 · 5.0% · 1 lot(s)0xa33cf18dc8a3… · $50.00 · 6.9% · 2 lot(s)
#6 (by cost at risk)0x037117484130… · $25.00 · 3.3% · 1 lot(s)0x1daed5e41e81… · $25.00 · 5.0% · 1 lot(s)0xf17a11ec68f1… · $50.00 · 6.9% · 2 lot(s)
#7 (by cost at risk)0x03aefac48a2a… · $25.00 · 3.3% · 1 lot(s)0x637ff14bf5b7… · $25.00 · 5.0% · 1 lot(s)0x56fda0f04440… · $25.00 · 3.4% · 1 lot(s)
#8 (by cost at risk)0x03c98837ae46… · $25.00 · 3.3% · 1 lot(s)0x64c812e9f46c… · $25.00 · 5.0% · 1 lot(s)0x57599a84bf50… · $25.00 · 3.4% · 1 lot(s)
#9 (by cost at risk)0x1ba8c5b41450… · $25.00 · 3.3% · 1 lot(s)0x6664de877892… · $25.00 · 5.0% · 1 lot(s)0x5c79dfde0555… · $25.00 · 3.4% · 1 lot(s)
#10 (by cost at risk)0x1daed5e41e81… · $25.00 · 3.3% · 1 lot(s)0x7830c4c2881a… · $25.00 · 5.0% · 1 lot(s)0x67f3f8d0a0ec… · $25.00 · 3.4% · 1 lot(s)

Top wallets by cost at risk (wallet · cost · share of invested · lots)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
#1 (by cost at risk)0x1109da04152c… · $100.00 · 13.3% · 4 lot(s)0xa3282d3e8825… · $100.00 · 20.0% · 4 lot(s)0x83733b87090c… · $100.00 · 13.8% · 4 lot(s)
#2 (by cost at risk)0xa3282d3e8825… · $100.00 · 13.3% · 4 lot(s)0x83733b87090c… · $75.00 · 15.0% · 3 lot(s)0xa3282d3e8825… · $100.00 · 13.8% · 4 lot(s)
#3 (by cost at risk)0x83733b87090c… · $75.00 · 10.0% · 3 lot(s)0xc7d02944a76b… · $75.00 · 15.0% · 3 lot(s)0xc7d02944a76b… · $100.00 · 13.8% · 4 lot(s)
#4 (by cost at risk)0x98d04f9eb52d… · $75.00 · 10.0% · 3 lot(s)0x55be7aa03ecf… · $50.00 · 10.0% · 2 lot(s)0x98d04f9eb52d… · $50.00 · 6.9% · 2 lot(s)
#5 (by cost at risk)0x0a6d26d31b28… · $50.00 · 6.7% · 2 lot(s)0x98d04f9eb52d… · $50.00 · 10.0% · 2 lot(s)0xf705fa045201… · $50.00 · 6.9% · 2 lot(s)
#6 (by cost at risk)0xd1c769317bd1… · $50.00 · 6.7% · 2 lot(s)0x1c144e30f405… · $25.00 · 5.0% · 1 lot(s)0x0a6d26d31b28… · $25.00 · 3.4% · 1 lot(s)
#7 (by cost at risk)0xd38b71f3e8ed… · $50.00 · 6.7% · 2 lot(s)0x736539924a56… · $25.00 · 5.0% · 1 lot(s)0x0cb10c40b077… · $25.00 · 3.4% · 1 lot(s)
#8 (by cost at risk)0x0cb10c40b077… · $25.00 · 3.3% · 1 lot(s)0x7b02b2bac2a3… · $25.00 · 5.0% · 1 lot(s)0x1ee9a5fc0966… · $25.00 · 3.4% · 1 lot(s)
#9 (by cost at risk)0x0ffcad4963e2… · $25.00 · 3.3% · 1 lot(s)0xa19cbababc31… · $25.00 · 5.0% · 1 lot(s)0x1f9e15f39bbd… · $25.00 · 3.4% · 1 lot(s)
#10 (by cost at risk)0x55be7aa03ecf… · $25.00 · 3.3% · 1 lot(s)0xc8b9a3018424… · $25.00 · 5.0% · 1 lot(s)0x55be7aa03ecf… · $25.00 · 3.4% · 1 lot(s)

Lots

open lots opened 30 days or more before asOf with no resolution; derived here, portfolio_lots.locked_unresolved is not maintained (D11)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
OPEN302029
PARTIALLY_EXITED000
EXITED898
RESOLVED424363
Closed by exit / by resolution8 / 429 / 438 / 63
Median holding time (settled)4.2 h4.1 h3.2 h
Locked unresolved (open 30+ days, no resolution)0 · $0.000 · $0.000 · $0.00

Robustness (settled lots, net of fees)

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
Sample50 settled lots52 settled lots71 settled lots
Total$26.41−$335.56−$58.92
Total excluding the top 1 / 3 lots by P&L−$57.28 / −$124.95−$364.74 / −$413.32−$128.22 / −$201.96
Total excluding the top 5 / 10 lots by P&L−$179.11 / −$301.20−$455.31 / −$542.81−$263.04 / −$373.71
Profit factor (gains ÷ losses)1.050.460.91
Average per lot$0.53−$6.45−$0.83
Largest gain / loss$83.70 / −$25.00$29.18 / −$27.42$69.30 / −$27.25
Median lot return7.11%-20.09%5.45%

Health

IDEAL
non-causal baseline — not a strategy that could have been run
REALISTICCONSERVATIVE
This cyclecompletedcompletedcompleted
Warningsnonenonenone
Execution rows after the as-of time (waiting)033
Rows skipped as stale in the last run000
Leasefreefreefree
Last rewindnone in the last runnone in the last runnone in the last run
Rows read in the last run344
Last run started2026-10-19 11:53 UTC2026-10-19 11:53 UTC2026-10-19 11:54 UTC

Assumptions

AssumptionProvenanceDetail
source trade timeOBSERVEDBlock timestamp of the wallet's fill from the Polymarket trade feed.
latency labelOBSERVEDEach record carries latency_source = OBSERVED (evaluation time recorded) or ESTIMATED (median/p90 fallback). Estimated latency is never reported as measured.
evaluation timeOBSERVEDsignals.evaluated_at (new) or paper_ledger.created_at for signals evaluated live; unavailable for the 470 V1 signals back-filled on 18 Sep.
assumedDetectionLatencySecDERIVEDOnly when evaluation time is missing. REALISTIC = median (134 s) and CONSERVATIVE = 90th percentile (3,173 s) of observed source→evaluation latency over 36,197 live signals, 18–26 Sep 2026.
decision/execution latencyCONFIGUREDReading the alert and submitting/matching an order. Not observable — no orders were placed.
market price at executionOBSERVEDLast trade at or before the simulated fill time from /v2/prices-history?as_of; only complete buckets ending at or before fill time are used.
spreadTicksAPPROXIMATEDHistorical order books are not available. Crossing a one-tick spread (REALISTIC) or two ticks (CONSERVATIVE) is assumed.
impactAPPROXIMATEDLinear in order notional ÷ source-trade notional. No depth data exists to calibrate it.
liquidity / participationAPPROXIMATEDThe source wallet's own fill proves at least that notional traded at that time; the follower may take up to 1× (REALISTIC) or 0.5× (CONSERVATIVE) of it. Orders beyond that are partially filled.
tick size / min orderOBSERVEDGamma orderPriceMinTickSize / orderMinSize when present; else 0.01 and 5 shares (Polymarket defaults). Tick drops to 0.001 below 0.04 / above 0.96 (DERIVED from Polymarket tick rules).
feesOBSERVEDTaker fee = shares × feeRate × p × (1 − p) (docs.polymarket.com/trading/fees). Per trade the provenance is recorded: OBSERVED_FEE_FREE (feesEnabled=false), OBSERVED_RATE, ASSUMED_RATE (fees on, rate not provided → 0.05 REALISTIC / 0.07 CONSERVATIVE), ASSUMED_UNKNOWN (no metadata). The flag is read today and applied to past trades: DERIVED, because Polymarket sets fee status per market at deployment ('fees apply only to markets deployed on or after the activation date'); fee_observed_at records when it was read.
resolution valueOBSERVED/v2/resolutions payouts (micro-USDC per share) with resolved_at; settlement is not an execution (no slippage, no fee).
marks (1h/6h/24h)OBSERVEDObservations only. Never used as execution prices.

Mode parameters

ParameterIDEALREALISTICCONSERVATIVE
assumedDetectionLatencySec01343173
decisionLatencySec0560
executionLatencySec0515
maxQuoteAgeSecInfinity3600900
maxSignalAgeSecnullnull3600
spreadTicks012
impactTicksAtFullParticipation013
participationnull10.5
feeModelnonemarketmarket
fallbackFeeRate00.050.07
defaultTickSize0.010.010.01
defaultMinOrderShares055