Financial Signals

Financial health signals derived from public company filings, earnings data, analyst consensus, and market data to identify business challenges, growth patterns, and sales opportunities across 75,000+ global companies.

Financial health signals derived from public company filings, earnings reports, analyst consensus, and market data across 75,000+ global companies. Collecting, normalizing, and continuously refreshing this data at scale is non-trivial — we handle the aggregation, deduplication, and quality filtering so you don't have to.

Signals are refreshed weekly and are gated to companies that reported earnings in the past 7 days — ensuring every signal you receive reflects a freshly announced result, not stale quarterly data. Every signal includes data.earnings_date (the announcement that triggered it) and data.growth_period_end (the fiscal quarter the underlying metrics reflect).

Why This Signal Matters

  • Validate pain points - Time outreach around earnings announcements when pain points are top of mind
  • Support ROI conversations - Use prospect's actual financial metrics (e.g., "With your revenue declining 24% last quarter...")
  • Identify budget availability - Track capital expenditure trends, free cash flow, and investment priorities
  • Match solutions - Align your pitch to documented financial challenges (e.g., pitching automation when margins compress)
  • Target cost-sensitive buyers - Engage when margins are under pressure or cash is running low
  • Time around earnings - Surface opportunities when executive attention is heightened (beat or miss)
  • Prioritize outreach - Use relevance scoring and urgency levels to focus on the highest-value signals first

Available Subtypes

Distress (7 signals)

Subtype EnumDescription
revenueDeclineRevenue declining 10%+ year-over-year
unprofitableAndShrinkingLosing money and revenue declining simultaneously
cashCrunchRunning low on cash (current ratio < 0.8)
drowningInDebtDangerously over-leveraged (debt/equity > 3x)
fcfCollapseFree cash flow collapsed despite revenue growth
distressBorrowingBorrowing heavily while revenue shrinks
debtServiceStrainCash flow barely covers debt obligations

Efficiency (8 signals)

Subtype EnumDescription
sgaBloatSales & admin costs consuming 50%+ of revenue
sgaCostExplosionSales costs growing much faster than revenue
operatingLossOperating at a significant loss
slowCollectionsTaking too long to collect payments (DSO > 90 days)
inventoryPileupInventory sitting unsold (days > 120)
receivablesBallooningReceivables growing much faster than revenue
grossMarginCompressionGross margins shrinking despite revenue growth
cashConversionCycleProblemCash conversion cycle is dangerously long

Growth (6 signals)

Subtype EnumDescription
strongRevenueGrowthRevenue surging 20%+ year-over-year
rdSpendingSurgePouring money into R&D (50%+ growth in R&D spend)
massiveCapexCycleMassive capital investment cycle
freeCashFlowMachineGenerating massive free cash flow
debtFueledGrowthBorrowing heavily to fund growth
earningsAcceleratingEarnings growth is accelerating quarter-over-quarter

Stagnation (2 signals)

Subtype EnumDescription
flatRevenueRevenue flat with no meaningful growth
multiYearDeclineRevenue declining for multiple consecutive years

Earnings (2 signals)

Subtype EnumDescription
beatExpectationsBeat earnings expectations significantly (15%+)
missedExpectationsMissed earnings expectations badly

Momentum (2 signals)

Subtype EnumDescription
bearishTrendStock in significant downtrend (50-day MA 10%+ below 200-day)
highVolatilityExtremely volatile stock (beta > 2.5)

Market (1 signal)

Subtype EnumDescription
growingButUndervaluedGrowing revenue but market doesn't reflect it yet

Valuation (3 signals)

Subtype EnumDescription
overvaluedStagnantExpensive stock with no growth to justify it
dcfUndervaluedTrading well below intrinsic (DCF) value
priceToBookCollapseTrading below book value

Capital (3 signals)

Subtype EnumDescription
highDividendPayoutReturning most profits to shareholders via dividends
shareDilutionAggressively diluting shareholders
dividendGrowthStreakConsistent dividend grower

