Skip to content

Repository files navigation

Equity Factor Investing System

An auditable Python research system for empirical asset-pricing and equity factor investing research across Australian and United States large-cap equity markets.

Project custodian: Dr Joseph N. Njiru
Organisation: Rigour Consulting
Runtime target: Python 3.11.9

Current status

Empirical-finance-ready research system, validated on deterministic synthetic data, awaiting licensed point-in-time empirical data for final asset pricing inference.

The repository is complete for deterministic synthetic research-engineering validation. It is not completed empirical asset-pricing evidence until licensed, point-in-time empirical data are integrated and independently validated.

This repository currently provides a validated research-engineering system. Synthetic results demonstrate system behaviour under controlled assumptions. They are not investment advice, are not survivor-bias-free empirical evidence, and are not evidence of deployable institutional performance.

All portfolio construction events in the synthetic validation run required relaxed holding constraints because the synthetic universe size produced fewer top-quintile and top-decile holdings than the configured minimums. This is acceptable for engine validation but not for institutional capacity claims.

What the system does

  • Defines canonical schemas with universal metadata and deterministic hashes.
  • Builds exchange-aware ASX and US rebalance timing records.
  • Generates deterministic synthetic data for end-to-end validation.
  • Constructs momentum, low-volatility, value, quality, and composite factors.
  • Builds long-only portfolios with explicit constraint relaxation and cost accounting.
  • Runs monthly benchmark-aligned backtests, risk metrics, and information-coefficient diagnostics.
  • Produces Markdown, HTML, CSV, Parquet, and PNG reproducibility evidence.
  • Provides an empirical-readiness audit and real-data integration plan.

What it does not claim

  • It does not provide investment advice.
  • It does not prove ASX or US factor premia.
  • It does not claim survivor-bias-free empirical evidence from synthetic data.
  • It does not claim institutionally deployable portfolio capacity.
  • It does not download or use licensed real market data without explicit licences.

Empirical data required for asset-pricing inference

A true empirical finance claim requires historical universe membership, active and inactive securities, delisting returns or terminal-return sensitivity, corporate actions, dividends, total-return prices or equivalent reconstruction, point-in-time fundamentals, filing or availability timestamps, point-in-time classifications where sector controls are used, total-return or accumulation benchmarks, and auditable data licences.

Installation

cd <PROJECT_ROOT>
python -m pip install uv
python -m uv sync

If uv is available on PATH, uv sync is equivalent.

Reproducibility commands

python -m uv run python run_project.py --stage all --config config/project_config.yaml
python -m uv run python run_project.py --stage audit --config config/project_config.yaml
python -m uv run pytest
python -m uv run ruff check .

If uv is on PATH, replace python -m uv with uv.

Repository structure

  • config/: reproducibility and method configuration.
  • src/equity_factor_system/: source package.
  • tests/: automated validation tests.
  • .github/workflows/: CI and full-pipeline workflow definitions.
  • docs/: essential installation, methodology, reproducibility, and empirical-data documentation.

Generated data and reports are not committed to the lean GitHub source repository. They are recreated by running the pipeline.

Generated outputs

  • reports/equity_factor_investing_report.md
  • reports/equity_factor_investing_report.html
  • reports/tables/final_quality_gate.csv
  • reports/tables/final_empirical_quality_gate.csv
  • reports/tables/empirical_finance_readiness_audit.csv
  • reports/tables/peer_review_readiness_scorecard.csv

Citation and licence

See CITATION.cff and LICENSE.

About

Schema-controlled Python research system for equity factor research, synthetic validation, portfolio accounting, backtesting, and empirical-data readiness.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages