Batch ProcessingPortfolio ValuationOn this pagePortfolio Valuation Job: portfolioValuationJob Reader: All active holdings Processor: Apply latest market price, compute market value Writer: Update holdings + pnl_snapshots