Quality (5 signals)

Subtype EnumDescription
lowEarningsQualityEarnings quality is questionable (accruals > cash flow)
highReturnOnCapitalExceptional return on invested capital (ROIC > 25%)
operatingLeverageKickingOperating leverage is kicking in — margins expanding
profitabilityTurnaroundProfitability inflecting from negative to positive
assetLightScalerAsset-light business scaling efficiently

Analyst (2 signals)

Subtype EnumDescription
analystStrongBuyWall Street consensus: Strong Buy
analystSellWall Street consensus: Sell

Technology (2 signals)

Subtype EnumDescription
rdHeavyHeavy R&D spender (20%+ of revenue)
sbcHeavyHeavy stock-based compensation relative to revenue

Signal Categories

Signals are organized into 12 categories:

CategoryDescription
distressCompanies facing financial difficulties — cost reduction opportunities
efficiencyOperational inefficiencies — process optimization opportunities
growthRapid expansion — scalability and infrastructure opportunities
stagnationFlat or declining growth — innovation and market expansion opportunities
earningsEarnings surprises — timing opportunities around investor attention
momentumStock trend signals — investor confidence indicators
marketMarket position signals — competitive dynamics
valuationMarket perception issues — strategic repositioning opportunities
capitalCapital allocation patterns — investment opportunity indicators
qualityEarnings quality and operational excellence signals
analystWall Street analyst consensus ratings
technologyR&D and technology investment signals

Schema

{
  "signal_id": "fdc9dc36-8180-4a92-8a4a-ce5736149216",  // unique per signal event
  "batch_id": "financial-2026-02-25-f0c91d",             // identifies the processing run
  "signal_type": "financial",
  "signal_subtype": "revenueDecline",                    // one of 43 subtypes
  "detected_at": "2026-02-25T16:55:28.586401+00:00",
  "association": "company",

  "company": {
    "name": "The Mosaic Company",
    "domain": "mosaicco.com",                            // use for CRM matching
    "linkedin_url": "https://www.linkedin.com/company/the-mosaic-company",
    "industries": ["Agricultural Inputs"],
    "employee_count_low": 10001,                         // banded, not exact
    "employee_count_high": null,                         // null = 10,001+
    "description": "The Mosaic Company produces and markets concentrated phosphate and potash crop nutrients."
  },

  "data": {
    "summary": "The Mosaic Company (MOS): Revenue declining year-over-year",
    "detail": "Revenue declined -24.6% year-over-year. This is a significant decline suggesting real business headwinds.",
    "relevance": 0.72,                                   // 0.0–1.0 normalized
    "relevance_score": 72,                               // 0–100, use for filtering
    "confidence": "high",                                // high / medium / low
    "sentiment": "negative",
    "signal_category": "distress",
    "sales_relevance": "Companies with declining revenue are actively looking for ways to reverse the trend. Position solutions that drive customer acquisition, retention, or operational efficiency.",
    "condition_met": "QuarterlyRevenueGrowthYOY < -0.1", // exact condition that fired
    "data_source": "financial_filings",
    "last_refreshed": "2026-02-25",
    "data_quality_flags": null,                          // non-null = lower confidence
    "is_primary": true,                                  // highest-relevance signal for this company this batch
    "expires_at": "2026-05-26T16:55:28.586401+00:00",   // detected_at + shelf_life_days
    "ticker": "MOS",
    "sector": "Basic Materials",
    "country": "US",
    "ceo": "Bruce M. Bodine Jr.",
    "size_tier": "enterprise",
    "urgency": "high",
    "buyer_persona": ["CFO", "CEO", "CRO"],              // adapts to company size
    "signal_strength_label": "Strong",
    "talk_track": "Your revenue declined last quarter — are you exploring new ways to win back market share or expand into adjacent segments?",
    "recommended_actions": [
      "Reference the specific revenue decline in outreach",
      "Position solutions that drive customer acquisition or retention",
      "Emphasize fast time-to-value and measurable ROI"
    ],
    "shelf_life_days": 90,
    "earnings_date": "2026-02-19",                       // announcement that triggered this signal
    "growth_period_end": "2025-12-31"                    // fiscal quarter the metrics reflect
  }
}

