{"id":216932,"date":"2026-05-04T11:44:17","date_gmt":"2026-05-04T15:44:17","guid":{"rendered":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/?p=216932"},"modified":"2026-05-04T11:44:17","modified_gmt":"2026-05-04T15:44:17","slug":"finch-ai","status":"publish","type":"post","link":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/","title":{"rendered":"Finch AI"},"content":{"rendered":"\r\n<div class=\"wp-block-group alignfull is-content-justification-center\" style=\"margin-top: 0; margin-bottom: 0;\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\r\n\r\n\r\n<div class=\"wp-block-columns alignwide are-vertically-aligned-top is-layout-flex wp-container-core-columns-is-layout-ac3ebc3b wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-vertically-aligned-top is-content-justification-left is-layout-constrained wp-container-core-column-is-layout-02d07192 wp-block-column-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Portfolio risk analysis &amp; daily reporting.<\/h2>\r\n\r\n\r\n\r\n<p>This portfolio risk analysis project was completed as a University of Rochester Data Science Capstone for <a href=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/\" target=\"_blank\" rel=\"noopener\">Senior Design Day<\/a>, with sponsorship from FinchAI.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\r\n\r\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" style=\"color: white;\" href=\"https:\/\/youtu.be\/tRtYU-6AmU8\" target=\"_blank\" rel=\"noopener\">View a Demo<\/a><\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis: 40%;\">\r\n\r\n<p>We built an AI-powered portfolio risk analysis copilot that ingests daily company news and identifies material risks across a portfolio. It turns scattered news events into a structured daily report that a portfolio manager can review in under 10 minutes. The system uses LangGraph and Claude to classify risks, aggregate evidence, and generate recommendations.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-222302 size-full\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png\" alt=\"Portfolio Risk Analysis Copilot dashboard overview\" width=\"2560\" height=\"1329\" srcset=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png 2560w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-300x156.png 300w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-1024x532.png 1024w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-768x399.png 768w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-1536x797.png 1536w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-2048x1063.png 2048w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-1920x997.png 1920w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/figure>\r\n\r\n\r\n<\/div><\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 THE PROBLEM \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">The Problem with Manual Portfolio Risk Analysis<\/h2>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<p>Portfolio managers tracking dozens of companies face a difficult daily task: reading enough news to identify which holdings face new material risks. Relevant signals are often buried across hundreds of articles, many of which mention a company only in passing.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<p>Manual review is slow, inconsistent, and impossible to scale. Existing tools either require deep human judgment on every article or miss the nuance needed to separate material risk from noise.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 DATASET SNAPSHOT \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Dataset Snapshot<\/h2>\r\n\r\n\r\n\r\n<p>FinchAI daily sentiment-event feeds power the portfolio risk analysis system. For production-style reporting, we used the APAC-LATAM portfolio snapshot: 10 daily CSV files from January 31 to February 9, 2026, with 3,620 article-entity rows across 169 unique entities. Each record includes document metadata, company information, business topics, sentiment, salience, and optional stock identifiers. This structure lets the system connect articles to companies, classify risk signals, and generate a portfolio-level report.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Event Feed<\/h3>\r\n\r\n\r\n\r\n<p>Each article includes a title, source, URL, entity label, business topics, sentiment class, sentiment score, salience score, and entity summary. These fields let the pipeline classify risk signals without scraping raw article text.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Development Data<\/h3>\r\n\r\n\r\n\r\n<p>A larger consolidated dataset of 5,683 observations across 17 columns supported broader development and error analysis, while the portfolio snapshots preserved the daily reporting format expected in production.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Real-World Gaps<\/h3>\r\n\r\n\r\n\r\n<p>The feed is realistic and incomplete. About 52% of rows are missing stock identifiers such as ticker, exchange, or MIC code. We kept these rows because the core analysis works at the entity and news-event level, not only at the ticker level.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 PIPELINE \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Pipeline Workflow<\/h2>\r\n\r\n\r\n\r\n<p>To solve this problem, we built an orchestrator\u2013worker pipeline in LangGraph. The workflow processes each day&#8217;s events through five stages.<\/p>\r\n\r\n\r\n\r\n<p>LLMs handle classification and narrative synthesis. Deterministic Python logic handles severity scoring, category counts, aggregation, and source attribution. This separation makes the system easier to audit and reproduce.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Agent-Pipeline-Workflow.png\" alt=\"Portfolio risk analysis workflow showing the FinchAI event feed moving through pull, classify, aggregate, analyze, and generate stages to produce a daily risk report\" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">01 \u2014 Pull<\/h3>\r\n\r\n\r\n<p>First, the system loads a named portfolio for a selected date from the FinchAI daily sentiment-event feed. The feed includes company metadata, news events, sentiment scores, salience scores, and business topic tags.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">02 \u2014 Classify<\/h3>\r\n\r\n\r\n<p>Next, the system fans out across holdings with LangGraph&#8217;s Send API. For each holding, it formats event excerpts as TITLE, TOPICS, and CONTENT. It then asks the model to classify risks using a seven-category rubric.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">03 \u2014 Aggregate<\/h3>\r\n\r\n\r\n<p>Then, deterministic logic merges classification results and groups evidence by company and risk category. The system computes severity by category count: HIGH for two or more flagged categories, MEDIUM for one, and NONE for zero.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">04 \u2014 Analyze<\/h3>\r\n\r\n\r\n<p>After aggregation, an LLM synthesizes the portfolio-level risk picture. It generates an executive summary, per-company key concerns, confidence scores, and recommended actions.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">05 \u2014 Generate<\/h3>\r\n\r\n\r\n<p>Finally, the system renders a structured HTML report. The report includes company-level risk highlights, severity badges, evidence sentences with source attribution, and a portfolio-wide rollup.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 RISK TAXONOMY \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Risk Taxonomy<\/h2>\r\n\r\n\r\n\r\n<p>Every flagged event is classified into one or more of seven business-risk categories. The taxonomy is adapted from the <a href=\"https:\/\/arxiv.org\/html\/2508.10927v1\" target=\"_blank\" rel=\"nofollow noopener\">Modeling and Detecting Company Risks from News<\/a> framework, which was designed to organize company news into risk categories that are meaningful for financial analysis. We chose this taxonomy because it is broad enough to cover common portfolio risks, but small enough to support consistent annotation, classification, and reporting.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Supply Chain &amp; Product<\/h3>\r\n\r\n\r\n<p>Threats to a company&#8217;s ability to make, source, or deliver its products and services.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">People &amp; Management<\/h3>\r\n\r\n\r\n<p>Leadership departures, workforce instability, and internal human capital risk.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Finance<\/h3>\r\n\r\n\r\n<p>Financial health, liquidity, access to capital, and earnings risk.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Legal &amp; Regulatory<\/h3>\r\n\r\n\r\n<p>Lawsuits, regulatory actions, or policy changes that could materially harm the company.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Macro<\/h3>\r\n\r\n\r\n<p>Broad external forces beyond company control, including inflation, geopolitics, pandemics, and financial crises.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Competition<\/h3>\r\n\r\n\r\n<p>Heightened pressure from rivals or disruptive new entrants to the market.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis: 33.33%;\">\r\n\r\n<h3 class=\"wp-block-heading\">Markets &amp; Consumers<\/h3>\r\n\r\n\r\n<p>Revenue threats from weakening demand or shifts in customer behavior.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis: 66.66%;\">\r\n\r\n<p>&nbsp;<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 WHAT WE BUILT \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">What We Built: Project Deliverables<\/h2>\r\n\r\n\r\n\r\n<p>The final project delivered an end-to-end portfolio risk reporting system with three main components:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n\r\n<li>A LangGraph pipeline that ingests FinchAI event feeds, classifies risks, aggregates evidence, and generates a daily HTML report<\/li>\r\n\r\n\r\n<li>A Streamlit frontend with Analyst, Researcher, and Reporter views for portfolio exploration and report generation<\/li>\r\n\r\n\r\n<li>An evaluation framework for measuring category accuracy, evidence faithfulness, and report grounding<\/li>\r\n\r\n<\/ul>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 USER INTERFACES \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">User Interfaces<\/h2>\r\n\r\n\r\n\r\n<p>The system is accessible through a Streamlit frontend with four views: an Introduction page and three working interfaces for analysis, research, and report generation. Each view is scoped to the holdings a manager selects, so every query and report reflects the companies under review.<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Analyst<\/h3>\r\n\r\n\r\n\r\n<p>The Analyst view gives portfolio managers a quantitative lens on each holding. It pulls historical price data from Yahoo Finance and reports return, volatility, Sharpe ratio, beta, maximum drawdown, and benchmark comparison. The technical analysis panel shows candlestick charts, moving averages, Bollinger Bands, volume, RSI, and drawdown.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/03\/Analyst-Tab-1-scaled.png\" alt=\"Portfolio risk analysis Analyst interface with candlestick chart, performance metrics, and technical analysis\" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Researcher<\/h3>\r\n\r\n\r\n\r\n<p>The Researcher view supports ad-hoc Q&amp;A for the selected portfolio holdings. It uses a LangGraph deep agent with Tavily web search, so users can ask questions beyond the daily event feed. For example, they can use preset prompts about portfolio risks, regulatory issues, or legal exposure. They can also ask custom questions in free text.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Researcher-Tab-scaled.png\" alt=\"Portfolio risk analysis Researcher interface with preset questions and ad-hoc query options\" \/><\/figure>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--20);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Reporter<\/h3>\r\n\r\n\r\n\r\n<p>The Reporter view generates the downloadable HTML report. The report starts with an executive summary and a severity overview. It then shows a risk-category breakdown with affected holdings, event counts, confidence scores, and trend direction. High-severity company cards show flagged categories, evidence, source attribution, and key concerns. The report closes with a medium-severity table, recommended actions, and a methodology note.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" style=\"width: 100%; height: auto;\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Reporter-Tab-scaled.png\" alt=\"Portfolio risk analysis Reporter interface with executive summary, severity overview, and category breakdown\" \/><\/figure>\r\n\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 EVALUATION \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Evaluation<\/h2>\r\n\r\n\r\n\r\n<p>Evaluation focused on three failure modes. First, we checked whether the model hallucinated risks that were not grounded in the source data. Second, we checked whether evidence strings appeared verbatim in the original article summary. Third, we measured whether the system assigned the correct risk categories.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\"><table><tbody>\r\n<tr>\r\n<td><strong>Classification evaluation set<\/strong><\/td>\r\n<td>165 manually labeled articles across 78 companies<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>Label-wise agreement<\/strong><\/td>\r\n<td>Approximately 90%<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>Macro F1<\/strong><\/td>\r\n<td>0.60 on the positive class<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>Strongest categories<\/strong><\/td>\r\n<td>Supply Chain &amp; Product, People &amp; Management, Legal &amp; Regulatory<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>Weakest categories<\/strong><\/td>\r\n<td>Finance and Markets &amp; Consumers<\/td>\r\n<\/tr>\r\n<tr>\r\n<td><strong>Analyze-stage grounding<\/strong><\/td>\r\n<td>hallucination_check scores clustered between 0.78 and 0.79 across model variants<\/td>\r\n<\/tr>\r\n<\/tbody><\/table><\/figure>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide are-vertically-aligned-top is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Classification Node<\/h3>\r\n\r\n\r\n<p>We built a manually labeled gold set of 165 articles across 78 companies. The sample came from the APAC-LATAM portfolio and included a mix of event counts and sentiment types. Overall, label-wise agreement between the LLM classifier and the gold reference reached about 90%. Macro F1 on the positive class was 0.60. Evidence faithfulness scored highest because it checks whether quoted evidence appears verbatim in the source. The structured-output prompt and deterministic substring check helped enforce this constraint directly. The model performed best on Supply Chain &amp; Product, People &amp; Management, and Legal &amp; Regulatory. However, it struggled more with Finance and Markets &amp; Consumers because those categories overlap with neutral market coverage and have fewer positive examples.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Analysis Node<\/h3>\r\n\r\n\r\n<p>For the portfolio-level narrative stage, we used an LLM-as-judge evaluator called hallucination_check. The evaluator reads the generated executive summary and flags risk claims that are not traceable to the structured input. We tested Sonnet 4.6, Gemma 4, and Haiku 4.5. Across all three models, hallucination_check scores stayed between 0.78 and 0.79. The grounding structure mattered more than the model choice at this stage. Most unsupported claims appeared in generic framing sentences, not in specific risk attributions.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 CHALLENGES \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Challenges<\/h2>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">LLM Output Variability<\/h3>\r\n\r\n\r\n<p>Because the classify and analyze nodes run as separate LLM calls, company names did not always match exactly between stages. For example, a holding might appear as &#8220;Air India Express&#8221; in one step and &#8220;Air India Express Ltd.&#8221; in another. We added fuzzy matching logic to join results without losing evidence or double-counting holdings.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Missing Stock Identifiers<\/h3>\r\n\r\n\r\n<p>About 52% of records in the FinchAI data feed were missing stock identifiers such as ticker symbol, exchange name, and MIC code. Since not all entities are publicly traded, we kept those rows for risk analysis, but the gap limits how completely ticker and exchange information can appear in the generated report.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Merging Parallel Results<\/h3>\r\n\r\n\r\n<p>To speed up classification, the system analyzes many holdings at the same time. This created a coordination challenge: results from separate workers had to merge back into one consistent portfolio report without losing company names, evidence, or risk categories. The pipeline solved this with a state schema that supports structured reductions from parallel workers.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 FUTURE WORK \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Future Work<\/h2>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Domain Expert Validation<\/h3>\r\n\r\n\r\n<p>FinchAI domain experts could review evaluation outputs and refine the classification and analysis prompts. This would add financial judgment that an LLM-as-judge evaluator cannot fully capture. It is especially important for Finance and Markets &amp; Consumers, which showed the weakest classification performance.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Multi-Dimensional Evaluation<\/h3>\r\n\r\n\r\n<p>The current hallucination_check evaluator measures whether narrative claims are grounded in the structured input. Expanding it to score relevance, clarity, and actionability would give a fuller picture of report quality beyond factual accuracy.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Confidence Score Calibration<\/h3>\r\n\r\n\r\n<p>The current confidence scores come from the analysis layer. Future work should calibrate them against more labeled examples or realized outcomes. Validated thresholds would make the category breakdown more reliable for portfolio review.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n\r\n<h3 class=\"wp-block-heading\">Trend Detection Across Days<\/h3>\r\n\r\n\r\n<p>The current system treats each day&#8217;s report in isolation. Multi-date portfolio state would let the pipeline detect escalating risks across consecutive reports. For example, it could flag a holding that appears in the same risk category for three days in a row.<\/p>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 CONCLUSION \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\r\n\r\n\r\n\r\n<p>This project shows that daily portfolio risk review can be accelerated without giving up structure or traceability. By combining LLM-based classification with deterministic aggregation and source-grounded reporting, the system turns scattered company news into a report that highlights material risks, affected holdings, supporting evidence, and recommended actions. The result is a workflow that helps portfolio managers move from manual article review to faster, more consistent portfolio-level risk monitoring.<\/p>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 ACKNOWLEDGEMENTS \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignwide\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\r\n\r\n<h2 class=\"wp-block-heading\">Acknowledgements<\/h2>\r\n\r\n\r\n\r\n<p>We would like to thank Professor Cantay Caliskan and Professor Ajay Anand for their continuous support and mentorship. We also thank Robert Flagg and Scott Lightner at FinchAI for their guidance throughout the project.<\/p>\r\n\r\n<\/div><\/div>\r\n\r\n\r\n<!-- \u2550\u2550\u2550 FOOTER \u2550\u2550\u2550 -->\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: var(--wp--preset--spacing--40);\" aria-hidden=\"true\"> <\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-group alignfull has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-94c4e062829e76fe4f5308295659a61a is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-dd92acc6 wp-block-group-is-layout-flex\" style=\"margin-top: 0; margin-bottom: 0; padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);\">\r\n\r\n\r\n<div class=\"wp-block-columns has-small-font-size is-layout-flex wp-container-core-columns-is-layout-994bf9a1 wp-block-columns-is-layout-flex\">\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis: 50%;\">\r\n\r\n<p class=\"has-text-align-center\" style=\"color: white;\"><strong>Team<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-center\"><a style=\"color: white;\" href=\"https:\/\/www.linkedin.com\/in\/sylvia-liu-rt\/\" target=\"_blank\" rel=\"noopener\">Ruitong (Sylvia) Liu<\/a><br \/><a style=\"color: white;\" href=\"https:\/\/www.linkedin.com\/in\/yiren28\/\" target=\"_blank\" rel=\"noopener\">Yi Ren<\/a><br \/><a style=\"color: white;\" href=\"https:\/\/www.linkedin.com\/in\/chan2003\/?locale=en\" target=\"_blank\" rel=\"noopener\">Jiamu Tang<\/a><br \/><a style=\"color: white;\" href=\"https:\/\/www.linkedin.com\/in\/youjia-zhang-ab5275268\/\" target=\"_blank\" rel=\"noopener\">Youjia Zhang<\/a><\/p>\r\n\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis: 50%;\">\r\n\r\n<p class=\"has-text-align-center\" style=\"color: white;\"><strong>Sponsor<\/strong><\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-center\" style=\"color: white;\"><a style=\"color: white;\" href=\"https:\/\/www.finchai.com\" target=\"_blank\" rel=\"noopener\">FinchAI<\/a><br \/>Robert Flagg<br \/>rflagg@finchai.com<\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-spacer\" style=\"height: 8px;\" aria-hidden=\"true\"> <\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<\/div>\r\n\r\n<\/div>\r\n","protected":false},"excerpt":{"rendered":"<p>Portfolio risk analysis &amp; daily reporting. This portfolio risk analysis project was completed as a University of Rochester Data Science Capstone for Senior Design Day, with sponsorship from FinchAI. We&hellip;<\/p>\n","protected":false},"author":20772,"featured_media":222302,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4452,4532,16042,4512,4752],"tags":[16522,16602,16532],"coauthors":[25782,25792,25802,25812],"class_list":["post-216932","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-current-year","category-keywords-current","category-artificial-intelligence","category-dsc","category-machine-learning","tag-data-science","tag-finance","tag-machine-learning"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Portfolio Risk Analysis AI for FinchAI<\/title>\n<meta name=\"description\" content=\"Portfolio risk analysis AI using LangGraph and Claude to turn FinchAI news feeds into daily risk reports with evidence and recommendations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI Portfolio Risk Analysis from News Event Feeds\" \/>\n<meta property=\"og:description\" content=\"A University of Rochester Data Science Capstone with FinchAI that uses LangGraph and Claude to turn daily news event feeds into reviewable risk reports for portfolio managers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"Senior Design Day\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-04T15:44:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-1200x630.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sylvia Liu, Yi Ren, Jiamu Tang, Youjia Zhang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"AI Portfolio Risk Analysis from News Event Feeds\" \/>\n<meta name=\"twitter:description\" content=\"A University of Rochester Data Science Capstone with FinchAI that uses LangGraph and Claude to turn daily news event feeds into reviewable risk reports for portfolio managers.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sylvia Liu, Yi Ren, Jiamu Tang, Youjia Zhang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/\"},\"author\":{\"name\":\"Sylvia Liu\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#\\\/schema\\\/person\\\/401aa5e42ef87bf9f9c24f5e5e9bd12f\"},\"headline\":\"Finch AI\",\"datePublished\":\"2026-05-04T15:44:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/\"},\"wordCount\":1726,\"image\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Portfolio-Risk-Analysis-Copilot-scaled.png\",\"keywords\":[\"Data Science\",\"finance\",\"Machine Learning\"],\"articleSection\":[\"1. Current Year Programs\",\"2. Current Year Keywords\",\"Artificial Intelligence\",\"DSC\",\"Machine Learning\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/\",\"name\":\"Portfolio Risk Analysis AI for FinchAI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Portfolio-Risk-Analysis-Copilot-scaled.png\",\"datePublished\":\"2026-05-04T15:44:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#\\\/schema\\\/person\\\/401aa5e42ef87bf9f9c24f5e5e9bd12f\"},\"description\":\"Portfolio risk analysis AI using LangGraph and Claude to turn FinchAI news feeds into daily risk reports with evidence and recommendations.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Portfolio-Risk-Analysis-Copilot-scaled.png\",\"contentUrl\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Portfolio-Risk-Analysis-Copilot-scaled.png\",\"width\":2560,\"height\":1329},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/finch-ai\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Finch AI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#website\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/\",\"name\":\"Senior Design Day\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#\\\/schema\\\/person\\\/401aa5e42ef87bf9f9c24f5e5e9bd12f\",\"name\":\"Sylvia Liu\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/author\\\/rliu43\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Portfolio Risk Analysis AI for FinchAI","description":"Portfolio risk analysis AI using LangGraph and Claude to turn FinchAI news feeds into daily risk reports with evidence and recommendations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/","og_locale":"en_US","og_type":"article","og_title":"AI Portfolio Risk Analysis from News Event Feeds","og_description":"A University of Rochester Data Science Capstone with FinchAI that uses LangGraph and Claude to turn daily news event feeds into reviewable risk reports for portfolio managers.","og_url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/","og_site_name":"Senior Design Day","article_published_time":"2026-05-04T15:44:17+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-1200x630.png","type":"image\/png"}],"author":"Sylvia Liu, Yi Ren, Jiamu Tang, Youjia Zhang","twitter_card":"summary_large_image","twitter_title":"AI Portfolio Risk Analysis from News Event Feeds","twitter_description":"A University of Rochester Data Science Capstone with FinchAI that uses LangGraph and Claude to turn daily news event feeds into reviewable risk reports for portfolio managers.","twitter_image":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png","twitter_misc":{"Written by":"Sylvia Liu, Yi Ren, Jiamu Tang, Youjia Zhang","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#article","isPartOf":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/"},"author":{"name":"Sylvia Liu","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#\/schema\/person\/401aa5e42ef87bf9f9c24f5e5e9bd12f"},"headline":"Finch AI","datePublished":"2026-05-04T15:44:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/"},"wordCount":1726,"image":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png","keywords":["Data Science","finance","Machine Learning"],"articleSection":["1. Current Year Programs","2. Current Year Keywords","Artificial Intelligence","DSC","Machine Learning"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/","name":"Portfolio Risk Analysis AI for FinchAI","isPartOf":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#primaryimage"},"image":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png","datePublished":"2026-05-04T15:44:17+00:00","author":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#\/schema\/person\/401aa5e42ef87bf9f9c24f5e5e9bd12f"},"description":"Portfolio risk analysis AI using LangGraph and Claude to turn FinchAI news feeds into daily risk reports with evidence and recommendations.","breadcrumb":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#primaryimage","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png","contentUrl":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2026\/04\/Portfolio-Risk-Analysis-Copilot-scaled.png","width":2560,"height":1329},{"@type":"BreadcrumbList","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/finch-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/"},{"@type":"ListItem","position":2,"name":"Finch AI"}]},{"@type":"WebSite","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#website","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/","name":"Senior Design Day","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#\/schema\/person\/401aa5e42ef87bf9f9c24f5e5e9bd12f","name":"Sylvia Liu","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/author\/rliu43\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts\/216932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/users\/20772"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/comments?post=216932"}],"version-history":[{"count":44,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts\/216932\/revisions"}],"predecessor-version":[{"id":224092,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts\/216932\/revisions\/224092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/media\/222302"}],"wp:attachment":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/media?parent=216932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/categories?post=216932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/tags?post=216932"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/coauthors?post=216932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}