diff --git a/cookbook/use_cases/finance/03_Earnings_Call_Analysis.ipynb b/cookbook/use_cases/finance/03_Earnings_Call_Analysis.ipynb index 3e8b2574..8ae47061 100644 --- a/cookbook/use_cases/finance/03_Earnings_Call_Analysis.ipynb +++ b/cookbook/use_cases/finance/03_Earnings_Call_Analysis.ipynb @@ -6,19 +6,28 @@ "source": [ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Hawksight-AI/semantica/blob/main/cookbook/use_cases/finance/03_Earnings_Call_Analysis.ipynb)\n", "\n", - "# Earnings Call Transcript Analysis with Docling and Semantica\n", + "# Earnings Call Analysis with Docling and Semantica: MDA Space Q3 2025\n", "\n", - "## 📄 Earnings Call Transcript PDF\n", + "## Data Sources\n", "\n", - "**Example:** Download a single earnings call transcript PDF from [SEC EDGAR](https://www.sec.gov/edgar/searchedgar/companysearch.html) or company investor relations pages. Use one PDF file for this analysis.\n", + "This analysis dual-tracks two critical documents from **MDA Space Ltd.** for the third quarter of 2025 to provide a holistic view of the company's performance and strategy:\n", + "1. **Press Release:** A structured summary of financial results, strategic milestones, and executive commentary.\n", + "2. **Earnings Transcript:** A detailed record of the management presentation and the subsequent Q&A session with analysts, providing deeper qualitative context.\n", + "\n", + "### Q3 2025 Strategic Highlights\n", + "* **Robust Backlog:** The company maintained a significant backlog at quarter-end, providing strong revenue visibility and supporting long-term growth objectives.\n", + "* **Strong Revenue Growth:** Substantial year-over-year revenue expansion driven by successful execution across major programs and satellite system deliveries.\n", + "* **Profitability & Margins:** Strong operational performance led to a significant increase in Adjusted EBITDA and healthy overall margin expansion.\n", + "* **Earnings Performance:** Noteworthy growth in adjusted net income and earnings per share, reflecting scaled operations and improved bottom-line efficiency.\n", + "* **Cash Flow & Capital Structure:** Positive operating cash flow and a healthy balance sheet with a very low leverage ratio, positioning the company well for future investment.\n", "\n", "---\n", "\n", "## Overview\n", "\n", - "Extract insights from earnings call transcripts by building a knowledge graph with entity extraction, relationship mapping, and GraphRAG-powered Q&A.\n", + "This notebook demonstrates how to extract deep insights from unstructured financial documents. By combining **Docling** for high-fidelity parsing with **Semantica** for knowledge engineering, we build a structured semantic layer that enables complex analysis and advanced GraphRAG capabilities.\n", "\n", - "**Workflow:** `PDF → Parse → Extract Entities/Relations → Build KG → GraphRAG → Answers`\n" + "**Workflow:** `Dual PDF Input → Docling Parsing → Entity & Relation Extraction → Knowledge Graph Construction → GraphRAG → Strategic Q&A`" ] }, { diff --git a/semantica/parse/__init__.py b/semantica/parse/__init__.py index c838fd8b..a7a7eb9c 100644 --- a/semantica/parse/__init__.py +++ b/semantica/parse/__init__.py @@ -170,8 +170,7 @@ from .pptx_parser import PPTXData, PPTXParser, SlideContent # Try to import DoclingParser (optional dependency) try: - from .docling_parser import DoclingParser, DoclingMetadata - DOCLING_AVAILABLE = True + from .docling_parser import DoclingParser, DoclingMetadata, DOCLING_AVAILABLE except (ImportError, OSError): DOCLING_AVAILABLE = False DoclingParser = None diff --git a/semantica/utils/progress_tracker.py b/semantica/utils/progress_tracker.py index c53fd324..b50f6cdd 100644 --- a/semantica/utils/progress_tracker.py +++ b/semantica/utils/progress_tracker.py @@ -357,7 +357,7 @@ class ConsoleProgressDisplay(ProgressDisplay): line = " ".join(parts) self.current_lines[key] = line - sys.stdout.write(line) + self._safe_write(line) def show_summary(self, items: List[ProgressItem]) -> None: """Show final summary."""