CSV output and data analysis
BrokerBridge records every stage of the trading pipeline as CSV files. This data powers post-session analysis, performance tracking, and future reinforcement learning.
Directory structure
reports/
2026-03-29/
proposals.csv
decisions.csv
approvals.csv
executions.csv
positions.csv
pnl.csvproposals.csv
Every trade proposal generated by the pipeline.
| Column | Type | Description |
|---|---|---|
| timestamp | ISO 8601 | When the proposal was created |
| proposal_id | string | Unique proposal identifier |
| symbol | string | Ticker symbol |
| direction | string | "long" or "short" |
| setup_type | string | Setup category |
| conviction | float | AI confidence (0.0 - 1.0) |
| entry_price | float | Suggested entry price |
| stop_price | float | Stop loss level |
| target_price | float | Take profit level |
| thesis_summary | string | AI reasoning text |
| evidence_sources | string | Semicolon-separated source names |
| composite_score | float | Overall signal strength (0.0 - 1.0) |
decisions.csv
AI decisions on each proposal.
| Column | Type | Description |
|---|---|---|
| timestamp | ISO 8601 | When the AI decided |
| proposal_id | string | Links to proposals.csv |
| decision | string | "approve" or "reject" |
| ai_provider | string | Provider name |
| model_used | string | Specific model ID |
| confidence | float | AI confidence (0.0 - 1.0) |
| reasoning_summary | string | Text explanation |
| suggested_size | int | AI-suggested share count |
| risk_reward_ratio | float | Calculated R:R ratio |
Analyzing your data
python
import pandas as pd
proposals = pd.read_csv("reports/2026-03-29/proposals.csv")
pnl = pd.read_csv("reports/2026-03-29/pnl.csv")
# Win rate
wins = pnl[pnl["net_pnl"] > 0]
print(f"Win rate: {len(wins)/len(pnl):.1%}")
# Average confidence by decision
decisions = pd.read_csv("reports/2026-03-29/decisions.csv")
print(decisions.groupby("decision")["confidence"].mean())