Workflow
Nuvation Bio (NUVB) - 2025 Q2 - Quarterly Report

import re def format_chunk_references(chunk_nums): if not chunk_nums: return "" return "".join(f"{num}" for num in sorted(chunk_nums)) def format_key_point_content(content): Bolding monetary values (e.g., $1,238, $607.7 million, $250.0 million) This regex handles various formats like $X, $Xk, $X million, $X billion content = re.sub(r'$(\d{1,3}(?:,\d{3})(?:.\d+)?(?:k| million| billion)?)\b', r'$\1', content) Bolding percentages (e.g., 45% growth, 5.5%) content = re.sub(r'(\d+.?\d%)', r'\1', content) Bolding specific years/dates if they are key metrics or timeframes content = re.sub(r'\b(June 30, 2025|December 31, 2024|2025|2024|2018)\b', r'\1', content) Bolding specific conclusions/status/key terms keywords_to_bold = [ "sufficient to meet cash commitments", "expensed as incurred", "classified as liabilities", "effective", "not material", "highly dependent", "critical for revenue generation and profitability", "substantial additional funding will be required", "creates indebtedness and debt service obligations", "long, expensive, and uncertain process with high risk of failure", "novel and unproven therapeutic approach", "crucial for targeted therapies", "substantial competition", "costly to defend", "extensive and ongoing regulatory requirements", "material adverse effect", "significant expenses and operating losses", "non-dilutive financing", "tiered royalty payments", "secured by substantially all company assets", "restrictive covenants", "high risk of failure", "difficult to predict", "increase costs, restrict market access", "substantial penalties and exclusion from government programs", "stringent and evolving U.S. and foreign data privacy and security laws", "interrupt operations or necessitate costly business relocations", "relies heavily on Contract Research Organizations", "risks of production shortages, quality issues, regulatory non-compliance", "prevent continued development, manufacture, and commercialization", "uncertainties in obtaining, maintaining, protecting, and enforcing patents", "risk of trade secret discovery or misappropriation", "costly and time-consuming lawsuits", "expensive and challenging", "diminish the value of patents", "adversely affect competitive position", "difficult, diverting management attention, disrupting business", "negatively impact product review and approval timelines", "adversely affect supply chains, manufacturing, clinical trial timelines", "retaining key employees", "difficulties in managing growth", "risks of misconduct by employees or third parties", "vulnerable to cybersecurity threats", "adversely impacted and may continue to impact", "significant expenses and risks", "extensive government regulation and supervision", "economic, political, and regulatory risks", "limit the ability to compete and result in penalties", "limit the ability to inject capital into subsidiaries or distribute profits", "Uncertainties exist regarding Chinese tax regulations", "volatile due to various factors", "concentrates voting power", "dilute ownership interests and depress the market price", "make an acquisition more difficult", "limit stockholders' ability to choose a favorable judicial forum", "impair the ability to produce accurate financial statements", "significant costs and demands management time", "decline in stock price or regulatory sanctions", "could decline", "net loss", "accumulated deficit", "operating losses", "cash, cash equivalents, and marketable securities", "net increase in cash and cash equivalents", "Net cash used in operating activities", "Net cash provided by investing activities", "Net cash provided by financing activities", "Net increase (decrease) in cash and cash equivalents", "Cash and cash equivalents, end of the period", "Total revenues", "Gross profit", "Research and development", "Acquired in-process research and development", "Selling, general and administrative", "Total operating expenses", "Loss from operations", "Total other income (expense), net", "Net loss per share, basic and diluted", "Total Stockholders' Equity", "Class A Shares Outstanding", "Stock-based compensation", "Cash and cash equivalents", "Marketable securities", "Total current assets", "Total assets", "Total current liabilities", "Total liabilities", "Total Marketable Securities", "Total undiscounted lease payments", "Total operating lease liabilities", "Total loan agreement", "Total", "Balance at end of period", "Total operating expenses", "Total Revenues", "Total operating expenses", "Total", "Total Marketable Securities", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total", "Total",