Field Reference

Core Fields

FieldTypeRequiredDescription
signal_idstring (UUID)YesUnique identifier for this signal
batch_idstringYesProcessing batch identifier (e.g., fmp-v2-2026-02-25-f0c91d)
signal_typestringYesAlways financial for this signal type
signal_subtypestringYesSpecific signal subtype (see 43 subtypes above)
detected_atstring (ISO 8601)YesTimestamp when the signal was generated
associationstringYesEntity type this signal is associated with (always company)

Company Object

Use domain or linkedin_url to match against your CRM.

FieldTypeRequiredDescription
company.namestringYesCompany name
company.domainstringCompany website domain
company.linkedin_urlstring (URL)LinkedIn company page URL
company.industriesarray[string]Industry classifications
company.employee_count_lowintegerLower bound of employee count band (e.g. 1001 for a company with ~2,000 employees)
company.employee_count_highintegerUpper bound of employee count band (e.g. 5000). null for companies with 10,001+ employees
company.descriptionstringBrief company description

Data Object

FieldTypeRequiredDescription
data.summarystringYesOne-line headline: company name, ticker, and signal name
data.detailstringYesHuman-readable explanation with the specific metric values that fired the signal
data.relevancefloat (0.0-1.0)YesRelevance score normalized to 0.0–1.0
data.relevance_scoreinteger (0-100)YesComposite 0–100 score — use this to filter signal volume (see Relevance Scoring)
data.confidencestringYeshigh / medium / low — downgrades to low automatically when data quality flags are present
data.sentimentstringYespositive, negative, or neutral
data.signal_categorystringYesTop-level category grouping (see 12 categories above)
data.sales_relevancestringYesWhy this signal matters for sales — what the company is likely feeling and how to position
data.condition_metstringYesThe exact condition that triggered this signal (useful for debugging or building custom filters)
data.data_sourcestringYesAlways financial_filings
data.last_refreshedstringYesDate this signal was generated
data.data_quality_flagsarray[string]Populated when underlying metrics were capped or are potentially stale. See Data Quality for all values. Non-null always means confidence: low.
data.is_primarybooleanYestrue for the single highest-relevance signal per company in a given batch — useful if you want one signal per company
data.expires_atstring (ISO 8601)YesSignal expiry timestamp — detected_at + shelf_life_days
data.tickerstringYesStock ticker
data.sectorstringBroad sector (e.g., Technology, Healthcare, Financial Services)
data.countrystringISO country code (e.g., US, GB, JP)
data.ceostringCurrent CEO name
data.size_tierstringstartup (<100 employees), mid (100–1,000), enterprise (1,000+), or unknown
data.urgencystringYesHow time-sensitive this signal is: critical, high, medium, or low
data.buyer_personaarray[string]YesWho to contact — adapts to company size (e.g., CEO/Founder for startups instead of CFO)
data.signal_strength_labelstringYesWeak, Moderate, Strong, or Very Strong — downgrades one level when data quality flags are present
data.talk_trackstringYesReady-to-use conversation opener with real metrics filled in
data.recommended_actionsarray[string]Yes3 concrete actions for using this signal in outreach
data.shelf_life_daysintegerYesHow long this signal stays actionable: 30, 45, 60, 90, or 120 days depending on signal type
data.earnings_datestring (YYYY-MM-DD)YesThe earnings announcement that triggered this signal — use this to time your outreach
data.growth_period_endstring (YYYY-MM-DD)YesFiscal quarter-end date for the underlying growth metrics (e.g. 2025-12-31 = Q4 2025)

