{
  "markdown": "# News - Unified Daily Market & Portfolio Report\n\nOne command pulls live Schwab + IBKR holdings, fetches ~800 ETF prices from\nYahoo Finance (no Bloomberg terminal), runs unit-tested analytics, and has\nClaude Opus write a single unified market + portfolio report as a PDF:\n\n```bash\npython3 report/main.py\n```\n\nFull documentation: [`report/README.md`](report/README.md)\n\n```bash\npython3 report/main.py --no-llm           # data + analytics only (free, fast)\npython3 report/main.py --non-interactive  # cron mode (stale fallback, no prompts)\npython3 -m pytest tests/ -v               # 25 tests on the financial math\n```\n\n## Repository layout\n\n```\nNews/\n├── report/                          # THE daily report system (start here)\n│   ├── main.py                      #   one-command pipeline\n│   ├── prompts/system.md            #   LLM strategist prompt\n│   └── README.md                    #   full docs\n├── tests/                           # pytest suite for the financial math\n├── data/                            # universe.xlsx, report.db, holdings.xlsx\n├── outputs/unified/                 # generated reports (PDF/MD + data packages)\n│\n├── Step 1 Data Collection/          # Universe construction (run rarely)\n├── Step 2 Data Processing - Final1000/  #   classification & selection\n├── Step 3 Data Analysis/            #   analytics on the universe\n├── fine tuning/                     #   ML classifier training\n│\n├── archive/                         # Legacy reporting chain (replaced by report/)\n├── AGENTS.md                        # AI agent instructions\n└── README.md                        # this file\n```\n\n## The two pipelines\n\n### 1. Daily report (`report/`) - run every day\n\nSee `report/README.md`. Replaces the old Phase 0 -> Step 4 -> Phase 2 chain\n(now in `archive/`). Universe: 763 unique ETFs in `data/universe.xlsx`,\npriced via Yahoo Finance. History: single SQLite db at `data/report.db`.\n\n### 2. Universe construction (Steps 1-3 + fine tuning) - run rarely\n\nBuilds the Final 1000 Asset Master List from Bloomberg indices, ETFs, and\nGoldman baskets via LLM classification. Only needed to rebuild/refresh the\nuniverse; after changing it, regenerate the report universe with:\n\n```bash\npython3 report/build_universe.py\n```\n\n| Stage | Purpose | Output |\n|-------|---------|--------|\n| Step 1 Data Collection | Raw data acquisition | Filtered datasets from 3 sources |\n| Step 2 Data Processing | Classification & selection | Final 1000 Asset Master List |\n| Step 3 Data Analysis | Performance analytics | Factor profiles & deduplication |\n| Fine Tuning | ML model training | Fine-tuned Llama classifier |\n\n## Requirements\n\n- **Python** 3.14 (`yfinance`, `pandas`, `anthropic>=0.109`, `schwabdev`,\n  `python-dotenv`, `markdown`, `pytest`)\n- `.venv-ibkr312/` - Python 3.12 venv with `ib_insync` (IBKR API requirement)\n- **PrinceXML** (`brew install prince`) for PDF rendering\n- `.env` at repo root: `ANTHROPIC_API_KEY`, `SCHWAB_APP_KEY`, `SCHWAB_APP_SECRET`\n- TWS / IB Gateway logged in (auto-launched if not running)\n\n## Documentation\n\n| File | Purpose |\n|------|---------|\n| `report/README.md` | Daily report system - full guide |\n| `AGENTS.md` | AI coding agent instructions |\n| `archive/README.md` | What the legacy code was and what replaced it |\n| `Step 2 .../README.md` | Classification workflow |\n| `fine tuning/README.md` | ML training guide |\n\n---\n\n**Last Updated**: 2026-06-10\n**Version**: 3.0.0 (unified report rearchitecture)\n",
  "bytes": 3454,
  "sha": "943c2deeca72ce719fde7e3d5893f7b1c6de9532d12e2cef7dc31d031c10021b",
  "repo_slug": "arjundivecha/news",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_arjundivecha_news_openwiki_index_md_b7c8478b/readme"
}