Trader Intelligence
Trader Analytics
9 completed / 0 failed
Generated
2026-06-28T14:52:29.240Z
Requests
9 requested / 9 completed
Symbols
ABCD, EFGH
Source
raw_trade_requests
This report aggregates execution-feedback summaries only.
Gross P/L excludes commissions, fees, borrow costs, and slippage.
Market context, support/resistance, VWAP/EMA, and candle structure were not used unless explicitly shown in a market-context section.
Small sample sizes should be treated as review prompts, not statistical proof.
Trader identity and long-term behavior conclusions require more reviewed trades.
Total Gross P/L
-235.70
commissions excluded
Gross Win Rate
66.7%
6 winners
Completed
9
0 failed
Primary Focus
2
Clean entry and full exit
Adverse Add Rate
11.1%
1 trades
Open Rate
11.1%
1 left open
Gross P/L By Trade
gross -235.70Gross Win / Loss / Flat
9
trades
Winners6 / 66.7%
Losers3 / 33.3%
Flat0 / 0.0%
Top Execution Risks
total 8Reduced after price was against the entry3 / 37.5%
Added several times before reducing size1 / 12.5%
Trade was left open1 / 12.5%
Built too much size in a losing trade1 / 12.5%
Many adds before one large exit1 / 12.5%
Inconsistent position sizing1 / 12.5%
Primary Focus Distribution
total 7Clean entry and full exit2 / 28.6%
Reduced after price was against the entry2 / 28.6%
Trade was left open1 / 14.3%
Structured partial exits1 / 14.3%
Inconsistent position sizing1 / 14.3%
Key Execution Risk Rates
total 9Review adds that need chart data1 / 11.1%
Added several times before reducing size1 / 11.1%
Trade was left open1 / 11.1%
Review fast execution clusters1 / 11.1%
Inconsistent position sizing1 / 11.1%
Added meaningful size late in the trade0 / 0.0%
First reduction did not take much risk off0 / 0.0%
Many adds before one large exit1 / 11.1%
Reduced after price was against the entry3 / 33.3%
Top Execution Strengths
total 24Closed the trade cleanly8 / 33.3%
Reduced at favorable prices6 / 25.0%
Clean entry and full exit4 / 16.7%
Structured partial exits2 / 8.3%
Controlled scale-in2 / 8.3%
Reduced risk early1 / 4.2%
Consistent position sizing1 / 4.2%
Risk Categories
Position Construction1 / 12.5%
Size Discipline1 / 12.5%
Risk Reduction1 / 12.5%
Exit Structure2 / 25.0%
P/L3 / 37.5%
Strength Categories
Position Construction4 / 16.7%
Size Discipline3 / 12.5%
Risk Reduction1 / 4.2%
Exit Structure10 / 41.7%
P/L6 / 25.0%
Trade Duration
total 9< 1m1 / 11.1%
15m-60m7 / 77.8%
> 60m1 / 11.1%
Closed Flat / Left Open
9
trades
Closed Flat8 / 88.9%
Left Open1 / 11.1%
Trade Rows
| Trade | Direction | Session | Gross P/L | Primary | Top Risk | Top Strength | Warnings |
|---|---|---|---|---|---|---|---|
#1 ABCD 2 executions | long | 2026-05-01 market_open | +50.00 | Clean entry and full exit | None | Clean entry and full exit | None |
#2 ABCD 2 executions | long | 2026-05-01 midday | -42.00 | Reduced after price was against the entry | Reduced after price was against the entry | Clean entry and full exit | None |
#3 EFGH 2 executions | short | 2026-05-01 market_open | +44.00 | Clean entry and full exit | None | Clean entry and full exit | None |
#4 EFGH 2 executions | short | 2026-05-01 midday | -78.00 | Reduced after price was against the entry | Reduced after price was against the entry | Clean entry and full exit | None |
#5 ABCD 2 executions | long | 2026-05-01 midday | +10.40 | Trade was left open | Trade was left open | Reduced at favorable prices | executions: Execution sequence leaves an open position; full-exit patterns may not apply. |
#6 ABCD 3 executions | long | 2026-05-01 market_open | +66.00 | Structured partial exits | None | Structured partial exits | None |
#7 ABCD 5 executions | long | 2026-05-01 market_open | -400.00 | None | None | Closed the trade cleanly | None |
#8 ABCD 3 executions | long | 2026-05-01 market_open | +110.40 | Inconsistent position sizing | Inconsistent position sizing | Controlled scale-in | None |
#9 ABCD 4 executions | long | 2026-05-01 market_open | +3.50 | None | None | Structured partial exits | None |
Warnings
executions: Execution sequence leaves an open position; full-exit patterns may not apply.
Debug Raw JSON
{
"contractVersion": "trader_analytics_report_v1",
"dataSource": "execution_feedback_summaries",
"inputMode": "raw_trade_requests",
"source": "page:/debug/trader-analytics/sample",
"generatedAt": "2026-06-28T14:52:29.240Z",
"sampleSize": {
"requestCount": 9,
"validatedTradeCount": 9,
"completedTradeCount": 9,
"failedTradeCount": 0,
"validatedOnlyCount": 0,
"warningCount": 2,
"symbols": [
"ABCD",
"EFGH"
],
"sessionBuckets": [
"market_open",
"midday"
],
"tradeDirections": [
"long",
"short"
],
"sessionDateRange": {
"firstSessionDate": "2026-05-01",
"lastSessionDate": "2026-05-01"
}
},
"pnl": {
"grossTotalRealizedPnl": -235.70005,
"grossAverageRealizedPnl": -26.188894,
"grossMedianRealizedPnl": 10.4,
"grossWinnerCount": 6,
"grossLoserCount": 3,
"grossFlatCount": 0,
"grossWinRate": 0.666667,
"bestGrossTrade": {
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 110.4
},
"worstGrossTrade": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"commissionsAndFeesIncluded": false
},
"timeOfDay": {
"entrySessionBuckets": [
{
"id": "market_open",
"label": "market_open",
"tradeCount": 6,
"grossTotalRealizedPnl": -126.10005,
"grossAverageRealizedPnl": -21.016675,
"grossMedianRealizedPnl": 47,
"grossAbsoluteRealizedPnl": 673.89995,
"grossWinnerCount": 5,
"grossLoserCount": 1,
"grossFlatCount": 0,
"grossWinRate": 0.833333,
"largestWinner": {
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 110.4
},
"largestLoser": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTrade": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59356,
"sampleSizeLabel": "limited",
"conclusion": {
"kind": "mixed",
"confidence": "low",
"summary": "Mixed timing evidence; use this as a review prompt."
}
},
{
"id": "midday",
"label": "midday",
"tradeCount": 3,
"grossTotalRealizedPnl": -109.6,
"grossAverageRealizedPnl": -36.533333,
"grossMedianRealizedPnl": -42,
"grossAbsoluteRealizedPnl": 130.4,
"grossWinnerCount": 1,
"grossLoserCount": 2,
"grossFlatCount": 0,
"grossWinRate": 0.333333,
"largestWinner": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestLoser": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTrade": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59816,
"sampleSizeLabel": "insufficient",
"conclusion": {
"kind": "insufficient_sample",
"confidence": "low",
"summary": "Not enough trades for a timing pattern yet."
}
}
],
"entryHoursEt": [
{
"id": "09",
"label": "09:00-09:59 ET",
"tradeCount": 6,
"grossTotalRealizedPnl": -126.10005,
"grossAverageRealizedPnl": -21.016675,
"grossMedianRealizedPnl": 47,
"grossAbsoluteRealizedPnl": 673.89995,
"grossWinnerCount": 5,
"grossLoserCount": 1,
"grossFlatCount": 0,
"grossWinRate": 0.833333,
"largestWinner": {
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 110.4
},
"largestLoser": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTrade": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59356,
"sampleSizeLabel": "limited",
"conclusion": {
"kind": "mixed",
"confidence": "low",
"summary": "Mixed timing evidence; use this as a review prompt."
}
},
{
"id": "11",
"label": "11:00-11:59 ET",
"tradeCount": 2,
"grossTotalRealizedPnl": -120,
"grossAverageRealizedPnl": -60,
"grossMedianRealizedPnl": -60,
"grossAbsoluteRealizedPnl": 120,
"grossWinnerCount": 0,
"grossLoserCount": 2,
"grossFlatCount": 0,
"grossWinRate": 0,
"largestWinner": null,
"largestLoser": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTrade": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.65,
"sampleSizeLabel": "insufficient",
"conclusion": {
"kind": "insufficient_sample",
"confidence": "low",
"summary": "Not enough trades for a timing pattern yet."
}
},
{
"id": "14",
"label": "14:00-14:59 ET",
"tradeCount": 1,
"grossTotalRealizedPnl": 10.4,
"grossAverageRealizedPnl": 10.4,
"grossMedianRealizedPnl": 10.4,
"grossAbsoluteRealizedPnl": 10.4,
"grossWinnerCount": 1,
"grossLoserCount": 0,
"grossFlatCount": 0,
"grossWinRate": 1,
"largestWinner": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestLoser": null,
"largestAbsoluteTrade": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestAbsoluteTradeShareOfAbsolutePnl": 1,
"sampleSizeLabel": "insufficient",
"conclusion": {
"kind": "insufficient_sample",
"confidence": "low",
"summary": "Not enough trades for a timing pattern yet."
}
}
],
"heldSessionBuckets": [
{
"id": "market_open",
"label": "market_open",
"tradeCount": 6,
"grossTotalRealizedPnl": -126.10005,
"grossAverageRealizedPnl": -21.016675,
"grossMedianRealizedPnl": 47,
"grossAbsoluteRealizedPnl": 673.89995,
"grossWinnerCount": 5,
"grossLoserCount": 1,
"grossFlatCount": 0,
"grossWinRate": 0.833333,
"largestWinner": {
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 110.4
},
"largestLoser": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTrade": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59356,
"sampleSizeLabel": "limited",
"conclusion": {
"kind": "mixed",
"confidence": "low",
"summary": "Mixed timing evidence; use this as a review prompt."
}
},
{
"id": "midday",
"label": "midday",
"tradeCount": 3,
"grossTotalRealizedPnl": -109.6,
"grossAverageRealizedPnl": -36.533333,
"grossMedianRealizedPnl": -42,
"grossAbsoluteRealizedPnl": 130.4,
"grossWinnerCount": 1,
"grossLoserCount": 2,
"grossFlatCount": 0,
"grossWinRate": 0.333333,
"largestWinner": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestLoser": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTrade": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59816,
"sampleSizeLabel": "insufficient",
"conclusion": {
"kind": "insufficient_sample",
"confidence": "low",
"summary": "Not enough trades for a timing pattern yet."
}
}
],
"bestEntrySession": {
"id": "midday",
"label": "midday",
"tradeCount": 3,
"grossTotalRealizedPnl": -109.6,
"grossAverageRealizedPnl": -36.533333,
"grossMedianRealizedPnl": -42,
"grossAbsoluteRealizedPnl": 130.4,
"grossWinnerCount": 1,
"grossLoserCount": 2,
"grossFlatCount": 0,
"grossWinRate": 0.333333,
"largestWinner": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestLoser": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTrade": {
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"grossRealizedPnl": -78
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59816,
"sampleSizeLabel": "insufficient",
"conclusion": {
"kind": "insufficient_sample",
"confidence": "low",
"summary": "Not enough trades for a timing pattern yet."
}
},
"worstEntrySession": {
"id": "market_open",
"label": "market_open",
"tradeCount": 6,
"grossTotalRealizedPnl": -126.10005,
"grossAverageRealizedPnl": -21.016675,
"grossMedianRealizedPnl": 47,
"grossAbsoluteRealizedPnl": 673.89995,
"grossWinnerCount": 5,
"grossLoserCount": 1,
"grossFlatCount": 0,
"grossWinRate": 0.833333,
"largestWinner": {
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 110.4
},
"largestLoser": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTrade": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59356,
"sampleSizeLabel": "limited",
"conclusion": {
"kind": "mixed",
"confidence": "low",
"summary": "Mixed timing evidence; use this as a review prompt."
}
},
"bestEntryHourEt": {
"id": "14",
"label": "14:00-14:59 ET",
"tradeCount": 1,
"grossTotalRealizedPnl": 10.4,
"grossAverageRealizedPnl": 10.4,
"grossMedianRealizedPnl": 10.4,
"grossAbsoluteRealizedPnl": 10.4,
"grossWinnerCount": 1,
"grossLoserCount": 0,
"grossFlatCount": 0,
"grossWinRate": 1,
"largestWinner": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestLoser": null,
"largestAbsoluteTrade": {
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 10.4
},
"largestAbsoluteTradeShareOfAbsolutePnl": 1,
"sampleSizeLabel": "insufficient",
"conclusion": {
"kind": "insufficient_sample",
"confidence": "low",
"summary": "Not enough trades for a timing pattern yet."
}
},
"worstEntryHourEt": {
"id": "09",
"label": "09:00-09:59 ET",
"tradeCount": 6,
"grossTotalRealizedPnl": -126.10005,
"grossAverageRealizedPnl": -21.016675,
"grossMedianRealizedPnl": 47,
"grossAbsoluteRealizedPnl": 673.89995,
"grossWinnerCount": 5,
"grossLoserCount": 1,
"grossFlatCount": 0,
"grossWinRate": 0.833333,
"largestWinner": {
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": 110.4
},
"largestLoser": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTrade": {
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"grossRealizedPnl": -400
},
"largestAbsoluteTradeShareOfAbsolutePnl": 0.59356,
"sampleSizeLabel": "limited",
"conclusion": {
"kind": "mixed",
"confidence": "low",
"summary": "Mixed timing evidence; use this as a review prompt."
}
},
"entryInsight": "Highest total entry-session result so far is midday. Highest total entry-hour result so far is 14:00-14:59 ET. Lowest total entry-session result so far is market_open. Treat this as a review prompt until the sample is larger.",
"holdInsight": "No cross-session holds are present in this sample.",
"sampleSizeWarning": true,
"crossSessionHolds": {
"heldPremarketIntoOpenCount": 0,
"heldOpenIntoMiddayCount": 0,
"heldMiddayIntoPostmarketCount": 0,
"heldPostmarketIntoOvernightCount": 0,
"heldOvernightCount": 0
}
},
"lifecycle": {
"openPositionTradeCount": 1,
"closedToFlatTradeCount": 8,
"openPositionRate": 0.111111,
"averageMaxPositionSize": 180,
"averageFinalPositionSize": 6.666667,
"averageDurationSeconds": 2294.666667,
"medianDurationSeconds": 2400
},
"executionBehavior": {
"adversePriceAddTradeCount": 1,
"adversePriceAddRate": 0.111111,
"multipleAddsBeforeReductionTradeCount": 1,
"multipleAddsBeforeReductionRate": 0.111111,
"overbuiltPositionTradeCount": 1,
"openPositionLeftoverTradeCount": 1,
"rapidFireExecutionTradeCount": 1,
"inconsistentShareSizingTradeCount": 1,
"largeLateAddTradeCount": 0,
"smallFirstRiskReductionTradeCount": 0,
"allOrNothingExitAfterManyAddsTradeCount": 1,
"losingReductionSequenceTradeCount": 3
},
"strengths": {
"cleanSingleEntryFullExitCount": 4,
"controlledScaleInCount": 2,
"structuredPartialExitSequenceCount": 2,
"earlyPositionRiskReductionCount": 1,
"decisiveFullExitCount": 8,
"consistentShareSizingCount": 1,
"profitableReductionSequenceCount": 6
},
"distributions": {
"categories": [
{
"category": "position_construction",
"label": "Position Construction",
"contextCount": 10,
"riskCount": 1,
"strengthCount": 4,
"primaryFocusCount": 2,
"totalCount": 17
},
{
"category": "size_discipline",
"label": "Size Discipline",
"contextCount": 0,
"riskCount": 1,
"strengthCount": 3,
"primaryFocusCount": 1,
"totalCount": 5
},
{
"category": "risk_reduction",
"label": "Risk Reduction",
"contextCount": 0,
"riskCount": 1,
"strengthCount": 1,
"primaryFocusCount": 0,
"totalCount": 2
},
{
"category": "exit_structure",
"label": "Exit Structure",
"contextCount": 12,
"riskCount": 2,
"strengthCount": 10,
"primaryFocusCount": 2,
"totalCount": 26
},
{
"category": "timing",
"label": "Timing",
"contextCount": 0,
"riskCount": 0,
"strengthCount": 0,
"primaryFocusCount": 0,
"totalCount": 0
},
{
"category": "pnl",
"label": "P/L",
"contextCount": 0,
"riskCount": 3,
"strengthCount": 6,
"primaryFocusCount": 2,
"totalCount": 11
}
],
"riskIds": {
"losing_reduction_sequence": 3,
"multiple_adds_before_first_reduction": 1,
"open_position_leftover": 1,
"overbuilt_position": 1,
"all_or_nothing_exit_after_many_adds": 1,
"inconsistent_share_sizing": 1
},
"strengthIds": {
"decisive_full_exit": 8,
"profitable_reduction_sequence": 6,
"clean_single_entry_full_exit": 4,
"structured_partial_exit_sequence": 2,
"controlled_scale_in": 2,
"early_position_risk_reduction": 1,
"consistent_share_sizing": 1
},
"primaryFocusIds": {
"clean_single_entry_full_exit": 2,
"losing_reduction_sequence": 2,
"open_position_leftover": 1,
"structured_partial_exit_sequence": 1,
"inconsistent_share_sizing": 1
}
},
"topRisks": [
{
"id": "losing_reduction_sequence",
"kind": "risk",
"category": "pnl",
"label": "Reduced after price was against the entry",
"summary": "At least one reduction happened at a price worse than the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context is needed before saying the chart failed or support broke.",
"fixFirstAction": "Replay the hold before that reduction and decide where risk should have been reduced sooner.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 65,
"count": 3,
"tradeRate": 0.333333
},
{
"id": "multiple_adds_before_first_reduction",
"kind": "risk",
"category": "risk_reduction",
"label": "Added several times before reducing size",
"summary": "The position kept getting larger before the trade sold or reduced a meaningful amount.",
"behaviorState": "certified_detection",
"behaviorTone": "risk",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can explain whether the trade idea weakened, but it is not required to review the add sequence.",
"fixFirstAction": "Mark where size had to stop increasing unless the chart had clearly repaired.",
"severity": "high",
"confidence": "high",
"priorityScore": 88,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "open_position_leftover",
"kind": "risk",
"category": "exit_structure",
"label": "Trade was left open",
"summary": "The import ended while shares were still open, so the trade cannot be judged as a fully closed review yet.",
"behaviorState": "certified_detection",
"behaviorTone": "risk",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Later executions may close the position outside the imported window.",
"fixFirstAction": "Wait for a closing execution or mark the position as still open before using it as a closed-trade lesson.",
"severity": "high",
"confidence": "high",
"priorityScore": 86,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "overbuilt_position",
"kind": "risk",
"category": "position_construction",
"label": "Built too much size in a losing trade",
"summary": "The position became much larger while the trade later finished as a gross loser.",
"behaviorState": "certified_detection",
"behaviorTone": "risk",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Exact avoidable loss needs deeper context; this only flags the size/risk sequence.",
"fixFirstAction": "Define a maximum add count or maximum size for trades that have not started working.",
"severity": "high",
"confidence": "high",
"priorityScore": 84,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "all_or_nothing_exit_after_many_adds",
"kind": "risk",
"category": "exit_structure",
"label": "Many adds before one large exit",
"summary": "The trade built size through several adds and then relied on one large exit sequence.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "The app needs saved review context before deciding whether the exit matched your original plan.",
"fixFirstAction": "Plan an earlier risk reduction so the trade does not depend on one final exit.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "inconsistent_share_sizing",
"kind": "risk",
"category": "size_discipline",
"label": "Inconsistent position sizing",
"summary": "Share size changed enough that risk may have been harder to control consistently.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "The app needs your intended risk plan before calling any exact size wrong.",
"fixFirstAction": "Set one sizing rule for similar setups and compare future trades against it.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 60,
"count": 1,
"tradeRate": 0.111111
}
],
"topStrengths": [
{
"id": "decisive_full_exit",
"kind": "strength",
"category": "exit_structure",
"label": "Closed the trade cleanly",
"summary": "The execution sequence includes a clear final exit that returned the position to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart data is needed before saying the exit was near the best part of the move.",
"fixFirstAction": "Keep closing the trade cleanly when the review plan says the position should be flat.",
"severity": "low",
"confidence": "high",
"priorityScore": 52,
"count": 8,
"tradeRate": 0.888889
},
{
"id": "profitable_reduction_sequence",
"kind": "strength",
"category": "pnl",
"label": "Reduced at favorable prices",
"summary": "Each reduction happened at a favorable price versus the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart data is needed before saying the reductions were near resistance or before a fade.",
"fixFirstAction": "Keep reducing when the trade has paid you, then write what triggered each reduction.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 58,
"count": 6,
"tradeRate": 0.666667
},
{
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70,
"count": 4,
"tradeRate": 0.444444
},
{
"id": "structured_partial_exit_sequence",
"kind": "strength",
"category": "exit_structure",
"label": "Structured partial exits",
"summary": "The position was reduced in stages and eventually returned to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can explain whether those exits matched levels or a fade.",
"fixFirstAction": "Keep writing down the reason for each partial so the staged exit stays intentional.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 66,
"count": 2,
"tradeRate": 0.222222
},
{
"id": "controlled_scale_in",
"kind": "strength",
"category": "size_discipline",
"label": "Controlled scale-in",
"summary": "The trade added size without adding at an adverse execution price versus the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart data is needed before saying the adds were near support or strength.",
"fixFirstAction": "Keep requiring the trade to prove itself before adding size.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 64,
"count": 2,
"tradeRate": 0.222222
},
{
"id": "early_position_risk_reduction",
"kind": "strength",
"category": "risk_reduction",
"label": "Reduced risk early",
"summary": "The first reduction happened quickly and took off a meaningful part of the open position.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context can explain whether that reduction came before a fade.",
"fixFirstAction": "Keep using a first reduction that actually changes risk when the trade needs protection.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 63,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "consistent_share_sizing",
"kind": "strength",
"category": "size_discipline",
"label": "Consistent position sizing",
"summary": "Entry-side execution sizes stayed within a tighter range, making the trade easier to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "The app still needs your intended risk plan before judging exact size.",
"fixFirstAction": "Keep using similar size when the setup and risk are similar.",
"severity": "low",
"confidence": "high",
"priorityScore": 48,
"count": 1,
"tradeRate": 0.111111
}
],
"primaryFocusCounts": [
{
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70,
"count": 2,
"tradeRate": 0.222222
},
{
"id": "losing_reduction_sequence",
"kind": "risk",
"category": "pnl",
"label": "Reduced after price was against the entry",
"summary": "At least one reduction happened at a price worse than the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context is needed before saying the chart failed or support broke.",
"fixFirstAction": "Replay the hold before that reduction and decide where risk should have been reduced sooner.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 65,
"count": 2,
"tradeRate": 0.222222
},
{
"id": "open_position_leftover",
"kind": "risk",
"category": "exit_structure",
"label": "Trade was left open",
"summary": "The import ended while shares were still open, so the trade cannot be judged as a fully closed review yet.",
"behaviorState": "certified_detection",
"behaviorTone": "risk",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Later executions may close the position outside the imported window.",
"fixFirstAction": "Wait for a closing execution or mark the position as still open before using it as a closed-trade lesson.",
"severity": "high",
"confidence": "high",
"priorityScore": 86,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "structured_partial_exit_sequence",
"kind": "strength",
"category": "exit_structure",
"label": "Structured partial exits",
"summary": "The position was reduced in stages and eventually returned to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can explain whether those exits matched levels or a fade.",
"fixFirstAction": "Keep writing down the reason for each partial so the staged exit stays intentional.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 66,
"count": 1,
"tradeRate": 0.111111
},
{
"id": "inconsistent_share_sizing",
"kind": "risk",
"category": "size_discipline",
"label": "Inconsistent position sizing",
"summary": "Share size changed enough that risk may have been harder to control consistently.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "The app needs your intended risk plan before calling any exact size wrong.",
"fixFirstAction": "Set one sizing rule for similar setups and compare future trades against it.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 60,
"count": 1,
"tradeRate": 0.111111
}
],
"trades": [
{
"tradeIndex": 1,
"requestIndex": 0,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "market_open",
"entrySessionBucket": "market_open",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 09:35:00 ET",
"entryHourEt": 9,
"entryHourLabelEt": "09:00-09:59 ET",
"sessionExposure": [
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 9,
"hourLabelEt": "09:00-09:59 ET",
"startTimestamp": "2026-05-01T13:35:00.000Z",
"endTimestamp": "2026-05-01T14:00:00.000Z",
"durationMinutes": 25
},
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 10,
"hourLabelEt": "10:00-10:59 ET",
"startTimestamp": "2026-05-01T14:00:00.000Z",
"endTimestamp": "2026-05-01T14:20:00.000Z",
"durationMinutes": 20
}
],
"heldSessionBuckets": [
"market_open"
],
"heldHourBucketsEt": [
"09:00-09:59 ET",
"10:00-10:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 2,
"grossRealizedPnl": 50,
"grossRealizedPnlPctOfEntryNotional": 0.05,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 100,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 0,
"reductionCount": 1,
"durationSeconds": 2700,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70
},
"topRisk": null,
"topStrength": {
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70
},
"warnings": []
},
{
"tradeIndex": 2,
"requestIndex": 1,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "midday",
"entrySessionBucket": "midday",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 11:10:00 ET",
"entryHourEt": 11,
"entryHourLabelEt": "11:00-11:59 ET",
"sessionExposure": [
{
"sessionBucket": "midday",
"sessionDateEt": "2026-05-01",
"hourEt": 11,
"hourLabelEt": "11:00-11:59 ET",
"startTimestamp": "2026-05-01T15:10:00.000Z",
"endTimestamp": "2026-05-01T15:50:00.000Z",
"durationMinutes": 40
}
],
"heldSessionBuckets": [
"midday"
],
"heldHourBucketsEt": [
"11:00-11:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 2,
"grossRealizedPnl": -42,
"grossRealizedPnlPctOfEntryNotional": -0.027451,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 150,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 0,
"reductionCount": 1,
"durationSeconds": 2400,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "losing_reduction_sequence",
"kind": "risk",
"category": "pnl",
"label": "Reduced after price was against the entry",
"summary": "At least one reduction happened at a price worse than the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context is needed before saying the chart failed or support broke.",
"fixFirstAction": "Replay the hold before that reduction and decide where risk should have been reduced sooner.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 65
},
"topRisk": {
"id": "losing_reduction_sequence",
"kind": "risk",
"category": "pnl",
"label": "Reduced after price was against the entry",
"summary": "At least one reduction happened at a price worse than the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context is needed before saying the chart failed or support broke.",
"fixFirstAction": "Replay the hold before that reduction and decide where risk should have been reduced sooner.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 65
},
"topStrength": {
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70
},
"warnings": []
},
{
"tradeIndex": 3,
"requestIndex": 2,
"symbol": "EFGH",
"tradeDirection": "short",
"sessionDate": "2026-05-01",
"sessionBucket": "market_open",
"entrySessionBucket": "market_open",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 09:40:00 ET",
"entryHourEt": 9,
"entryHourLabelEt": "09:00-09:59 ET",
"sessionExposure": [
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 9,
"hourLabelEt": "09:00-09:59 ET",
"startTimestamp": "2026-05-01T13:40:00.000Z",
"endTimestamp": "2026-05-01T14:00:00.000Z",
"durationMinutes": 20
},
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 10,
"hourLabelEt": "10:00-10:59 ET",
"startTimestamp": "2026-05-01T14:00:00.000Z",
"endTimestamp": "2026-05-01T14:28:00.000Z",
"durationMinutes": 28
}
],
"heldSessionBuckets": [
"market_open"
],
"heldHourBucketsEt": [
"09:00-09:59 ET",
"10:00-10:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 2,
"grossRealizedPnl": 44,
"grossRealizedPnlPctOfEntryNotional": 0.027363,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 80,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 0,
"reductionCount": 1,
"durationSeconds": 2880,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70
},
"topRisk": null,
"topStrength": {
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70
},
"warnings": []
},
{
"tradeIndex": 4,
"requestIndex": 3,
"symbol": "EFGH",
"tradeDirection": "short",
"sessionDate": "2026-05-01",
"sessionBucket": "midday",
"entrySessionBucket": "midday",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 11:10:00 ET",
"entryHourEt": 11,
"entryHourLabelEt": "11:00-11:59 ET",
"sessionExposure": [
{
"sessionBucket": "midday",
"sessionDateEt": "2026-05-01",
"hourEt": 11,
"hourLabelEt": "11:00-11:59 ET",
"startTimestamp": "2026-05-01T15:10:00.000Z",
"endTimestamp": "2026-05-01T15:45:00.000Z",
"durationMinutes": 35
}
],
"heldSessionBuckets": [
"midday"
],
"heldHourBucketsEt": [
"11:00-11:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 2,
"grossRealizedPnl": -78,
"grossRealizedPnlPctOfEntryNotional": -0.0325,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 120,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 0,
"reductionCount": 1,
"durationSeconds": 2100,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "losing_reduction_sequence",
"kind": "risk",
"category": "pnl",
"label": "Reduced after price was against the entry",
"summary": "At least one reduction happened at a price worse than the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context is needed before saying the chart failed or support broke.",
"fixFirstAction": "Replay the hold before that reduction and decide where risk should have been reduced sooner.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 65
},
"topRisk": {
"id": "losing_reduction_sequence",
"kind": "risk",
"category": "pnl",
"label": "Reduced after price was against the entry",
"summary": "At least one reduction happened at a price worse than the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Market context is needed before saying the chart failed or support broke.",
"fixFirstAction": "Replay the hold before that reduction and decide where risk should have been reduced sooner.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 65
},
"topStrength": {
"id": "clean_single_entry_full_exit",
"kind": "strength",
"category": "position_construction",
"label": "Clean entry and full exit",
"summary": "The trade used one entry-side execution and one full exit, which makes the decision path easy to review.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can judge setup quality, but the clean execution structure is visible from executions.",
"fixFirstAction": "Keep this simple structure when the setup does not need extra adds or partials.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 70
},
"warnings": []
},
{
"tradeIndex": 5,
"requestIndex": 4,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "midday",
"entrySessionBucket": "midday",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 14:45:00 ET",
"entryHourEt": 14,
"entryHourLabelEt": "14:00-14:59 ET",
"sessionExposure": [
{
"sessionBucket": "midday",
"sessionDateEt": "2026-05-01",
"hourEt": 14,
"hourLabelEt": "14:00-14:59 ET",
"startTimestamp": "2026-05-01T18:45:00.000Z",
"endTimestamp": "2026-05-01T19:00:00.000Z",
"durationMinutes": 15
},
{
"sessionBucket": "midday",
"sessionDateEt": "2026-05-01",
"hourEt": 15,
"hourLabelEt": "15:00-15:59 ET",
"startTimestamp": "2026-05-01T19:00:00.000Z",
"endTimestamp": "2026-05-01T19:20:00.000Z",
"durationMinutes": 20
}
],
"heldSessionBuckets": [
"midday"
],
"heldHourBucketsEt": [
"14:00-14:59 ET",
"15:00-15:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 2,
"grossRealizedPnl": 10.4,
"grossRealizedPnlPctOfEntryNotional": 0.010297,
"closedToFlat": false,
"isOpenPosition": true,
"maxPositionSize": 100,
"finalPositionSize": 60,
"addCountAfterInitialEntry": 0,
"reductionCount": 1,
"durationSeconds": 2100,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "open_position_leftover",
"kind": "risk",
"category": "exit_structure",
"label": "Trade was left open",
"summary": "The import ended while shares were still open, so the trade cannot be judged as a fully closed review yet.",
"behaviorState": "certified_detection",
"behaviorTone": "risk",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Later executions may close the position outside the imported window.",
"fixFirstAction": "Wait for a closing execution or mark the position as still open before using it as a closed-trade lesson.",
"severity": "high",
"confidence": "high",
"priorityScore": 86
},
"topRisk": {
"id": "open_position_leftover",
"kind": "risk",
"category": "exit_structure",
"label": "Trade was left open",
"summary": "The import ended while shares were still open, so the trade cannot be judged as a fully closed review yet.",
"behaviorState": "certified_detection",
"behaviorTone": "risk",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Later executions may close the position outside the imported window.",
"fixFirstAction": "Wait for a closing execution or mark the position as still open before using it as a closed-trade lesson.",
"severity": "high",
"confidence": "high",
"priorityScore": 86
},
"topStrength": {
"id": "profitable_reduction_sequence",
"kind": "strength",
"category": "pnl",
"label": "Reduced at favorable prices",
"summary": "Each reduction happened at a favorable price versus the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart data is needed before saying the reductions were near resistance or before a fade.",
"fixFirstAction": "Keep reducing when the trade has paid you, then write what triggered each reduction.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 58
},
"warnings": [
"executions: Execution sequence leaves an open position; full-exit patterns may not apply."
]
},
{
"tradeIndex": 6,
"requestIndex": 5,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "market_open",
"entrySessionBucket": "market_open",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 09:33:00 ET",
"entryHourEt": 9,
"entryHourLabelEt": "09:00-09:59 ET",
"sessionExposure": [
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 9,
"hourLabelEt": "09:00-09:59 ET",
"startTimestamp": "2026-05-01T13:33:00.000Z",
"endTimestamp": "2026-05-01T14:00:00.000Z",
"durationMinutes": 27
},
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 10,
"hourLabelEt": "10:00-10:59 ET",
"startTimestamp": "2026-05-01T14:00:00.000Z",
"endTimestamp": "2026-05-01T14:35:00.000Z",
"durationMinutes": 35
}
],
"heldSessionBuckets": [
"market_open"
],
"heldHourBucketsEt": [
"09:00-09:59 ET",
"10:00-10:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 3,
"grossRealizedPnl": 66,
"grossRealizedPnlPctOfEntryNotional": 0.033,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 200,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 0,
"reductionCount": 2,
"durationSeconds": 3720,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "structured_partial_exit_sequence",
"kind": "strength",
"category": "exit_structure",
"label": "Structured partial exits",
"summary": "The position was reduced in stages and eventually returned to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can explain whether those exits matched levels or a fade.",
"fixFirstAction": "Keep writing down the reason for each partial so the staged exit stays intentional.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 66
},
"topRisk": null,
"topStrength": {
"id": "structured_partial_exit_sequence",
"kind": "strength",
"category": "exit_structure",
"label": "Structured partial exits",
"summary": "The position was reduced in stages and eventually returned to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can explain whether those exits matched levels or a fade.",
"fixFirstAction": "Keep writing down the reason for each partial so the staged exit stays intentional.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 66
},
"warnings": []
},
{
"tradeIndex": 7,
"requestIndex": 6,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "market_open",
"entrySessionBucket": "market_open",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 09:30:00 ET",
"entryHourEt": 9,
"entryHourLabelEt": "09:00-09:59 ET",
"sessionExposure": [
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 9,
"hourLabelEt": "09:00-09:59 ET",
"startTimestamp": "2026-05-01T13:30:00.000Z",
"endTimestamp": "2026-05-01T14:00:00.000Z",
"durationMinutes": 30
},
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 10,
"hourLabelEt": "10:00-10:59 ET",
"startTimestamp": "2026-05-01T14:00:00.000Z",
"endTimestamp": "2026-05-01T14:05:00.000Z",
"durationMinutes": 5
}
],
"heldSessionBuckets": [
"market_open"
],
"heldHourBucketsEt": [
"09:00-09:59 ET",
"10:00-10:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 5,
"grossRealizedPnl": -400,
"grossRealizedPnlPctOfEntryNotional": -0.108108,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 400,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 3,
"reductionCount": 1,
"durationSeconds": 2100,
"adversePriceAddCount": 3,
"primaryFocus": null,
"topRisk": null,
"topStrength": {
"id": "decisive_full_exit",
"kind": "strength",
"category": "exit_structure",
"label": "Closed the trade cleanly",
"summary": "The execution sequence includes a clear final exit that returned the position to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart data is needed before saying the exit was near the best part of the move.",
"fixFirstAction": "Keep closing the trade cleanly when the review plan says the position should be flat.",
"severity": "low",
"confidence": "high",
"priorityScore": 52
},
"warnings": []
},
{
"tradeIndex": 8,
"requestIndex": 7,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "market_open",
"entrySessionBucket": "market_open",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 09:31:00 ET",
"entryHourEt": 9,
"entryHourLabelEt": "09:00-09:59 ET",
"sessionExposure": [
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 9,
"hourLabelEt": "09:00-09:59 ET",
"startTimestamp": "2026-05-01T13:31:00.000Z",
"endTimestamp": "2026-05-01T14:00:00.000Z",
"durationMinutes": 29
},
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 10,
"hourLabelEt": "10:00-10:59 ET",
"startTimestamp": "2026-05-01T14:00:00.000Z",
"endTimestamp": "2026-05-01T14:15:00.000Z",
"durationMinutes": 15
}
],
"heldSessionBuckets": [
"market_open"
],
"heldHourBucketsEt": [
"09:00-09:59 ET",
"10:00-10:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 3,
"grossRealizedPnl": 110.4,
"grossRealizedPnlPctOfEntryNotional": 0.034483,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 320,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 1,
"reductionCount": 1,
"durationSeconds": 2640,
"adversePriceAddCount": 0,
"primaryFocus": {
"id": "inconsistent_share_sizing",
"kind": "risk",
"category": "size_discipline",
"label": "Inconsistent position sizing",
"summary": "Share size changed enough that risk may have been harder to control consistently.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "The app needs your intended risk plan before calling any exact size wrong.",
"fixFirstAction": "Set one sizing rule for similar setups and compare future trades against it.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 60
},
"topRisk": {
"id": "inconsistent_share_sizing",
"kind": "risk",
"category": "size_discipline",
"label": "Inconsistent position sizing",
"summary": "Share size changed enough that risk may have been harder to control consistently.",
"behaviorState": "certified_detection",
"behaviorTone": "warning",
"opportunityType": "risk_to_reduce",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "The app needs your intended risk plan before calling any exact size wrong.",
"fixFirstAction": "Set one sizing rule for similar setups and compare future trades against it.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 60
},
"topStrength": {
"id": "controlled_scale_in",
"kind": "strength",
"category": "size_discipline",
"label": "Controlled scale-in",
"summary": "The trade added size without adding at an adverse execution price versus the prior average entry.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart data is needed before saying the adds were near support or strength.",
"fixFirstAction": "Keep requiring the trade to prove itself before adding size.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 64
},
"warnings": []
},
{
"tradeIndex": 9,
"requestIndex": 8,
"symbol": "ABCD",
"tradeDirection": "long",
"sessionDate": "2026-05-01",
"sessionBucket": "market_open",
"entrySessionBucket": "market_open",
"entrySessionDateEt": "2026-05-01",
"entryTimeEt": "2026-05-01 09:30:00 ET",
"entryHourEt": 9,
"entryHourLabelEt": "09:00-09:59 ET",
"sessionExposure": [
{
"sessionBucket": "market_open",
"sessionDateEt": "2026-05-01",
"hourEt": 9,
"hourLabelEt": "09:00-09:59 ET",
"startTimestamp": "2026-05-01T13:30:00.000Z",
"endTimestamp": "2026-05-01T13:30:12.000Z",
"durationMinutes": 0.2
}
],
"heldSessionBuckets": [
"market_open"
],
"heldHourBucketsEt": [
"09:00-09:59 ET"
],
"heldPremarketIntoOpen": false,
"heldOpenIntoMidday": false,
"heldMiddayIntoPostmarket": false,
"heldPostmarketIntoOvernight": false,
"heldOvernight": false,
"executionCount": 4,
"grossRealizedPnl": 3.49995,
"grossRealizedPnlPctOfEntryNotional": 0.002332,
"closedToFlat": true,
"isOpenPosition": false,
"maxPositionSize": 150,
"finalPositionSize": 0,
"addCountAfterInitialEntry": 1,
"reductionCount": 2,
"durationSeconds": 12,
"adversePriceAddCount": 0,
"primaryFocus": null,
"topRisk": null,
"topStrength": {
"id": "structured_partial_exit_sequence",
"kind": "strength",
"category": "exit_structure",
"label": "Structured partial exits",
"summary": "The position was reduced in stages and eventually returned to flat.",
"behaviorState": "certified_detection",
"behaviorTone": "strength",
"opportunityType": "strength_to_repeat",
"evidenceChannel": "execution_only",
"canDrivePrimaryConclusion": true,
"missingDataSentence": "Chart evidence can explain whether those exits matched levels or a fade.",
"fixFirstAction": "Keep writing down the reason for each partial so the staged exit stays intentional.",
"severity": "moderate",
"confidence": "high",
"priorityScore": 66
},
"warnings": []
}
],
"charts": {
"grossPnlByTrade": {
"id": "gross_pnl_by_trade",
"kind": "bar",
"title": "Gross P/L By Trade",
"total": -235.70005,
"empty": false,
"data": [
{
"id": "trade_1",
"label": "#1 ABCD",
"value": 50,
"pctOfTotal": null,
"category": "long",
"tone": "positive"
},
{
"id": "trade_2",
"label": "#2 ABCD",
"value": -42,
"pctOfTotal": null,
"category": "long",
"tone": "negative"
},
{
"id": "trade_3",
"label": "#3 EFGH",
"value": 44,
"pctOfTotal": null,
"category": "short",
"tone": "positive"
},
{
"id": "trade_4",
"label": "#4 EFGH",
"value": -78,
"pctOfTotal": null,
"category": "short",
"tone": "negative"
},
{
"id": "trade_5",
"label": "#5 ABCD",
"value": 10.4,
"pctOfTotal": null,
"category": "long",
"tone": "positive"
},
{
"id": "trade_6",
"label": "#6 ABCD",
"value": 66,
"pctOfTotal": null,
"category": "long",
"tone": "positive"
},
{
"id": "trade_7",
"label": "#7 ABCD",
"value": -400,
"pctOfTotal": null,
"category": "long",
"tone": "negative"
},
{
"id": "trade_8",
"label": "#8 ABCD",
"value": 110.4,
"pctOfTotal": null,
"category": "long",
"tone": "positive"
},
{
"id": "trade_9",
"label": "#9 ABCD",
"value": 3.49995,
"pctOfTotal": null,
"category": "long",
"tone": "positive"
}
]
},
"winLossDonut": {
"id": "gross_win_loss_flat",
"kind": "donut",
"title": "Gross Win / Loss / Flat",
"total": 9,
"empty": false,
"data": [
{
"id": "gross_winners",
"label": "Winners",
"value": 6,
"pctOfTotal": 0.666667,
"tone": "positive"
},
{
"id": "gross_losers",
"label": "Losers",
"value": 3,
"pctOfTotal": 0.333333,
"tone": "negative"
},
{
"id": "gross_flat",
"label": "Flat",
"value": 0,
"pctOfTotal": 0,
"tone": "neutral"
}
]
},
"openClosedDonut": {
"id": "open_closed_lifecycle",
"kind": "donut",
"title": "Closed Flat / Left Open",
"total": 9,
"empty": false,
"data": [
{
"id": "closed_to_flat",
"label": "Closed Flat",
"value": 8,
"pctOfTotal": 0.888889,
"tone": "positive"
},
{
"id": "open_position",
"label": "Left Open",
"value": 1,
"pctOfTotal": 0.111111,
"tone": "warning"
}
]
},
"topRisksBar": {
"id": "top_risks",
"kind": "bar",
"title": "Top Execution Risks",
"total": 8,
"empty": false,
"data": [
{
"id": "losing_reduction_sequence",
"label": "Reduced after price was against the entry",
"value": 3,
"pctOfTotal": 0.375,
"category": "pnl",
"tone": "warning"
},
{
"id": "multiple_adds_before_first_reduction",
"label": "Added several times before reducing size",
"value": 1,
"pctOfTotal": 0.125,
"category": "risk_reduction",
"tone": "negative"
},
{
"id": "open_position_leftover",
"label": "Trade was left open",
"value": 1,
"pctOfTotal": 0.125,
"category": "exit_structure",
"tone": "negative"
},
{
"id": "overbuilt_position",
"label": "Built too much size in a losing trade",
"value": 1,
"pctOfTotal": 0.125,
"category": "position_construction",
"tone": "negative"
},
{
"id": "all_or_nothing_exit_after_many_adds",
"label": "Many adds before one large exit",
"value": 1,
"pctOfTotal": 0.125,
"category": "exit_structure",
"tone": "warning"
},
{
"id": "inconsistent_share_sizing",
"label": "Inconsistent position sizing",
"value": 1,
"pctOfTotal": 0.125,
"category": "size_discipline",
"tone": "warning"
}
]
},
"topStrengthsBar": {
"id": "top_strengths",
"kind": "bar",
"title": "Top Execution Strengths",
"total": 24,
"empty": false,
"data": [
{
"id": "decisive_full_exit",
"label": "Closed the trade cleanly",
"value": 8,
"pctOfTotal": 0.333333,
"category": "exit_structure",
"tone": "positive"
},
{
"id": "profitable_reduction_sequence",
"label": "Reduced at favorable prices",
"value": 6,
"pctOfTotal": 0.25,
"category": "pnl",
"tone": "positive"
},
{
"id": "clean_single_entry_full_exit",
"label": "Clean entry and full exit",
"value": 4,
"pctOfTotal": 0.166667,
"category": "position_construction",
"tone": "positive"
},
{
"id": "structured_partial_exit_sequence",
"label": "Structured partial exits",
"value": 2,
"pctOfTotal": 0.083333,
"category": "exit_structure",
"tone": "positive"
},
{
"id": "controlled_scale_in",
"label": "Controlled scale-in",
"value": 2,
"pctOfTotal": 0.083333,
"category": "size_discipline",
"tone": "positive"
},
{
"id": "early_position_risk_reduction",
"label": "Reduced risk early",
"value": 1,
"pctOfTotal": 0.041667,
"category": "risk_reduction",
"tone": "positive"
},
{
"id": "consistent_share_sizing",
"label": "Consistent position sizing",
"value": 1,
"pctOfTotal": 0.041667,
"category": "size_discipline",
"tone": "positive"
}
]
},
"primaryFocusDistribution": {
"id": "primary_focus_distribution",
"kind": "distribution",
"title": "Primary Focus Distribution",
"total": 7,
"empty": false,
"data": [
{
"id": "clean_single_entry_full_exit",
"label": "Clean entry and full exit",
"value": 2,
"pctOfTotal": 0.285714,
"category": "position_construction",
"tone": "positive"
},
{
"id": "losing_reduction_sequence",
"label": "Reduced after price was against the entry",
"value": 2,
"pctOfTotal": 0.285714,
"category": "pnl",
"tone": "warning"
},
{
"id": "open_position_leftover",
"label": "Trade was left open",
"value": 1,
"pctOfTotal": 0.142857,
"category": "exit_structure",
"tone": "negative"
},
{
"id": "structured_partial_exit_sequence",
"label": "Structured partial exits",
"value": 1,
"pctOfTotal": 0.142857,
"category": "exit_structure",
"tone": "positive"
},
{
"id": "inconsistent_share_sizing",
"label": "Inconsistent position sizing",
"value": 1,
"pctOfTotal": 0.142857,
"category": "size_discipline",
"tone": "warning"
}
]
},
"riskCategoryDistribution": {
"id": "risk_category_distribution",
"kind": "bar",
"title": "Risk Categories",
"total": 8,
"empty": false,
"data": [
{
"id": "position_construction",
"label": "Position Construction",
"value": 1,
"pctOfTotal": 0.125,
"category": "position_construction",
"tone": "warning"
},
{
"id": "size_discipline",
"label": "Size Discipline",
"value": 1,
"pctOfTotal": 0.125,
"category": "size_discipline",
"tone": "warning"
},
{
"id": "risk_reduction",
"label": "Risk Reduction",
"value": 1,
"pctOfTotal": 0.125,
"category": "risk_reduction",
"tone": "warning"
},
{
"id": "exit_structure",
"label": "Exit Structure",
"value": 2,
"pctOfTotal": 0.25,
"category": "exit_structure",
"tone": "warning"
},
{
"id": "pnl",
"label": "P/L",
"value": 3,
"pctOfTotal": 0.375,
"category": "pnl",
"tone": "warning"
}
]
},
"strengthCategoryDistribution": {
"id": "strength_category_distribution",
"kind": "bar",
"title": "Strength Categories",
"total": 24,
"empty": false,
"data": [
{
"id": "position_construction",
"label": "Position Construction",
"value": 4,
"pctOfTotal": 0.166667,
"category": "position_construction",
"tone": "positive"
},
{
"id": "size_discipline",
"label": "Size Discipline",
"value": 3,
"pctOfTotal": 0.125,
"category": "size_discipline",
"tone": "positive"
},
{
"id": "risk_reduction",
"label": "Risk Reduction",
"value": 1,
"pctOfTotal": 0.041667,
"category": "risk_reduction",
"tone": "positive"
},
{
"id": "exit_structure",
"label": "Exit Structure",
"value": 10,
"pctOfTotal": 0.416667,
"category": "exit_structure",
"tone": "positive"
},
{
"id": "pnl",
"label": "P/L",
"value": 6,
"pctOfTotal": 0.25,
"category": "pnl",
"tone": "positive"
}
]
},
"durationHistogram": {
"id": "duration_histogram",
"kind": "histogram",
"title": "Trade Duration",
"total": 9,
"empty": false,
"data": [
{
"id": "under_1m",
"label": "< 1m",
"value": 1,
"pctOfTotal": 0.111111,
"tone": "info"
},
{
"id": "15m_to_60m",
"label": "15m-60m",
"value": 7,
"pctOfTotal": 0.777778,
"tone": "info"
},
{
"id": "over_60m",
"label": "> 60m",
"value": 1,
"pctOfTotal": 0.111111,
"tone": "info"
}
]
},
"behaviorRiskRates": {
"id": "behavior_risk_rates",
"kind": "bar",
"title": "Key Execution Risk Rates",
"total": 9,
"empty": false,
"data": [
{
"id": "size_expansion_after_adverse_price",
"label": "Review adds that need chart data",
"value": 1,
"category": "Review prompt",
"tone": "info",
"pctOfTotal": 0.111111
},
{
"id": "multiple_adds_before_first_reduction",
"label": "Added several times before reducing size",
"value": 1,
"category": "Certified execution evidence",
"tone": "warning",
"pctOfTotal": 0.111111
},
{
"id": "open_position_leftover",
"label": "Trade was left open",
"value": 1,
"category": "Certified execution evidence",
"tone": "warning",
"pctOfTotal": 0.111111
},
{
"id": "rapid_fire_execution_cluster",
"label": "Review fast execution clusters",
"value": 1,
"category": "Review prompt",
"tone": "info",
"pctOfTotal": 0.111111
},
{
"id": "inconsistent_share_sizing",
"label": "Inconsistent position sizing",
"value": 1,
"category": "Certified execution evidence",
"tone": "warning",
"pctOfTotal": 0.111111
},
{
"id": "large_late_add",
"label": "Added meaningful size late in the trade",
"value": 0,
"category": "Certified execution evidence",
"tone": "neutral",
"pctOfTotal": 0
},
{
"id": "small_first_risk_reduction",
"label": "First reduction did not take much risk off",
"value": 0,
"category": "Certified execution evidence",
"tone": "neutral",
"pctOfTotal": 0
},
{
"id": "all_or_nothing_exit_after_many_adds",
"label": "Many adds before one large exit",
"value": 1,
"category": "Certified execution evidence",
"tone": "warning",
"pctOfTotal": 0.111111
},
{
"id": "losing_reduction_sequence",
"label": "Reduced after price was against the entry",
"value": 3,
"category": "Certified execution evidence",
"tone": "warning",
"pctOfTotal": 0.333333
}
]
},
"entrySessionPerformance": {
"id": "entry_session_performance",
"kind": "bar",
"title": "Total Entry Session P/L",
"total": 9,
"empty": false,
"data": [
{
"id": "market_open",
"label": "market_open",
"value": -126.10005,
"pctOfTotal": null,
"category": "6 trades",
"tone": "negative"
},
{
"id": "midday",
"label": "midday",
"value": -109.6,
"pctOfTotal": null,
"category": "3 trades",
"tone": "negative"
}
]
},
"entryHourPerformance": {
"id": "entry_hour_performance",
"kind": "bar",
"title": "Total Entry Hour P/L",
"total": 9,
"empty": false,
"data": [
{
"id": "09",
"label": "09:00-09:59 ET",
"value": -126.10005,
"pctOfTotal": null,
"category": "6 trades",
"tone": "negative"
},
{
"id": "11",
"label": "11:00-11:59 ET",
"value": -120,
"pctOfTotal": null,
"category": "2 trades",
"tone": "negative"
},
{
"id": "14",
"label": "14:00-14:59 ET",
"value": 10.4,
"pctOfTotal": null,
"category": "1 trades",
"tone": "positive"
}
]
}
},
"sourceBatch": {
"contractVersion": "batch_execution_feedback_v1",
"validateOnly": false,
"failureCounts": {},
"failures": []
},
"warnings": [
"executions: Execution sequence leaves an open position; full-exit patterns may not apply."
],
"limitations": [
"This report aggregates execution-feedback summaries only.",
"Gross P/L excludes commissions, fees, borrow costs, and slippage.",
"Market context, support/resistance, VWAP/EMA, and candle structure were not used unless explicitly shown in a market-context section.",
"Small sample sizes should be treated as review prompts, not statistical proof.",
"Trader identity and long-term behavior conclusions require more reviewed trades."
]
}