Relevance Scoring

Each signal receives a composite relevance score from 0-100 based on 7 factors:

FactorRangeDescription
Base score0-30Signal type weight — how inherently actionable is this signal type
Severity0-25How far past the threshold (2x the threshold = higher score)
Enrichment0-15Does the company have domain, LinkedIn, and sector data
Data quality0-10How many metrics were non-null for this company
Urgency bonus0-10Critical: +10, High: +6, Medium: +2, Low: +0
Size bonus0-5Enterprise: +5, Mid: +3, Startup: +1, Unknown: +0
DQ penalty0-10Deducted when values were capped (3 points per capped metric)

Use data.is_primary to get the single highest-relevance signal per company, or filter by data.relevance_score threshold to control volume.

Data Quality

When a signal's underlying metrics have been capped or contain known data issues, data.data_quality_flags is populated with one or more of the following values. Any signal with non-null flags has confidence set to low and signal_strength_label downgraded one level.

FlagCause
growth_metrics_potentially_prior_quarterGrowth metrics may reflect the prior quarter — the earnings announcement was processed before the underlying financials were fully updated. Affects a small number of companies each earnings season.
revenue_growth_cappedRevenue growth capped at ±1,000% to suppress low-base-effect outliers
sga_growth_cappedSGA expense growth capped at ±1,000%
rd_growth_cappedR&D expense growth capped at ±1,000%
debt_growth_cappedDebt growth capped at ±1,000%
fcf_growth_cappedFree cash flow growth capped at ±1,000%
receivables_growth_cappedReceivables growth capped at ±1,000%
net_income_growth_cappedNet income growth capped at ±1,000%
gross_profit_growth_cappedGross profit growth capped at ±1,000%
operating_income_growth_cappedOperating income growth capped at ±1,000%
earnings_acceleration_cappedEarnings acceleration delta capped at ±500pp
dso_capped_365Days sales outstanding capped at 365 days
surprise_pct_cappedEarnings surprise capped at ±500%

Freshness

Financial signals are only generated for companies that reported earnings within the past 7 days. This is the core gate that ensures signals always reflect newly released results rather than re-firing on stale quarterly data.

Each company reports earnings once per quarter. Running the pipeline weekly with a 7-day window means each company's signals fire exactly once per quarter — the week their results are announced.

data.earnings_date tells you which announcement triggered the signal. data.growth_period_end tells you which fiscal quarter's financial metrics were used.

Filtering

Several filters are applied before signals are delivered to ensure quality and relevance:

  • Earnings freshness gate — Only companies that reported earnings in the past 7 days are processed. This ensures signals always reflect a fresh announcement, not stale quarterly data.
  • Market cap floor — Companies below $10M market cap are excluded (penny stocks, shell companies).
  • REIT and fund exclusion — REITs, ETFs, closed-end funds, and BDCs are excluded. Their financials are structurally non-standard and produce misleading signals.
  • Post-IPO filter — Companies with less than 12 months of trading history are excluded. Without a full baseline period, year-over-year comparisons are not meaningful.
  • Duplicate company dedup — When the same company trades on multiple exchanges or under multiple share classes, only the primary listing is kept.
  • Contradiction suppression — When two signals contradict each other for the same company (e.g., cashCrunch + freeCashFlowMachine), the weaker signal is suppressed.

Subtype Details & Messaging Examples

Revenue Declining Year-over-Year

The company's revenue shrank 10%+ compared to last year, suggesting real business headwinds — lost customers, competitive pressure, or market contraction.

Talk track:

"Your revenue declined last quarter — are you exploring new ways to win back market share or expand into adjacent segments?"

Recommended actions:

  1. Reference the specific revenue decline in outreach
  2. Position solutions that drive customer acquisition or retention
  3. Emphasize fast time-to-value and measurable ROI

Beat Earnings Expectations

The company outperformed Wall Street estimates by 15%+. Post-beat companies are confident, stock is up, and budgets feel looser.

