Projects

Software, tools, and research infrastructure.

This page covers the code that makes research possible: pipelines, validators, reconciliation harnesses, and analytics. Formal empirical studies live in the research archive.

Repositories

Pinned repositories

Pinned manually so that important work is not reordered by recent activity. Live statistics are read from GitHub's public API when a repository URL exists, with a static fallback if the request fails or is rate-limited.

trading-analytics-dashboard

Consolidated performance and risk view across multiple brokerage accounts.

portfolio-analyticsbroker-apirisk
PythonPrivate repository

Repository URL to be added — currently private repository.

futures-data-validation

Validation utilities for futures price history and continuous-contract construction.

futuresdata-qualityvalidation
PythonCode available on request

Repository URL to be added — currently code available on request.

backtest-reconciliation-harness

Compares two backtest implementations and attributes every daily difference.

backtestingreproducibilityreconciliation
PythonCode available on request

Repository URL to be added — currently code available on request.

research-chart-library

Chart helpers that refuse to draw a figure without period, units, and cost labels.

visualizationresearch-tooling
PythonCode available on request

Repository URL to be added — currently code available on request.

broker-report-importer

Parses historical broker statements into a normalized trade and cash-flow ledger.

etlbroker-dataledger
PythonPrivate repository

Repository URL to be added — currently private repository.

portfolio-risk-calculator

Risk and drawdown metrics with explicit annualization and cost conventions.

riskperformance-metrics
PythonCode available on request

Repository URL to be added — currently code available on request.

market-data-pipeline

Scheduled ingestion and cleaning of daily market data into a research-ready store.

data-engineeringpipelinemarket-data
PythonCode available on request

Repository URL to be added — currently code available on request.

GitHub profile URL to be added. Contribution activity is not a measure of research quality and is not displayed as one.

IN DEVELOPMENTportfolio-analytics · broker-api · risk

trading-analytics-dashboard

Consolidated performance and risk view across multiple brokerage accounts.

PythonpandasSQLBroker APIsDashboard development
RepositorypendingDemopending

Problem

Performance read from account balances mixes trading results with deposits and withdrawals, and exposure viewed per broker hides the real portfolio.

Solution

An immutable ledger of trades and cash flows drives a reconstructed daily NAV series, from which every performance and risk metric is derived and reconciled back to broker records.

Architecture

Broker connectors and statement parsers feed a normalized ledger; a metrics layer computes NAV, exposure, and risk; a dashboard layer renders views. Reconciliation and data-quality checks run as separate jobs with audit logs.

Key features

  • Daily NAV reconstruction with cash-flow separation
  • Realized and unrealized P&L
  • Drawdown, recovery time, CAGR, Sharpe
  • Exposure by asset class and strategy
  • Broker reconciliation break reports
  • Data-quality checks and audit logging

Known limitations

  • Broker API field semantics differ by provider
  • Historical statement formats need per-format parsers
  • Private data prevents external verification

Future improvements

  • Strategy tagging at order entry
  • Correlation monitoring between strategies
  • Capital-allocation scenarios
Screenshots: [SCREENSHOTS TO SUPPLY — synthetic data only]
WORKINGfutures · data-quality · validation

futures-data-validation

Validation utilities for futures price history and continuous-contract construction.

PythonpandasNumPy
Repositorypending

Problem

Futures research fails quietly when roll dates, holiday calendars, or stale settlements are wrong, because the resulting series still looks plausible.

Solution

A rule-based validation suite that checks calendars, price limits, volume and open-interest transitions, and roll inventories, and reports failures per market and per date.

Architecture

A check registry runs independent validators over a normalized price panel and emits a structured report that can gate downstream research runs.

Key features

  • Exchange-calendar alignment checks
  • Stale and duplicate quote detection
  • Roll-date inventory and transition checks
  • Outlier screening against contract price limits
  • Structured, machine-readable failure reports

Known limitations

  • Calendar coverage depends on maintained exchange metadata
  • Thresholds require per-market tuning

Future improvements

  • Wider exchange coverage
  • Report diffing between data vintages
Screenshots: [SCREENSHOTS TO SUPPLY]
WORKINGbacktesting · reproducibility · reconciliation

backtest-reconciliation-harness

Compares two backtest implementations and attributes every daily difference.

