Workflow
NCR Voyix Corp(VYX) - 2025 Q2 - Quarterly Results
NCR Voyix CorpNCR Voyix Corp(US:VYX)2025-08-07 10:32

python import urllib.parse import re def url_encode_item_id(item_id): """URL encodes the item_id for page-jump links.""" return urllib.parse.quote(item_id) def remove_trailing_period(text): """Removes a trailing period from a string if present.""" if text.endswith('.'): return text[:-1] return text def process_table_content(table_content, table_title): """ Formats Markdown table content, adding units to column headers based on title or value heuristics. """ lines = table_content.strip().split('\n') if not lines: return "" header_line = lines[0] headers = [h.strip() for h in header_line.split('|') if h.strip()] Determine if the table title explicitly states "in millions" title_specifies_millions = "(in millions)" in table_title.lower() processed_headers = [] for h in headers: Check if the header is a numeric column that should have units Exclude headers that are already percentages or specific non-numeric metrics if h.lower() not in ["metric", "segment", "account", "% change yoy", "adj. ebitda margin %", "diluted eps from continuing operations (gaap)", "non-gaap diluted eps", "gross margin %"]: if title_specifies_millions: processed_headers.append(f"{h} (millions)") else: Heuristic: if the original header is a year/quarter/range, or a monetary metric, assume it's a monetary value and add ($M) if not already specified as (millions) if any(char.isdigit() for char in h) or "range" in h.lower() or "revenue" in h.lower() or "ebitda" in h.lower() or "cash" in h.lower() or "assets" in h.lower() or "liabilities" in h.lower() or "equity" in h.lower() or "debt" in h.lower() or "income" in h.lower() or "margin" in h.lower() or "expense" in h.lower() or "costs" in h.lower() or "compensation" in h.lower(): processed_headers.append(f"{h} ($M)") else: processed_headers.append(h) else: processed_headers.append(h) processed_header_line = "| " + " | ".join(processed_headers) + " |" separator_line = lines[1] data_rows = lines[2:] return "\n".join([processed_header_line, separator_line] + data_rows) def process_insight_content(content, chunk_nums): """ Formats insight content as an unordered list, adds bolding, and appends chunk references. """ processed_lines = [] Split the content into individual logical points, assuming they are separated by newlines raw_points = [p.strip() for p in content.split('\n') if p.strip()] Determine if the chunk_nums provided are meant for individual points or the whole insight If the number of points matches the number of chunk_nums, assume 1-to-1 mapping if len(raw_points) == len(chunk_nums): for i, point_text in enumerate(raw_points): Remove any embedded (chunk_num: X) clean_point_text = re.sub(r'\s*$$ chunk_num: \d+ $$', '', point_text).strip() Ensure it starts with a bullet point if not clean_point_text.startswith('- '): clean_point_text = '- ' + clean_point_text clean_point_text = remove_trailing_period(clean_point_text) Append the specific chunk reference ref = f"[{chunk_nums[i]}](index={chunk_nums[i]}&type=chunk)" processed_lines.append(f"{clean_point_text}{ref}") else: If no direct 1-to-1 mapping, append all chunk_nums to each point all_refs = "".join([f"[{cn}](index={cn}&type=chunk)" for cn in sorted(chunk_nums)]) for point_text in raw_points: clean_point_text = re.sub(r'\s*$$ chunk_num: \d+ $$', '', point_text).strip() if not clean_point_text.startswith('- '): clean_point_text = '- ' + clean_point_text clean_point_text = remove_trailing_period(clean_point_text) processed_lines.append(f"{clean_point_text}{all_refs}") return "\n".join(processed_lines) def generate_report_outline(outline_data): """ Generates a professionally structured report outline in Markdown format. """ markdown_output = [] def process_item(item): level = item["level"] title = item["title"] summary = item["summary"] item_id = item["item_id"] start_page = item["start_page"] Determine Markdown heading level md_level_char = "" * level URL encode item_id encoded_item_id = url_encode_item_id(item_id) Construct page-jump link page_jump_link = f"[{title}](index={start_page}&type=section&id={encoded_item_id})" Add heading and link markdown_output.append(f"{md_level_char} {page_jump_link}") Add summary if available and not null if summary: Convert units in summary processed_summary = summary processed_summary = re.sub(r'\$(\d+)M', r'$\1 million', processed_summary) processed_summary = re.sub(r'\$(\d+\.\d+)B', r'$\1 billion', processed_summary) processed_summary = remove_trailing_period(processed_summary) markdown_output.append(processed_summary) Process key_points if "key_points" in item and item["key_points"]: for kp in item["key_points"]: if kp["type"] == "table": Table title as subheading (one level deeper than current item's level) table_heading_level = "" * (level + 1) markdown_output.append(f"{table_heading_level} {kp['title']}") markdown_output.append(process_table_content(kp["content"], kp["title"])) elif kp["type"] == "insight": markdown_output.append(process_insight_content(kp["content"], kp.get("chunk_num", []))) Process children recursively if "children" in item and item["children"]: for child in item["children"]: process_item(child) Start processing from the top-level item(s) for item in outline_data: process_item(item) return "\n\n".join(markdown_output) Provided outline content outline = [ {"level": 1, "title": "NCR Voyix Second Quarter 2025 Earnings Release", "item_id": "NCR Voyix Second Quarter 2025 Earnings Release", "summary": None, "children": [ {"level": 2, "title": "Financial & Business Highlights", "item_id": "Financial & Business Highlights", "summary": "In Q2 2025, NCR Voyix reported a decrease in total revenue to $666M but a significant improvement in profitability, with net income from continuing operations reaching $1M compared to a $90M loss in the prior year. Adjusted EBITDA grew to $95M. The company maintained its full-year 2025 outlook and continued strategic initiatives, including share repurchases and growing its platform and payment sites.", "children": [], "end_page": 2, "key_points": [ {"type": "table", "title": "Q2 2025 Financial Highlights vs. Q2 2024", "content": "| Metric | Q2 2025 | Q2 2024 |\n| :--- | :--- | :--- |\n| Revenue | $666M | $722M |\n| Net Income (Loss) from Continuing Operations | $1M | $(90)M |\n| Adjusted EBITDA | $95M | $79M |\n| Diluted EPS from Continuing Operations | $(0.02) | N/A |\n| Non-GAAP Diluted EPS | $0.19 | N/A |\n| Software & Services Revenue | $499M | $501M |\n| ARR | $1.68B | $1.60B |\n| Software ARR | $799M | $748M |", "chunk_num": [6]}, {"type": "table", "title": "Full-Year 2025 Outlook", "content": "| Metric | Outlook Range |\n| :--- | :--- |\n| Total Revenue | $2,575M – $2,650M |\n| Software and Services Revenue | $1,995M – $2,020M |\n| Hardware Revenue | $580M – $630M |\n| Adjusted EBITDA | $420M – $445M |\n| Non-GAAP Diluted EPS | $0.75 - $0.80 |\n| Adjusted Free Cash Flow - Unrestricted | $170M - $190M |", "chunk_num": [5]}, {"type": "insight", "content": "CEO James G. Kelly expressed encouragement with recent progress in executing key strategic initiatives, including product innovation, expanding payments capabilities, and enhancing global services.", "chunk_num": [5]}, {"type": "insight", "content": "The company grew its platform sites by 16% and payment sites by 3% year-over-year as of June 30, 2025. Additionally, it repurchased approximately 826 thousand shares for $7 million during the second quarter.", "chunk_num": [9]} ], "start_page": 1}, {"level": 2, "title": "Financial Statements", "item_id": "Financial Statements", "summary": "The consolidated financial statements detail the company's performance. The income statement shows a year-over-year revenue decline but improved gross margins and a shift to operating income in Q2. The balance sheet indicates a reduction in cash and total assets since year-end 2024. The cash flow statement reveals a significant use of cash from operations in the first half of 2025, contrasting with cash generation in the prior year.", "children": [ {"level": 3, "title": "Consolidated Statements of Operations", "item_id": "Consolidated Statements of Operations", "summary": "For Q2 2025, total revenue decreased to $666 million from $722 million in Q2 2024. However, gross margin improved from 17.5% to 23.0%, and the company swung from a $34 million operating loss to a $14 million operating income. Net income from continuing operations was $1 million, a significant turnaround from a $90 million loss in the prior-year quarter.", "end_page": 9, "key_points": [ {"type": "table", "title": "Consolidated Statements of Operations (in millions)", "content": "| Metric | Q2 2025 | Q2 2024 | Six Months 2025 | Six Months 2024 |\n| :--- | :--- | :--- | :--- | :--- |\n| Total Revenue | $666 | $722 | $1,283 | $1,432 |\n| Total Gross Margin | $153 | $126 | $288 | $264 |\n| Gross Margin % | 23.0% | 17.5% | 22.4% | 18.4% |\n| Income (Loss) from Operations | $14 | $(34) | $(6) | $(53) |\n| Income (Loss) from Continuing Operations | $1 | $(90) | $(19) | $(161) |", "chunk_num": [29]} ], "start_page": 9}, {"level": 3, "title": "Revenue and Adjusted EBITDA Summary by Segment", "item_id": "Revenue and Adjusted EBITDA Summary by Segment", "summary": "In Q2 2025, the Restaurants segment revenue grew 2% to $205 million with a 10% increase in Adjusted EBITDA to $68 million. The Retail segment saw revenue decline 12% to $454 million, but its Adjusted EBITDA decreased by a smaller 7% to $81 million, with its margin improving. Overall company Adjusted EBITDA increased 20% to $95 million for the quarter.", "end_page": 10, "key_points": [ {"type": "table", "title": "Q2 2025 Segment Performance (in millions)", "content": "| Segment | Revenue | % Change YoY | Adjusted EBITDA | % Change YoY | Adj. EBITDA Margin % |\n| :--- | :--- | :--- | :--- | :--- | :--- |\n| Retail | $454 | (12)% | $81 | (7)% | 17.8% |\n| Restaurants | $205 | 2% | $68 | 10% | 33.2% |\n| **Total** | **$666** | **(8)%** | **$95** | **20%** | **14.3%** |", "chunk_num": [31]} ], "start_page": 10}, {"level": 3, "title": "Consolidated Balance Sheets", "item_id": "Consolidated Balance Sheets", "summary": "As of June 30, 2025, NCR Voyix's total assets stood at $3.98 billion, down from $4.45 billion at year-end 2024, primarily driven by a decrease in cash and cash equivalents from $722 million to $276 million. Total liabilities also decreased to $2.84 billion from $3.25 billion, resulting in a slight decline in total stockholders' equity to $867 million.", "end_page": 11, "key_points": [ {"type": "table", "title": "Key Balance Sheet Items (in millions)", "content": "| Account | June 30, 2025 | Dec 31, 2024 |\n| :--- | :--- | :--- |\n| Cash and cash equivalents | $276 | $722 |\n| Total current assets | $1,222 | $1,671 |\n| Total assets | $3,984 | $4,452 |\n| Total current liabilities | $1,054 | $1,420 |\n| Long-term debt | $1,099 | $1,098 |\n| Total liabilities | $2,841 | $3,245 |\n| Total stockholders' equity | $867 | $931 |", "chunk_num": [34]} ], "start_page": 11}, {"level": 3, "title": "Consolidated Statements of Cash Flows", "item_id": "Consolidated Statements of Cash Flows", "summary": "For the six months ended June 30, 2025, the company reported a net cash outflow from operating activities of $284 million, a significant reversal from a $27 million inflow in the same period of 2024. Net cash used in investing and financing activities were $75 million and $86 million, respectively. This resulted in a decrease in cash, cash equivalents, and restricted cash of $440 million.", "end_page": 12, "key_points": [ {"type": "table", "title": "Six Months Ended June 30 Cash Flow Summary (in millions)", "content": "| Activity | 2025 | 2024 |\n| :--- | :--- | :--- |\n| Net cash provided by (used in) operating activities | $(284) | $27 |\n| Net cash provided by (used in) investing activities | $(75) | $(81) |\n| Net cash provided by (used in) financing activities | $(86) | $15 |\n| **Increase (decrease) in cash** | **$(440)** | **$(53)** |", "chunk_num": [36]} ], "start_page": 12} ], "end_page": 12, "key_points": [], "start_page": 9}, {"level": 2, "title": "Reconciliation of GAAP to Non-GAAP Measures", "item_id": "Reconciliation of GAAP to Non-GAAP Measures", "summary": "This section provides detailed reconciliations of GAAP financial figures to the non-GAAP metrics management uses to evaluate performance. Key adjustments include removing the impact of depreciation, amortization, stock-based compensation, and transformation costs. For Q2 2025, Net Income of $1 million reconciled to an Adjusted EBITDA of $95 million, and GAAP EPS of $(0.02) reconciled to a Non-GAAP EPS of $0.19.", "children": [ {"level": 3, "title": "Reconciliation to Adjusted EBITDA", "item_id": "Reconciliation to Adjusted EBITDA", "summary": "The company reconciled its Q2 2025 GAAP Net Income of $1 million to a Non-GAAP Adjusted EBITDA of $95 million. Major adjustments included adding back $51 million for depreciation and amortization, $16 million for transformation and restructuring costs, and $14 million for interest expense. This represents a year-over-year increase from an Adjusted EBITDA of $79 million in Q2 2024.", "end_page": 6, "key_points": [ {"type": "table", "title": "Adjusted EBITDA Reconciliation (in millions)", "content": "| Line Item | Q2 2025 | Q2 2024 |\n| :--- | :--- | :--- |\n| Net Income (Loss) from Continuing Operations (GAAP) | $1 | $(90) |\n| Depreciation and amortization | $51 | $52 |\n| Interest expense | $14 | $41 |\n| Transformation and restructuring costs | $16 | $50 |\n| Stock-based compensation expense | $9 | $12 |\n| Other adjustments | $4 | $4 |\n| **Adjusted EBITDA (Non-GAAP)** | **$95** | **$79** |", "chunk_num": [24]} ], "start_page": 6}, {"level": 3, "title": "Reconciliation to Non-GAAP Diluted EPS", "item_id": "Reconciliation to Non-GAAP Diluted EPS", "summary": "For Q2 2025, the GAAP Diluted EPS from continuing operations of $(0.02) was adjusted to a Non-GAAP Diluted EPS of $0.19. Significant adjustments included adding back the per-share impact of transformation and restructuring costs ($0.08), stock-based compensation ($0.05), and acquisition-related amortization ($0.03). This compares favorably to a Non-GAAP Diluted EPS of $(0.20) in Q2 2024.", "end_page": 8, "key_points": [ {"type": "table", "title": "Non-GAAP Diluted EPS Reconciliation", "content": "| Line Item | Q2 2025 | Q2 2024 |\n| :--- | :--- | :--- |\n| Diluted EPS from Continuing Operations (GAAP) | $(0.02) | $(0.65) |\n| Transformation and restructuring costs | $0.08 | $0.26 |\n| Stock-based compensation expense | $0.05 | $0.07 |\n| Acquisition-related amortization of intangibles | $0.03 | $0.04 |\n| Other adjustments | $0.05 | $(0.12) |\n| **Non-GAAP Diluted EPS** | **$0.19** | **$(0.20)** |", "chunk_num": [26]} ], "start_page": 7} ], "end_page": 8, "key_points": [], "start_page": 6}, {"level": 2, "title": "Definitions and Cautionary Statements", "item_id": "Definitions and Cautionary Statements", "summary": "This section outlines the definitions for non-GAAP financial measures and key operational terms used throughout the release, providing clarity on their calculation and management's rationale for their use. It also includes a standard safe harbor statement regarding forward-looking statements, highlighting the inherent risks and uncertainties and directing investors to the company's SEC filings for more detailed risk factors.", "children": [ {"level": 3, "title": "Non-GAAP Financial Measures and Key Terms", "item_id": "Non-GAAP Financial Measures and Key Terms", "summary": "The company defines its key non-GAAP metrics, including Adjusted EBITDA, which excludes items like restructuring costs and stock-based compensation, and Non-GAAP Diluted EPS, which removes non-operational items. It also clarifies operational terms such as 'Annual Recurring Revenue' (ARR), which is calculated as the last three months of recurring revenue multiplied by four, plus certain term-based software licenses.", "end_page": 6, "key_points": [ {"type": "insight", "content": "- **Adjusted EBITDA**: Calculated from GAAP net income by adding back interest, taxes, D&A, stock-based compensation, and other special items like restructuring costs. Used to measure ongoing business performance. (chunk_num: 16)\n- **Non-GAAP Diluted EPS**: Excludes pension adjustments and other special items like amortization of acquisition intangibles and restructuring costs from GAAP EPS to better show underlying operational performance. (chunk_num: 17)\n- **Annual Recurring Revenue (ARR)**: Defined as recurring revenue for the last three months multiplied by four, plus the rolling four quarters of term-based software license arrangements with customer termination rights. (chunk_num: 22)", "chunk_num": [16, 17, 22]} ], "start_page": 5}, {"level": 3, "title": "Forward-Looking Statements", "item_id": "Forward-Looking Statements", "summary": "The release contains forward-looking statements regarding the company's 2025 financial outlook, the impact of trade tariffs, and strategic initiatives. These statements are not guarantees of future performance and are subject to numerous risks and uncertainties. The company cautions that actual results could differ materially and directs readers to its Form 10-K and other SEC filings for a comprehensive discussion of risk factors.", "end_page": 4, "key_points": [ {"type": "insight", "content": "This release includes forward-looking statements concerning the fiscal 2025 outlook, strategic initiatives, and other future events. These statements are subject to risks and uncertainties that could cause actual results to differ materially.", "chunk_num": [12]}, {"type": "insight", "content": "Investors are advised that these statements are made as of the date of the release and the company has no obligation to update them. For a full list of risk factors, investors should consult the company's SEC filings, including the 'Item 1A-Risk Factors' in its most recent Annual Report on Form 10-K.", "chunk_num": [12, 13]} ], "start_page": 4} ], "end_page": 6, "key_points": [], "start_page": 4} ], "end_page": 13, "start_page": 1} ] Generate the Markdown output markdown_report = generate_report_outline(outline) print(markdown_report) NCR Voyix Second Quarter 2025 Earnings Release Financial & Business Highlights In Q2 2025, NCR Voyix reported a decrease in total revenue to $666 million but a significant improvement in profitability, with net income from continuing operations reaching $1 million compared to a $90 million loss in the prior year. Adjusted EBITDA grew to $95 million. The company maintained its full-year 2025 outlook and continued strategic initiatives, including share repurchases and growing its platform and payment sites Q2 2025 Financial Highlights vs. Q2 2024 | Metric | Q2 2025 ($M) | Q2 2024 ($M) | | :--- | :--- | :--- | | Revenue | $666M | $722M | | Net Income (Loss) from Continuing Operations | $1M | $(90)M | | Adjusted EBITDA | $95M | $79M | | Diluted EPS from Continuing Operations | $(0.02) | N/A | | Non-GAAP Diluted EPS | $0.19 | N/A | | Software & Services Revenue | $499M | $501M | | ARR | $1.68B | $1.60B | | Software ARR | $799M | $748M | Full-Year 2025 Outlook | Metric | Outlook Range ($M) | | :--- | :--- | | Total Revenue | $2,575M – $2,650M | | Software and Services Revenue | $1,995M – $2,020M | | Hardware Revenue | $580M – $630M | | Adjusted EBITDA | $420M – $445M | | Non-GAAP Diluted EPS | $0.75 - $0.80 | | Adjusted Free Cash Flow - Unrestricted | $170M - $190M | - CEO James G. Kelly expressed encouragement with recent progress in executing key strategic initiatives, including product innovation, expanding payments capabilities, and enhancing global services5 - The company grew its platform sites by 16% and payment sites by 3% year-over-year as of June 30, 2025. Additionally, it repurchased approximately 826 thousand shares for $7 million during the second quarter9 Financial Statements The consolidated financial statements detail the company's performance. The income statement shows a year-over-year revenue decline but improved gross margins and a shift to operating income in Q2. The balance sheet indicates a reduction in cash and total assets since year-end 2024. The cash flow statement reveals a significant use of cash from operations in the first half of 2025, contrasting with cash generation in the prior year Consolidated Statements of Operations For Q2 2025, total revenue decreased to $666 million from $722 million in Q2 2024. However, gross margin improved from 17.5% to 23.0%, and the company swung from a $34 million operating loss to a $14 million operating income. Net income from continuing operations was $1 million, a significant turnaround from a $90 million loss in the prior-year quarter Consolidated Statements of Operations (in millions) | Metric | Q2 2025 (millions) | Q2 2024 (millions) | Six Months 2025 (millions) | Six Months 2024 (millions) | | :--- | :--- | :--- | :--- | :--- | | Total Revenue | $666 | $722 | $1,283 | $1,432 | | Total Gross Margin | $153 | $126 | $288 | $264 | | Gross Margin % | 23.0% | 17.5% | 22.4% | 18.4% | | Income (Loss) from Operations | $14 | $(34) | $(6) | $(53) | | Income (Loss) from Continuing Operations | $1 | $(90) | $(19) | $(161) | Revenue and Adjusted EBITDA Summary by Segment In Q2 2025, the Restaurants segment revenue grew 2% to $205 million with a 10% increase in Adjusted EBITDA to $68 million. The Retail segment saw revenue decline 12% to $454 million, but its Adjusted EBITDA decreased by a smaller 7% to $81 million, with its margin improving. Overall company Adjusted EBITDA increased 20% to $95 million for the quarter Q2 2025 Segment Performance (in millions) | Segment | Revenue (millions) | % Change YoY | Adjusted EBITDA (millions) | % Change YoY | Adj. EBITDA Margin % | | :--- | :--- | :--- | :--- | :--- | :--- | | Retail | $454 | (12)% | $81 | (7)% | 17.8% | | Restaurants | $205 | 2% | $68 | 10% | 33.2% | | Total | $666 | (8)% | $95 | 20% | 14.3% | Consolidated Balance Sheets As of June 30, 2025, NCR Voyix's total assets stood at $3.98 billion, down from $4.45 billion at year-end 2024, primarily driven by a decrease in cash and cash equivalents from $722 million to $276 million. Total liabilities also decreased to $2.84 billion from $3.25 billion, resulting in a slight decline in total stockholders' equity to $867 million Key Balance Sheet Items (in millions) | Account | June 30, 2025 (millions) | Dec 31, 2024 (millions) | | :--- | :--- | :--- | | Cash and cash equivalents | $276 | $722 | | Total current assets | $1,222 | $1,671 | | Total assets | $3,984 | $4,452 | | Total current liabilities | $1,054 | $1,420 | | Long-term debt | $1,099 | $1,098 | | Total liabilities | $2,841 | $3,245 | | Total stockholders' equity | $867 | $931 | Consolidated Statements of Cash Flows For the six months ended June 30, 2025, the company reported a net cash outflow from operating activities of $284 million, a significant reversal from a $27 million inflow in the same period of 2024. Net cash used in investing and financing activities were $75 million and $86 million, respectively. This resulted in a decrease in cash, cash equivalents, and restricted cash of $440 million Six Months Ended June 30 Cash Flow Summary (in millions) | Activity | 2025 (millions) | 2024 (millions) | | :--- | :--- | :--- | | Net cash provided by (used in) operating activities | $(284) | $27 | | Net cash provided by (used in) investing activities | $(75) | $(81) | | Net cash provided by (used in) financing activities | $(86) | $15 | | Increase (decrease) in cash | $(440) | $(53) | Reconciliation of GAAP to Non-GAAP Measures This section provides detailed reconciliations of GAAP financial figures to the non-GAAP metrics management uses to evaluate performance. Key adjustments include removing the impact of depreciation, amortization, stock-based compensation, and transformation costs. For Q2 2025, Net Income of $1 million reconciled to an Adjusted EBITDA of $95 million, and GAAP EPS of $(0.02) reconciled to a Non-GAAP EPS of $0.19 Reconciliation to Adjusted EBITDA The company reconciled its Q2 2025 GAAP Net Income of $1 million to a Non-GAAP Adjusted EBITDA of $95 million. Major adjustments included adding back $51 million for depreciation and amortization, $16 million for transformation and restructuring costs, and $14 million for interest expense. This represents a year-over-year increase from an Adjusted EBITDA of $79 million in Q2 2024 Adjusted EBITDA Reconciliation (in millions) | Line Item | Q2 2025 (millions) | Q2 2024 (millions) | | :--- | :--- | :--- | | Net Income (Loss) from Continuing Operations (GAAP) | $1 | $(90) | | Depreciation and amortization | $51 | $52 | | Interest expense | $14 | $41 | | Transformation and restructuring costs | $16 | $50 | | Stock-based compensation expense | $9 | $12 | | Other adjustments | $4 | $4 | | Adjusted EBITDA (Non-GAAP) | $95 | $79 | Reconciliation to Non-GAAP Diluted EPS For Q2 2025, the GAAP Diluted EPS from continuing operations of $(0.02) was adjusted to a Non-GAAP Diluted EPS of $0.19. Significant adjustments included adding back the per-share impact of transformation and restructuring costs ($0.08), stock-based compensation ($0.05), and acquisition-related amortization ($0.03). This compares favorably to a Non-GAAP Diluted EPS of $(0.20) in Q2 2024 Non-GAAP Diluted EPS Reconciliation | Line Item | Q2 2025 | Q2 2024 | | :--- | :--- | :--- | | Diluted EPS from Continuing Operations (GAAP) | $(0.02) | $(0.65) | | Transformation and restructuring costs | $0.08 | $0.26 | | Stock-based compensation expense | $0.05 | $0.07 | | Acquisition-related amortization of intangibles | $0.03 | $0.04 | | Other adjustments | $0.05 | $(0.12) | | Non-GAAP Diluted EPS | $0.19 | $(0.20) | Definitions and Cautionary Statements This section outlines the definitions for non-GAAP financial measures and key operational terms used throughout the release, providing clarity on their calculation and management's rationale for their use. It also includes a standard safe harbor statement regarding forward-looking statements, highlighting the inherent risks and uncertainties and directing investors to the company's SEC filings for more detailed risk factors Non-GAAP Financial Measures and Key Terms - Adjusted EBITDA: Calculated from GAAP net income by adding back interest, taxes, D&A, stock-based compensation, and other special items like restructuring costs. Used to measure ongoing business performance16 - Non-GAAP Diluted EPS: Excludes pension adjustments and other special items like amortization of acquisition intangibles and restructuring costs from GAAP EPS to better show underlying operational performance17 - Annual Recurring Revenue (ARR): Defined as recurring revenue for the last three months multiplied by four, plus the rolling four quarters of term-based software license arrangements with customer termination rights22 Forward-Looking Statements The release contains forward-looking statements regarding the company's 2025 financial outlook, the impact of trade tariffs, and strategic initiatives. These statements are not guarantees of future performance and are subject to numerous risks and uncertainties. The company cautions that actual results could differ materially and directs readers to its Form 10-K and other SEC filings for a comprehensive discussion of risk factors - This release includes forward-looking statements concerning the fiscal 2025 outlook, strategic initiatives, and other future events. These statements are subject to risks and uncertainties that could cause actual results to differ materially12 - Investors are advised that these statements are made as of the date of the release and the company has no obligation to update them. For a full list of risk factors, investors should consult the company's SEC filings, including the 'Item 1A-Risk Factors' in its most recent Annual Report on Form 10-K1213