Talk track:

"Congrats on the earnings beat — when momentum is strong, it's the best time to lock in new investments. What's top of your priority list?"

Recommended actions:

  1. Reach out within 1-2 weeks of the earnings report
  2. Reference the beat as a conversation opener
  3. Budget is loosened post-beat — decision-makers are optimistic

Free Cash Flow Collapsed

Despite revenue holding steady or growing, free cash flow has turned deeply negative — the company is burning cash on operations, capex, or both.

Talk track:

"Noticed your cash flow has come under pressure even as revenue holds — are you looking at ways to improve cash efficiency or reduce operational burn?"

Recommended actions:

  1. Highlight solutions that reduce cash burn or shorten cash conversion cycles
  2. Position around operational efficiency and cost containment
  3. Target CFO or VP Finance — they are feeling the pressure

Profitability Turnaround

After a period of losses, the company's operating income has flipped positive. This is a critical inflection point where leadership is optimistic but cautious about sustaining momentum.

Talk track:

"Congratulations on reaching profitability — that inflection point changes everything. How are you thinking about scaling while maintaining margins?"

Recommended actions:

  1. Reference the turnaround — it validates the company's direction
  2. Position solutions that help sustain and scale profitability
  3. Target CRO and VP Sales — growth with discipline is now the mandate

Missed Earnings Expectations

The company underperformed Wall Street estimates significantly. Executives are under pressure, boards are asking hard questions, and cost-cutting is likely.

Talk track:

"Saw the earnings miss last quarter — when expectations reset, it often accelerates investment in efficiency. Is that something you're evaluating?"

Recommended actions:

  1. Time outreach 1-3 weeks after the miss — urgency is high
  2. Position around efficiency, cost reduction, or revenue acceleration
  3. Be empathetic, not opportunistic — acknowledge the challenge

Analyst Consensus: Sell

Wall Street analysts have a consensus Sell rating on this company. The company is likely under significant scrutiny and pressure to improve performance.

Talk track:

"When analyst sentiment shifts, leadership tends to re-evaluate priorities quickly. Are you exploring new approaches to drive results?"

Recommended actions:

  1. Approach with solutions that address the specific concerns analysts have flagged
  2. Target senior leadership — they are motivated to act
  3. Emphasize measurable impact and fast ROI

API Usage

Generate Content API

{
  "enabledInsights": ["financial"],
  "disabledInsights": []
}

Generate Insights API

{
  "insightSubtype": "revenueDecline"
}

Filtering by Subtype

You can request specific subtypes:

{
  "insightSubtype": "beatExpectations"
}
{
  "insightSubtype": "cashCrunch"
}

Example Outputs

"The Mosaic Company's revenue declined 24.6% year-over-year — are you exploring new ways to win back market share or expand into adjacent segments?"

"Congrats on the earnings beat — when momentum is strong, it's the best time to lock in new investments. What's top of your priority list?"

"Noticed your SGA costs are growing 3x faster than revenue — are you exploring ways to improve sales efficiency without sacrificing growth?"

"Your gross margins compressed last quarter even as revenue grew — we're helping companies like yours protect margins while scaling. Worth a quick chat?"

Coverage

  • Source: Aggregated from public company filings, earnings reports, analyst consensus data, and market data across global exchanges — normalized, deduplicated, and quality-filtered
  • Refresh: Monthly
  • Universe: 75,000+ public companies tracked across US and international exchanges
  • Minimum market cap: $10M (penny stocks and shell companies excluded)
  • Weekly signal volume (US only, 7-day window): ~1,500–2,500 signals across ~400–550 companies — varies by earnings season intensity (peak: January–March and July–August)
  • Weekly signal volume (global, 7-day window): ~5,000–8,000 signals across ~1,200–1,600 companies
  • Best for: Enterprise sales, finance-focused solutions, C-suite engagement, account-based marketing