PythonpandasNumPy
Repositorypending

Problem

When two implementations of the same strategy disagree, the difference is usually blamed on the platform rather than located precisely.

Solution

A comparison harness that differences daily return series, applies tolerance thresholds, and attributes each break to signal, sizing, timing, rounding, roll, or accounting.

Architecture

Two output files are normalized to a common schema, differenced, and passed through an attribution rule set that produces a break report and tolerance table.

Key features

  • Daily return differencing with tolerance bands
  • Break attribution by component
  • Per-market reconciliation summaries
  • Deterministic, re-runnable reports

Known limitations

  • Attribution rules are heuristics, not proofs
  • Requires both systems to export comparable daily detail

Future improvements

  • Automatic tolerance calibration
  • Regression tracking across code versions
Screenshots: [SCREENSHOTS TO SUPPLY]
PROTOTYPEvisualization · research-tooling

research-chart-library

Chart helpers that refuse to draw a figure without period, units, and cost labels.

Pythonpandas
Repositorypending

Problem

Research figures are frequently published without axis units, sample period, or a gross-versus-net label, which makes them uninterpretable later.

Solution

A thin plotting layer that requires metadata as arguments and stamps it onto every figure it produces.

Architecture

Figure factories wrap a plotting backend and validate a metadata contract before rendering; output paths are content-addressed for reproducibility.

Key features

  • Mandatory sample-period and units metadata
  • Gross or net stamping
  • Consistent accessible color assignment
  • Deterministic figure regeneration

Known limitations

  • Opinionated defaults are not suited to every figure type

Future improvements

  • Table companion with the same metadata contract
Screenshots: [SCREENSHOTS TO SUPPLY]
IN DEVELOPMENTetl · broker-data · ledger

broker-report-importer

Parses historical broker statements into a normalized trade and cash-flow ledger.

PythonpandasSQL
Repositorypending

Problem

Years of broker statements arrive in inconsistent formats, and manual entry both loses history and introduces errors.

Solution

Format-specific parsers that emit a single normalized ledger schema, with idempotent imports and duplicate detection so replays are safe.

Architecture

A parser registry keyed by broker and statement version writes to a staging table, followed by validation and promotion into the ledger.

Key features

  • Per-broker, per-version parsers
  • Idempotent import with duplicate detection
  • Cash-flow versus trade classification
  • Validation before ledger promotion

Known limitations

  • New statement layouts require a new parser version

Future improvements

  • Schema inference to speed up new-format onboarding
Screenshots: [SCREENSHOTS TO SUPPLY — synthetic statements only]
WORKINGrisk · performance-metrics

portfolio-risk-calculator

Risk and drawdown metrics with explicit annualization and cost conventions.

PythonNumPypandas
Repositorypending

Problem

Risk statistics are often reported without stating annualization method, return frequency, or whether costs are included, which makes numbers incomparable.

Solution

A metrics library where every function requires its conventions to be stated and returns them alongside the value.

Architecture

Pure functions over return series, each returning a value plus a convention record used by reporting layers.

Key features

  • Volatility, Sharpe, drawdown, recovery time, expected shortfall
  • Explicit annualization and frequency handling
  • Gross and net variants
  • Bootstrap intervals for headline statistics

Known limitations

  • Assumes clean, aligned return series as input

Future improvements

  • Rolling-window API
  • Attribution helpers
Screenshots: [SCREENSHOTS TO SUPPLY]
IN DEVELOPMENTdata-engineering · pipeline · market-data

market-data-pipeline

Scheduled ingestion and cleaning of daily market data into a research-ready store.

PythonpandasSQL
Repositorypending

Problem

Research runs become unreproducible when the underlying data store changes silently between runs.

Solution

A versioned ingestion pipeline that records data vintages, so any published result can be regenerated against the exact data it used.

Architecture

Scheduled fetch, validation, and load stages write immutable dated partitions; research jobs pin a vintage identifier.

Key features

  • Immutable dated partitions
  • Vintage pinning for research runs
  • Validation gates before load
  • Backfill and repair workflows

Known limitations

  • Storage grows with vintage retention policy

Future improvements

  • Vintage diff reports
  • Automated retention policy
Screenshots: [SCREENSHOTS TO SUPPLY]