finance

Provider-neutral finance types for Kit

This package is the first boundary for a future normalized finance facade above provider-specific packages such as kit-yahoo-finance, kit-finnhub, and kit-fmp.

Current Scope

This initial slice exports shared types, a provider enum, and the first normalized adapter:

  • FinanceProvider
  • FinanceError
  • FinanceProviderFailure
  • FinanceProvidedValue a
  • FinanceAdapter
  • FinanceCapability
  • FinanceCapabilityDetails
  • SecurityQuote
  • PriceBar
  • SymbolMatch
  • CompanyOverview
  • KeyExecutive
  • SharesFloat
  • EarningsResult
  • HistoricalEarningsCalendarEvent
  • EarningsCallDate
  • EarningsCallTranscript
  • AnalystEstimatePeriod
  • AnalystEstimate
  • RatingSnapshot
  • HistoricalRating
  • AnalystGradeChange
  • RecommendationSummary
  • PriceTargetSummary
  • FinancialHealthScore
  • SECFiling
  • RevenueSegmentationPeriod
  • RevenueSegmentValue
  • RevenueSegmentationRow
  • DividendEvent
  • SplitEvent
  • MarketStatus
  • FinanceDateRange
  • FinanceHistoryRange
  • FinanceInterval
  • FinanceTimestampRange
  • get-quote
  • get-quote-preferred
  • get-quote-preferred-with-provider
  • search-symbols
  • search-symbols-preferred
  • search-symbols-preferred-with-provider
  • get-price-history
  • get-price-history-preferred
  • get-price-history-preferred-with-provider
  • get-price-history-range
  • get-price-history-range-preferred
  • get-price-history-range-preferred-with-provider
  • get-price-targets
  • get-price-targets-preferred
  • get-price-targets-preferred-with-provider
  • get-financial-health-score
  • get-financial-health-score-preferred
  • get-financial-health-score-preferred-with-provider
  • get-sec-filings
  • get-sec-filings-preferred
  • get-sec-filings-preferred-with-provider
  • get-revenue-product-segmentation
  • get-revenue-product-segmentation-preferred
  • get-revenue-product-segmentation-preferred-with-provider
  • get-revenue-geographic-segmentation
  • get-revenue-geographic-segmentation-preferred
  • get-revenue-geographic-segmentation-preferred-with-provider
  • get-key-executives
  • get-key-executives-preferred
  • get-key-executives-preferred-with-provider
  • get-shares-float
  • get-shares-float-preferred
  • get-shares-float-preferred-with-provider
  • get-historical-earnings-calendar
  • get-historical-earnings-calendar-preferred
  • get-historical-earnings-calendar-preferred-with-provider
  • get-earnings-call-dates
  • get-earnings-call-dates-preferred
  • get-earnings-call-dates-preferred-with-provider
  • get-earnings-call-transcript
  • get-earnings-call-transcript-preferred
  • get-earnings-call-transcript-preferred-with-provider
  • get-analyst-estimates
  • get-analyst-estimates-preferred
  • get-analyst-estimates-preferred-with-provider
  • get-rating-snapshot
  • get-rating-snapshot-preferred
  • get-rating-snapshot-preferred-with-provider
  • get-historical-ratings
  • get-historical-ratings-preferred
  • get-historical-ratings-preferred-with-provider
  • get-analyst-grade-changes
  • get-analyst-grade-changes-preferred
  • get-analyst-grade-changes-preferred-with-provider
  • get-recommendations
  • get-recommendations-preferred
  • get-recommendations-preferred-with-provider
  • get-earnings-results
  • get-earnings-results-preferred
  • get-earnings-results-preferred-with-provider
  • get-market-status
  • get-market-status-preferred
  • get-market-status-preferred-with-provider
  • get-company-overview
  • get-company-overview-preferred
  • get-company-overview-preferred-with-provider
  • get-dividends
  • get-dividends-preferred
  • get-dividends-preferred-with-provider
  • get-dividends-range
  • get-dividends-range-preferred
  • get-dividends-range-preferred-with-provider
  • get-splits
  • get-splits-preferred
  • get-splits-preferred-with-provider
  • get-splits-range
  • get-splits-range-preferred
  • get-splits-range-preferred-with-provider
  • adapter-name
  • capability-name
  • provider-capability
  • provider-capability-details
  • provider-capability-matrix
  • supports-adapter?
  • supported-adapters
  • error-kind
  • provided-provider
  • provided-value
  • error-message
  • preferred-provider-failures

It does not yet implement caching or the broader fetch surface.

It now includes ordered-provider helper wrappers across the current normalized read adapters.

FinanceTimestampRange is provider-facing Unix seconds; calendar formatting inside the facade converts through milliseconds when it uses Kit's Time builtins.

It also exposes provider capability metadata so callers can distinguish full, partial, and unsupported adapters before they invoke the facade, and inspect machine-readable field gaps for partial adapters.

Installation

kit add gitlab.com/kit-lang/packages/kit-finance.git

Usage

import Kit.Finance as Finance

provider = Finnhub {api-key: "demo"}

quote = SecurityQuote {
  symbol: "AAPL", 
  price: 210.25, 
  change: 1.10, 
  change-percent: 0.53, 
  timestamp: 1713139200, 
  open: Some 209.20, 
  high: Some 211.00, 
  low: Some 208.90, 
  previous-close: Some 209.15, 
  volume: Some 51234000, 
  market-cap: Some 3200000000000.0, 
  name: Some "Apple Inc.", 
  exchange: Some "NASDAQ", 
  provider: Finance.provider-name provider
}

Examples

  • examples/capabilities.kit prints the current provider capability matrix, including field-level gaps for partial adapters
  • examples/fmp-analyst-research.kit shows the normalized FMP-backed analyst-research path through kit-finance
  • examples/fmp-fundamentals.kit shows the normalized FMP-backed company-information path through kit-finance
  • examples/fmp-earnings-research.kit shows the normalized FMP-backed earnings-research path through kit-finance
  • examples/preferred-provider.kit shows how *-preferred-with-provider, provided-provider, and provided-value work together on success and how to inspect ordered fallback failures
  • examples/preferred-search.kit shows the same success/error pattern for search-symbols-preferred-with-provider

Current Adapter Coverage

  • get-quote normalizes Yahoo and Finnhub quote responses into SecurityQuote
  • get-quote-preferred tries providers in order until one quote request succeeds
  • get-quote-preferred-with-provider does the same but returns {provider, value}
  • search-symbols normalizes Yahoo and Finnhub search results into SymbolMatch
  • search-symbols-preferred tries providers in order until one symbol search succeeds
  • search-symbols-preferred-with-provider does the same but returns {provider, value}
  • get-price-history and get-price-history-range normalize Yahoo bars and Finnhub candles into PriceBar
  • get-price-history-preferred and get-price-history-range-preferred try providers in order for normalized history requests
  • get-price-history-preferred-with-provider and get-price-history-range-preferred-with-provider also preserve the winning provider on success
  • get-price-targets normalizes Yahoo analyst price target summaries and FMP price target consensus rows into PriceTargetSummary
  • get-price-targets-preferred tries providers in order until one price-target request succeeds
  • get-price-targets-preferred-with-provider does the same but returns {provider, value}
  • get-financial-health-score normalizes FMP financial score rows into FinancialHealthScore
  • get-financial-health-score-preferred tries providers in order until one financial-health request succeeds
  • get-financial-health-score-preferred-with-provider does the same but returns {provider, value}
  • get-sec-filings normalizes FMP filing rows into SECFiling, with explicit filing-type filtering and limit passthrough
  • get-sec-filings-preferred tries providers in order until one SEC filings request succeeds
  • get-sec-filings-preferred-with-provider does the same but returns {provider, value}
  • get-revenue-product-segmentation normalizes FMP product revenue segmentation rows into RevenueSegmentationRow
  • get-revenue-product-segmentation-preferred tries providers in order until one product segmentation request succeeds
  • get-revenue-product-segmentation-preferred-with-provider does the same but returns {provider, value}
  • get-revenue-geographic-segmentation normalizes FMP geographic revenue segmentation rows into RevenueSegmentationRow
  • get-revenue-geographic-segmentation-preferred tries providers in order until one geographic segmentation request succeeds
  • get-revenue-geographic-segmentation-preferred-with-provider does the same but returns {provider, value}
  • get-key-executives normalizes FMP executive rows into KeyExecutive
  • get-key-executives-preferred tries providers in order until one key-executives request succeeds
  • get-key-executives-preferred-with-provider does the same but returns {provider, value}
  • get-shares-float normalizes FMP float rows into SharesFloat
  • get-shares-float-preferred tries providers in order until one shares-float request succeeds
  • get-shares-float-preferred-with-provider does the same but returns {provider, value}
  • get-historical-earnings-calendar normalizes FMP symbol-specific earnings calendar rows into HistoricalEarningsCalendarEvent
  • get-historical-earnings-calendar-preferred tries providers in order until one historical earnings calendar request succeeds
  • get-historical-earnings-calendar-preferred-with-provider does the same but returns {provider, value}
  • get-earnings-call-dates normalizes FMP transcript-date metadata rows into EarningsCallDate
  • get-earnings-call-dates-preferred tries providers in order until one earnings-call-date request succeeds
  • get-earnings-call-dates-preferred-with-provider does the same but returns {provider, value}
  • get-earnings-call-transcript normalizes FMP transcript rows into EarningsCallTranscript
  • get-earnings-call-transcript-preferred tries providers in order until one earnings-call-transcript request succeeds
  • get-earnings-call-transcript-preferred-with-provider does the same but returns {provider, value}
  • get-analyst-estimates normalizes FMP financial estimate rows into AnalystEstimate
  • get-analyst-estimates-preferred tries providers in order until one analyst-estimates request succeeds
  • get-analyst-estimates-preferred-with-provider does the same but returns {provider, value}
  • get-rating-snapshot normalizes FMP ratings scorecard rows into RatingSnapshot
  • get-rating-snapshot-preferred tries providers in order until one ratings-snapshot request succeeds
  • get-rating-snapshot-preferred-with-provider does the same but returns {provider, value}
  • get-historical-ratings normalizes FMP dated ratings rows into HistoricalRating
  • get-historical-ratings-preferred tries providers in order until one historical-ratings request succeeds
  • get-historical-ratings-preferred-with-provider does the same but returns {provider, value}
  • get-analyst-grade-changes normalizes FMP dated broker action rows into AnalystGradeChange
  • get-analyst-grade-changes-preferred tries providers in order until one analyst-grade-changes request succeeds
  • get-analyst-grade-changes-preferred-with-provider does the same but returns {provider, value}
  • get-recommendations normalizes Yahoo and Finnhub analyst trend rows plus the FMP grades-consensus snapshot into RecommendationSummary, preserving consensus-label when the provider exposes it
  • get-recommendations-preferred tries providers in order until one recommendation request succeeds
  • get-recommendations-preferred-with-provider does the same but returns {provider, value}
  • get-earnings-results normalizes Yahoo earnings history, Finnhub earnings rows, and FMP earnings reports into EarningsResult
  • get-earnings-results-preferred tries providers in order until one earnings request succeeds
  • get-earnings-results-preferred-with-provider does the same but returns {provider, value}
  • get-market-status normalizes Yahoo market status and Finnhub exchange status into MarketStatus
  • get-market-status-preferred tries providers in order until one market-status request succeeds
  • get-market-status-preferred-with-provider does the same but returns {provider, value}
  • get-company-overview normalizes Finnhub company profiles, a richer Yahoo quoteSummary-based overview, and FMP company profiles into CompanyOverview, with quote fallback when Yahoo profile modules are sparse and shares-outstanding enrichment from FMP shares-float rows
  • get-company-overview-preferred tries providers in order until one overview request succeeds
  • get-company-overview-preferred-with-provider does the same but returns {provider, value}
  • get-dividends and get-dividends-range normalize Yahoo and Finnhub corporate action dividend rows into DividendEvent; Yahoo explicit date ranges are applied locally after normalization
  • get-dividends-preferred and get-dividends-range-preferred try providers in order for normalized dividend event requests
  • get-dividends-preferred-with-provider and get-dividends-range-preferred-with-provider also preserve the winning provider on success
  • get-splits and get-splits-range normalize Yahoo and Finnhub split rows into SplitEvent; Yahoo explicit date ranges are applied locally after normalization
  • get-splits-preferred and get-splits-range-preferred try providers in order for normalized split event requests
  • get-splits-preferred-with-provider and get-splits-range-preferred-with-provider also preserve the winning provider on success
  • relative YTD now starts at January 1 of the current year in UTC, and relative Max now maps to the Unix epoch instead of a 20-year placeholder
  • provider-capability, supports-adapter?, and supported-adapters report whether a provider has full, partial, or unsupported coverage for each normalized adapter
  • provider-capability-details and provider-capability-matrix expose field-level gaps for partial adapters and provider notes for every adapter row
  • ordered-provider wrappers now return PreferredProvidersFailed with a full FinanceProviderFailure attempt list when every provider fails, instead of collapsing to only the last error
  • parallel *-preferred-with-provider wrappers return FinanceProvidedValue {provider, value} when they succeed
  • provided-provider and provided-value unwrap successful FinanceProvidedValue results without hard-coding field access
  • error-kind, error-message, and preferred-provider-failures expose fallback errors without requiring downstream code to repeat the enum match

Capability Notes

  • Yahoo marks recommendations, company-overview, dividends-range, and splits-range as partial support because recommendation consensus labels are unavailable, the overview still omits some normalized fields, and explicit event ranges are filtered locally after fetch.
  • Yahoo marks the FMP-only research and fundamentals adapters as unsupported rather than pretending they are available through the shared facade.
  • Finnhub marks search-symbols, market-status, and recommendations as partial support because the normalized surface is thinner than Yahoo for those adapters and recommendation consensus labels are unavailable.
  • FMP now provides full support for financial-health-score, sec-filings, revenue-product-segmentation, revenue-geographic-segmentation, key-executives, shares-float, historical-earnings-calendar, earnings-call-dates, earnings-call-transcript, analyst-estimates, rating-snapshot, historical-ratings, analyst-grade-changes, and earnings-results, partial support for price-targets, recommendations, and company-overview, and unsupported support for the rest of the current adapter matrix.
  • Field-level detail currently reports Yahoo company-overview gaps for logo-url and ipo-date, Finnhub search-symbols gap for exchange, and Finnhub market-status gaps for status, timezone, open-time, close-time, and current-time.
  • Ordered-provider fallback now preserves every failed provider attempt as {provider, kind, message}, which is the main diagnostic surface to inspect when a *-preferred call returns PreferredProvidersFailed.
  • preferred-provider-failures returns that ordered attempt list directly, while error-kind and error-message provide stable string summaries for all FinanceError variants.

Next Step

  1. add tests once the cross-package type-check/import panic is fixed upstream
  2. decide whether preferred-provider wrappers should expose the capability metadata directly alongside normalized results
  3. add tests for the fallback-attempt accumulator once the cross-package import panic is fixed upstream

Exported Functions & Types

FinanceError

Finance facade error wrapper around provider-specific failures.

Variants

NoProvidersConfigured
UnsupportedProvider {provider}
YahooProviderError {YahooFinanceError}
FinnhubProviderError {FinnhubError}
FMPProviderError {FMPError}
PreferredProvidersFailed {attempts}

no-providers-configured

Construct the empty-provider-list error variant.

FinanceError

unsupported-provider

Construct the unsupported-provider error variant.

String -> FinanceError

yahoo-provider-error

Wrap a Yahoo provider error as a facade error.

YahooFinanceError -> FinanceError

finnhub-provider-error

Wrap a Finnhub provider error as a facade error.

FinnhubError -> FinanceError

fmp-provider-error

Wrap an FMP provider error as a facade error.

FMPError -> FinanceError

error-kind

Return the stable error kind name for a FinanceError value.

FinanceError -> String

error-message

Return the user-facing message for a FinanceError value.

FinanceError -> String

preferred-provider-failures

Return the ordered provider failure list for a preferred-provider error. Non-fallback errors return an empty list.

FinanceError -> [FinanceProviderFailure]

wrap-preferred-provider-failures

Wrap an ordered provider failure list as a FinanceError.

[FinanceProviderFailure] -> FinanceError

FinanceDateRange

Provider-neutral date range helper for event queries.

Type

Variants

FinanceDateRange

FinanceHistoryRange

Provider-neutral history range helper.

Type

Variants

FinanceHistoryRange

FinanceInterval

Provider-neutral history interval helper.

Variants

FinanceInterval

FinanceTimestampRange

Explicit timestamp range for history queries.

Type

Variants

FinanceTimestampRange

FinanceError

Finance facade error wrapper around provider-specific failures.

Variants

FinanceFacadeError

FinanceProviderFailure

Provider failure detail for ordered-provider fallback diagnostics.

Type

Variants

FinanceProviderFailure

FinanceProvidedValue

Successful ordered-provider result paired with the winning provider name.

Type

Variants

FinanceProvidedValue {a}

FinanceProvider

Provider selection for normalized finance APIs.

Type

Variants

FinanceProvider

Yahoo

Public provider constructor for Yahoo-backed adapters.

Finnhub

Public provider constructor for Finnhub-backed adapters.

FMP

Public provider constructor for FMP-backed adapters.

FinanceAdapter

Provider-neutral adapter identifiers for capability queries.

Type

Variants

FinanceAdapter

FinanceCapability

Capability level for a provider/adapter pairing.

Type

Variants

FinanceCapability

FinanceCapabilityDetails

Detailed capability report for a provider/adapter pairing.

Type

Variants

FinanceCapabilityDetails

SecurityQuote

Normalized security quote / snapshot.

Type

Variants

SecurityQuote

PriceBar

Normalized OHLCV bar.

Type

Variants

PriceBar

SymbolMatch

Normalized symbol search result.

Type

Variants

SymbolMatch

CompanyOverview

Normalized company overview.

Type

Variants

CompanyOverview

KeyExecutive

Normalized key executive row.

Type

Variants

KeyExecutive

SharesFloat

Normalized shares float row.

Type

Variants

SharesFloat

EarningsResult

Normalized earnings result.

Type

Variants

EarningsResult

HistoricalEarningsCalendarEvent

Normalized historical earnings calendar row.

Type

Variants

HistoricalEarningsCalendarEvent

EarningsCallDate

Normalized earnings call date metadata row.

Type

Variants

EarningsCallDate

EarningsCallTranscript

Normalized earnings call transcript row.

Type

Variants

EarningsCallTranscript

AnalystEstimatePeriod

Period selection for normalized analyst estimate adapters.

Type

Variants

AnalystEstimatePeriod

AnalystEstimate

Normalized analyst estimate row.

Type

Variants

AnalystEstimate

RatingSnapshot

Normalized ratings snapshot row.

Type

Variants

RatingSnapshot

HistoricalRating

Normalized historical ratings row.

Type

Variants

HistoricalRating

AnalystGradeChange

Normalized analyst grade change row.

Type

Variants

AnalystGradeChange

RecommendationSummary

Normalized recommendation summary.

Type

Variants

RecommendationSummary

PriceTargetSummary

Normalized analyst price target summary.

Type

Variants

PriceTargetSummary

FinancialHealthScore

Normalized financial health score summary.

Type

Variants

FinancialHealthScore

SECFiling

Normalized SEC filing row.

Type

Variants

SECFiling

RevenueSegmentationPeriod

Period selection for revenue segmentation adapters.

Type

Variants

RevenueSegmentationPeriod

RevenueSegmentValue

Single named revenue segment and its value.

Type

Variants

RevenueSegmentValue

RevenueSegmentationRow

Normalized revenue segmentation row.

Type

Variants

RevenueSegmentationRow

DividendEvent

Normalized dividend event.

Type

Variants

DividendEvent

SplitEvent

Normalized split event.

Type

Variants

SplitEvent

MarketStatus

Normalized market status.

Type

Variants

MarketStatus

error-kind

Return the stable error kind name for a FinanceError value.

FinanceError -> String

provided-provider

Return the provider name from a FinanceProvidedValue.

FinanceProvidedValue a -> String

provided-value

Return the wrapped value from a FinanceProvidedValue.

FinanceProvidedValue a -> a

error-message

Return the user-facing message for a FinanceError value.

FinanceError -> String

preferred-provider-failures

Return the ordered provider failure list for a preferred-provider error. Non-fallback errors return an empty list.

FinanceError -> [FinanceProviderFailure]

get-quote

Get a normalized quote from the selected provider.

FinanceProvider -> String -> Result SecurityQuote FinanceError

get-quote-preferred

Get a normalized quote by trying providers in order until one succeeds.

[FinanceProvider] -> String -> Result SecurityQuote FinanceError

get-quote-preferred-with-provider

Get a normalized quote by trying providers in order until one succeeds, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue SecurityQuote) FinanceError

search-symbols

Search symbols and normalize provider-specific result rows.

FinanceProvider -> String -> Result [SymbolMatch] FinanceError

search-symbols-preferred

Search symbols by trying providers in order until one succeeds.

[FinanceProvider] -> String -> Result [SymbolMatch] FinanceError

search-symbols-preferred-with-provider

Search symbols by trying providers in order until one succeeds, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [SymbolMatch]) FinanceError

get-price-history-range

Get normalized price history using an explicit timestamp range.

FinanceProvider -> String -> FinanceTimestampRange -> FinanceInterval -> Result [PriceBar] FinanceError

get-price-history-range-preferred

Get normalized price history using an explicit timestamp range and ordered provider fallback.

[FinanceProvider] -> String -> FinanceTimestampRange -> FinanceInterval -> Result [PriceBar] FinanceError

get-price-history-range-preferred-with-provider

Get normalized price history using an explicit timestamp range and ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> FinanceTimestampRange -> FinanceInterval -> Result (FinanceProvidedValue [PriceBar]) FinanceError

get-price-history

Get normalized price history using a provider-neutral relative range.

FinanceProvider -> String -> FinanceHistoryRange -> FinanceInterval -> Result [PriceBar] FinanceError

get-price-history-preferred

Get normalized price history using a provider-neutral relative range and ordered provider fallback.

[FinanceProvider] -> String -> FinanceHistoryRange -> FinanceInterval -> Result [PriceBar] FinanceError

get-price-history-preferred-with-provider

Get normalized price history using a provider-neutral relative range and ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> FinanceHistoryRange -> FinanceInterval -> Result (FinanceProvidedValue [PriceBar]) FinanceError

get-recommendations

Get normalized analyst recommendation summaries.

FinanceProvider -> String -> Result [RecommendationSummary] FinanceError

get-price-targets

Get normalized analyst price target summaries.

FinanceProvider -> String -> Result [PriceTargetSummary] FinanceError

get-price-targets-preferred

Get normalized analyst price target summaries with ordered provider fallback.

[FinanceProvider] -> String -> Result [PriceTargetSummary] FinanceError

get-price-targets-preferred-with-provider

Get normalized analyst price target summaries with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [PriceTargetSummary]) FinanceError

get-financial-health-score

Get a normalized financial health score.

FinanceProvider -> String -> Result FinancialHealthScore FinanceError

get-financial-health-score-preferred

Get a normalized financial health score with ordered provider fallback.

[FinanceProvider] -> String -> Result FinancialHealthScore FinanceError

get-financial-health-score-preferred-with-provider

Get a normalized financial health score with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue FinancialHealthScore) FinanceError

get-sec-filings

Get normalized SEC filing rows.

FinanceProvider -> String -> Option String -> Int -> Result [SECFiling] FinanceError

get-sec-filings-preferred

Get normalized SEC filing rows with ordered provider fallback.

[FinanceProvider] -> String -> Option String -> Int -> Result [SECFiling] FinanceError

get-sec-filings-preferred-with-provider

Get normalized SEC filing rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Option String -> Int -> Result (FinanceProvidedValue [SECFiling]) FinanceError

get-revenue-product-segmentation

Get normalized product revenue segmentation rows.

FinanceProvider -> String -> RevenueSegmentationPeriod -> Result [RevenueSegmentationRow] FinanceError

get-revenue-product-segmentation-preferred

Get normalized product revenue segmentation rows with ordered provider fallback.

[FinanceProvider] -> String -> RevenueSegmentationPeriod -> Result [RevenueSegmentationRow] FinanceError

get-revenue-product-segmentation-preferred-with-provider

Get normalized product revenue segmentation rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> RevenueSegmentationPeriod -> Result (FinanceProvidedValue [RevenueSegmentationRow]) FinanceError

get-revenue-geographic-segmentation

Get normalized geographic revenue segmentation rows.

FinanceProvider -> String -> RevenueSegmentationPeriod -> Result [RevenueSegmentationRow] FinanceError

get-revenue-geographic-segmentation-preferred

Get normalized geographic revenue segmentation rows with ordered provider fallback.

[FinanceProvider] -> String -> RevenueSegmentationPeriod -> Result [RevenueSegmentationRow] FinanceError

get-revenue-geographic-segmentation-preferred-with-provider

Get normalized geographic revenue segmentation rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> RevenueSegmentationPeriod -> Result (FinanceProvidedValue [RevenueSegmentationRow]) FinanceError

get-key-executives

Get normalized key executive rows.

FinanceProvider -> String -> Result [KeyExecutive] FinanceError

get-key-executives-preferred

Get normalized key executive rows with ordered provider fallback.

[FinanceProvider] -> String -> Result [KeyExecutive] FinanceError

get-key-executives-preferred-with-provider

Get normalized key executive rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [KeyExecutive]) FinanceError

get-shares-float

Get normalized shares float rows.

FinanceProvider -> String -> Result [SharesFloat] FinanceError

get-shares-float-preferred

Get normalized shares float rows with ordered provider fallback.

[FinanceProvider] -> String -> Result [SharesFloat] FinanceError

get-shares-float-preferred-with-provider

Get normalized shares float rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [SharesFloat]) FinanceError

get-historical-earnings-calendar

Get normalized historical earnings calendar rows.

FinanceProvider -> String -> Int -> Result [HistoricalEarningsCalendarEvent] FinanceError

get-historical-earnings-calendar-preferred

Get normalized historical earnings calendar rows with ordered provider fallback.

[FinanceProvider] -> String -> Int -> Result [HistoricalEarningsCalendarEvent] FinanceError

get-historical-earnings-calendar-preferred-with-provider

Get normalized historical earnings calendar rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Int -> Result (FinanceProvidedValue [HistoricalEarningsCalendarEvent]) FinanceError

get-earnings-call-dates

Get normalized earnings call date metadata rows.

FinanceProvider -> String -> Result [EarningsCallDate] FinanceError

get-earnings-call-dates-preferred

Get normalized earnings call date metadata rows with ordered provider fallback.

[FinanceProvider] -> String -> Result [EarningsCallDate] FinanceError

get-earnings-call-dates-preferred-with-provider

Get normalized earnings call date metadata rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [EarningsCallDate]) FinanceError

get-earnings-call-transcript

Get normalized earnings call transcript rows.

FinanceProvider -> String -> Int -> Int -> Result [EarningsCallTranscript] FinanceError

get-earnings-call-transcript-preferred

Get normalized earnings call transcript rows with ordered provider fallback.

[FinanceProvider] -> String -> Int -> Int -> Result [EarningsCallTranscript] FinanceError

get-earnings-call-transcript-preferred-with-provider

Get normalized earnings call transcript rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Int -> Int -> Result (FinanceProvidedValue [EarningsCallTranscript]) FinanceError

get-analyst-estimates

Get normalized analyst estimate rows.

FinanceProvider -> String -> AnalystEstimatePeriod -> Int -> Result [AnalystEstimate] FinanceError

get-analyst-estimates-preferred

Get normalized analyst estimate rows with ordered provider fallback.

[FinanceProvider] -> String -> AnalystEstimatePeriod -> Int -> Result [AnalystEstimate] FinanceError

get-analyst-estimates-preferred-with-provider

Get normalized analyst estimate rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> AnalystEstimatePeriod -> Int -> Result (FinanceProvidedValue [AnalystEstimate]) FinanceError

get-rating-snapshot

Get normalized ratings snapshot rows.

FinanceProvider -> String -> Result [RatingSnapshot] FinanceError

get-rating-snapshot-preferred

Get normalized ratings snapshot rows with ordered provider fallback.

[FinanceProvider] -> String -> Result [RatingSnapshot] FinanceError

get-rating-snapshot-preferred-with-provider

Get normalized ratings snapshot rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [RatingSnapshot]) FinanceError

get-historical-ratings

Get normalized historical ratings rows.

FinanceProvider -> String -> Result [HistoricalRating] FinanceError

get-historical-ratings-preferred

Get normalized historical ratings rows with ordered provider fallback.

[FinanceProvider] -> String -> Result [HistoricalRating] FinanceError

get-historical-ratings-preferred-with-provider

Get normalized historical ratings rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [HistoricalRating]) FinanceError

get-analyst-grade-changes

Get normalized analyst grade change rows.

FinanceProvider -> String -> Int -> Result [AnalystGradeChange] FinanceError

get-analyst-grade-changes-preferred

Get normalized analyst grade change rows with ordered provider fallback.

[FinanceProvider] -> String -> Int -> Result [AnalystGradeChange] FinanceError

get-analyst-grade-changes-preferred-with-provider

Get normalized analyst grade change rows with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Int -> Result (FinanceProvidedValue [AnalystGradeChange]) FinanceError

get-recommendations-preferred

Get normalized analyst recommendation summaries with ordered provider fallback.

[FinanceProvider] -> String -> Result [RecommendationSummary] FinanceError

get-recommendations-preferred-with-provider

Get normalized analyst recommendation summaries with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [RecommendationSummary]) FinanceError

get-earnings-results

Get normalized earnings result history.

FinanceProvider -> String -> Result [EarningsResult] FinanceError

get-earnings-results-preferred

Get normalized earnings result history with ordered provider fallback.

[FinanceProvider] -> String -> Result [EarningsResult] FinanceError

get-earnings-results-preferred-with-provider

Get normalized earnings result history with ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue [EarningsResult]) FinanceError

get-market-status

Get normalized market status for a market or exchange code.

FinanceProvider -> String -> Result MarketStatus FinanceError

get-market-status-preferred

Get normalized market status using ordered provider fallback.

[FinanceProvider] -> String -> Result MarketStatus FinanceError

get-market-status-preferred-with-provider

Get normalized market status using ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue MarketStatus) FinanceError

get-company-overview

Get a normalized company overview. Yahoo currently returns a partial overview based on quote data.

FinanceProvider -> String -> Result CompanyOverview FinanceError

get-company-overview-preferred

Get a normalized company overview by trying providers in order until one succeeds.

[FinanceProvider] -> String -> Result CompanyOverview FinanceError

get-company-overview-preferred-with-provider

Get a normalized company overview by trying providers in order until one succeeds, returning the winning provider.

[FinanceProvider] -> String -> Result (FinanceProvidedValue CompanyOverview) FinanceError

get-dividends-range

Get normalized dividend events using an explicit date range.

FinanceProvider -> String -> FinanceDateRange -> Result [DividendEvent] FinanceError

get-dividends-range-preferred

Get normalized dividend events using an explicit date range and ordered provider fallback.

[FinanceProvider] -> String -> FinanceDateRange -> Result [DividendEvent] FinanceError

get-dividends-range-preferred-with-provider

Get normalized dividend events using an explicit date range and ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> FinanceDateRange -> Result (FinanceProvidedValue [DividendEvent]) FinanceError

get-dividends

Get normalized dividend events using a provider-neutral relative range.

FinanceProvider -> String -> FinanceHistoryRange -> Result [DividendEvent] FinanceError

get-dividends-preferred

Get normalized dividend events using a provider-neutral relative range and ordered provider fallback.

[FinanceProvider] -> String -> FinanceHistoryRange -> Result [DividendEvent] FinanceError

get-dividends-preferred-with-provider

Get normalized dividend events using a provider-neutral relative range and ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> FinanceHistoryRange -> Result (FinanceProvidedValue [DividendEvent]) FinanceError

get-splits-range

Get normalized split events using an explicit date range.

FinanceProvider -> String -> FinanceDateRange -> Result [SplitEvent] FinanceError

get-splits-range-preferred

Get normalized split events using an explicit date range and ordered provider fallback.

[FinanceProvider] -> String -> FinanceDateRange -> Result [SplitEvent] FinanceError

get-splits-range-preferred-with-provider

Get normalized split events using an explicit date range and ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> FinanceDateRange -> Result (FinanceProvidedValue [SplitEvent]) FinanceError

get-splits

Get normalized split events using a provider-neutral relative range.

FinanceProvider -> String -> FinanceHistoryRange -> Result [SplitEvent] FinanceError

get-splits-preferred

Get normalized split events using a provider-neutral relative range and ordered provider fallback.

[FinanceProvider] -> String -> FinanceHistoryRange -> Result [SplitEvent] FinanceError

get-splits-preferred-with-provider

Get normalized split events using a provider-neutral relative range and ordered provider fallback, returning the winning provider.

[FinanceProvider] -> String -> FinanceHistoryRange -> Result (FinanceProvidedValue [SplitEvent]) FinanceError

FinanceDateRange

Provider-neutral date range helper for event queries.

Variants

FinanceDateRange {date-from, date-to}

FinanceHistoryRange

Provider-neutral history range helper.

Variants

Day1
Day5
Month1
Month3
Month6
Year1
Year2
Year5
Year10
YTD
Max

FinanceTimestampRange

Explicit timestamp range for history queries.

Variants

FinanceTimestampRange {start-timestamp, end-timestamp}

seconds-from-milliseconds

Convert a millisecond timestamp to Unix seconds.

Int -> Int

milliseconds-from-seconds

Convert a Unix-second timestamp to milliseconds.

Int -> Int

normalize-history-range

Convert a relative history range into explicit Unix-second timestamps.

FinanceHistoryRange -> FinanceTimestampRange

date-range-from-history-range

Convert a relative history range into a UTC date range.

FinanceHistoryRange -> FinanceDateRange

is-date-in-range?

Returns true when an ISO date is inside the inclusive date range.

String -> FinanceDateRange -> Bool

filter-dividend-events

Filter dividend events to an inclusive UTC date range.

[DividendEvent] -> FinanceDateRange -> [DividendEvent]

filter-split-events

Filter split events to an inclusive UTC date range.

[SplitEvent] -> FinanceDateRange -> [SplitEvent]

try-providers

Try providers in order until one succeeds, collecting normalized failures.

(FinanceProvider -> String) -> (e -> String) -> (e -> String) -> [FinanceProvider] -> (FinanceProvider -> Result a e) -> Result a [FinanceProviderFailure]

try-providers-with-provider

Try providers in order until one succeeds, returning the winning provider and collecting normalized failures on total failure.

(FinanceProvider -> String) -> (e -> String) -> (e -> String) -> [FinanceProvider] -> (FinanceProvider -> Result a e) -> Result (FinanceProvidedValue a) [FinanceProviderFailure]

try-providers-result

Try providers in order until one succeeds, mapping an empty provider list and total failure list into caller-chosen error values.

(FinanceProvider -> String) -> (e -> String) -> (e -> String) -> f -> ([FinanceProviderFailure] -> f) -> [FinanceProvider] -> (FinanceProvider -> Result a e) -> Result a f

try-providers-with-provider-result

Try providers in order until one succeeds, returning the winning provider, and mapping an empty provider list and total failure list into caller-chosen error values.

(FinanceProvider -> String) -> (e -> String) -> (e -> String) -> f -> ([FinanceProviderFailure] -> f) -> [FinanceProvider] -> (FinanceProvider -> Result a e) -> Result (FinanceProvidedValue a) f

finnhub-quote

Build a normalized Finnhub quote row.

String -> quote -> SecurityQuote

finnhub-symbol-match

Build a normalized Finnhub symbol match row.

result -> SymbolMatch

FinanceProvider

Provider selection for normalized finance APIs.

Variants

Yahoo
Finnhub {api-key}
FMP {api-key}

FinanceAdapter

Provider-neutral adapter identifiers for capability queries.

Variants

QuoteAdapter
SearchSymbolsAdapter
PriceHistoryAdapter
PriceHistoryRangeAdapter
PriceTargetsAdapter
FinancialHealthScoreAdapter
SECFilingsAdapter
RevenueProductSegmentationAdapter
RevenueGeographicSegmentationAdapter
KeyExecutivesAdapter
SharesFloatAdapter
HistoricalEarningsCalendarAdapter
EarningsCallDatesAdapter
EarningsCallTranscriptAdapter
AnalystEstimatesAdapter
RatingSnapshotAdapter
HistoricalRatingsAdapter
AnalystGradeChangesAdapter
RecommendationsAdapter
EarningsResultsAdapter
MarketStatusAdapter
CompanyOverviewAdapter
DividendsAdapter
DividendsRangeAdapter
SplitsAdapter
SplitsRangeAdapter

FinanceCapability

Capability level for a provider/adapter pairing.

Variants

FullSupport
PartialSupport
UnsupportedSupport

FinanceCapabilityDetails

Detailed capability report for a provider/adapter pairing.

Variants

FinanceCapabilityDetails {adapter, capability, missing-fields, notes}

provider-name

Return the stable provider name for a FinanceProvider value.

FinanceProvider -> String

requires-api-key?

Returns true when the provider requires an API key.

FinanceProvider -> Bool

adapter-name

Return the stable adapter name for a FinanceAdapter value.

FinanceAdapter -> String

capability-name

Return the stable capability name for a FinanceCapability value.

FinanceCapability -> String

provider-capability

Report capability level for a provider/adapter pairing.

FinanceProvider -> FinanceAdapter -> FinanceCapability

supports-adapter?

Returns true when the provider supports the adapter at any non-unsupported level.

FinanceProvider -> FinanceAdapter -> Bool

supported-adapters

List every adapter supported by the provider at either full or partial level.

FinanceProvider -> [FinanceAdapter]

provider-capability-details

Return detailed field-level capability metadata for a provider/adapter pairing.

FinanceProvider -> FinanceAdapter -> FinanceCapabilityDetails

provider-capability-matrix

Return detailed capability metadata for every adapter for a provider.

FinanceProvider -> [FinanceCapabilityDetails]

parse-iso-date-part

Parse a zero-indexed ISO date component from a YYYY-MM-DD string.

String -> Int -> Option Int

quarter-from-month

Convert a calendar month into a fiscal quarter number.

Int -> Option Int

year-from-iso-date

Parse the year component from a YYYY-MM-DD string.

String -> Option Int

quarter-from-iso-date

Parse the fiscal quarter from a YYYY-MM-DD string.

String -> Option Int

preferred-earnings-date

Prefer fiscal-date-ending over report date when both are available.

Option String -> Option String -> Option String

earnings-result-period

Select the normalized earnings period string from fiscal-date-ending or report date.

Option String -> Option String -> String

earnings-result-year

Derive the normalized earnings result year from fiscal-date-ending or report date.

Option String -> Option String -> Option Int

earnings-result-quarter

Derive the normalized earnings result quarter from fiscal-date-ending or report date.

Option String -> Option String -> Option Int

option-difference

Compute the difference between actual and estimate values when both are present.

Option Float -> Option Float -> Option Float

option-surprise-percent

Compute earnings surprise percent when both actual and estimate are present.

Option Float -> Option Float -> Option Float

yahoo-earnings-result

Build a normalized Yahoo earnings result row.

String -> {quarter: Option Int, eps-actual: Option Float, eps-estimate: Option Float, eps-difference: Option Float, surprise-percent: Option Float} -> EarningsResult

finnhub-earnings-result

Build a normalized Finnhub earnings result row.

{symbol: String, period: String, quarter: Int, year: Int, actual: Option Float, estimate: Option Float, surprise: Option Float, surprise-percent: Option Float} -> EarningsResult

fmp-earnings-result

Build a normalized FMP earnings result row.

String -> {fiscal-date-ending: Option String, date: Option String, eps-actual: Option Float, eps-estimate: Option Float} -> EarningsResult

first-outstanding-shares

Return the first available outstanding-shares value from a normalized shares-float list.

[{outstanding-shares: Option Float}] -> Option Float

fmp-company-overview

Build a normalized FMP company overview row.

{symbol: String, company-name: String, exchange-short-name: Option String, industry: Option String, sector: Option String, country: Option String, currency: Option String, market-cap: Option Float, website: Option String, ipo-date: Option String} -> Option Float -> CompanyOverview

yahoo-company-overview

Build a normalized Yahoo company overview row.

{symbol: String, name: String, exchange: Option String, industry: Option String, sector: Option String, country: Option String, currency: Option String, market-cap: Option Float, shares-outstanding: Option Float, website: Option String, phone: Option String} -> CompanyOverview

yahoo-quote-company-overview

Build a normalized Yahoo quote-based fallback company overview row.

String -> {name: Option String, market-cap: Option Float} -> CompanyOverview

finnhub-company-overview

Build a normalized Finnhub company overview row.

{ticker: String, name: Option String, exchange: String, finnhub-industry: String, country: String, currency: String, market-cap: Float, share-outstanding: Float, weburl: String, phone: String, logo: String, ipo: String} -> CompanyOverview

empty-string-to-option

Convert empty strings to None while preserving non-empty strings.

String -> Option String

yahoo-recommendation-summary

Build a normalized Yahoo recommendation summary row.

String -> Int -> Int -> Int -> Int -> Int -> RecommendationSummary

finnhub-recommendation-summary

Build a normalized Finnhub recommendation summary row.

String -> String -> Int -> Int -> Int -> Int -> Int -> RecommendationSummary

fmp-recommendation-summary

Build a normalized FMP recommendation summary row.

String -> Option String -> Int -> Int -> Int -> Int -> Int -> Option String -> RecommendationSummary

yahoo-price-target-summary

Build a normalized Yahoo analyst price target summary row.

String -> Option Float -> Option Float -> Option Float -> Option Float -> Option Float -> PriceTargetSummary

fmp-price-target-summary

Build a normalized FMP analyst price target summary row.

String -> Option String -> Option Float -> Option Float -> Option Float -> Option Float -> Option String -> PriceTargetSummary

yahoo-quote

Build a normalized Yahoo quote row.

{symbol: String, price: Float, change: Option Float, change-percent: Option Float, timestamp: Int, volume: Int, market-cap: Option Float, name: String} -> SecurityQuote

finnhub-quote

Build a normalized Finnhub quote row.

String -> {current: Float, change: Option Float, change-percent: Option Float, timestamp: Int, open: Float, high: Float, low: Float, previous-close: Float} -> SecurityQuote

yahoo-symbol-match

Build a normalized Yahoo symbol match row.

{symbol: String, name: String, exchange: String, asset-type: String} -> SymbolMatch

finnhub-symbol-match

Build a normalized Finnhub symbol match row.

{symbol: String, display-symbol: String, description: String, result-type: String} -> SymbolMatch

yahoo-bar

Build a normalized Yahoo history bar.

String -> {timestamp: Int, open: Float, high: Float, low: Float, close: Float, volume: Int, adj-close: Option Float} -> PriceBar

finnhub-candle

Build a normalized Finnhub history candle.

String -> {timestamp: Int, open: Float, high: Float, low: Float, close: Float, volume: Float} -> PriceBar

yahoo-market-status

Build a normalized Yahoo market status row.

{market: String, is-open?: Bool, status: String, timezone: String, open-time: Int, close-time: Int, current-time: Int} -> MarketStatus

finnhub-market-status

Build a normalized Finnhub market status row.

String -> {exchange: String, is-open: Bool} -> MarketStatus

yahoo-dividend

Build a normalized Yahoo dividend event row.

String -> {date: Int, amount: Float} -> DividendEvent

finnhub-dividend

Build a normalized Finnhub dividend event row.

{symbol: String, date: String, amount: Float, adjusted-amount: Float, pay-date: String, record-date: String, declaration-date: String, currency: String} -> DividendEvent

yahoo-split

Build a normalized Yahoo split event row.

String -> {date: Int, numerator: Int, denominator: Int} -> SplitEvent

finnhub-split

Build a normalized Finnhub split event row.

{symbol: String, date: String, from-factor: Float, to-factor: Float} -> SplitEvent

fmp-segmentation-period

Map kit-finance segmentation periods to the FMP provider enum.

RevenueSegmentationPeriod -> FMPRevenueSegmentationPeriod

fmp-analyst-estimate-period

Map kit-finance analyst estimate periods to the FMP provider enum.

AnalystEstimatePeriod -> FMPEstimatePeriod

finnhub-resolution

Map kit-finance history intervals to Finnhub candle resolutions.

FinanceInterval -> String

FinanceProviderFailure

Provider failure detail for ordered-provider fallback diagnostics.

Variants

FinanceProviderFailure {provider, kind, message}

Successful ordered-provider result paired with the winning provider name.

provided-provider

Return the provider name from a FinanceProvidedValue.

FinanceProvidedValue a -> String

provided-value

Return the wrapped value from a FinanceProvidedValue.

FinanceProvidedValue a -> a

FinanceInterval

Provider-neutral history interval helper.

Variants

Minute1
Minute5
Minute15
Minute30
Hour1
Day1Interval
Week1
Month1Interval

SecurityQuote

Normalized security quote / snapshot.

Variants

SecurityQuote {symbol, price, change, change-percent, timestamp, open, high, low, previous-close, volume, market-cap, name, exchange, provider}

security-quote-symbol

Return the symbol from a SecurityQuote.

SecurityQuote -> String

security-quote-name

Return the optional display name from a SecurityQuote.

SecurityQuote -> Option String

security-quote-open

Return the optional open price from a SecurityQuote.

SecurityQuote -> Option Float

security-quote-provider

Return the provider label from a SecurityQuote.

SecurityQuote -> String

PriceBar

Normalized OHLCV bar.

Variants

PriceBar {symbol, timestamp, open, high, low, close, volume, adjusted-close, provider}

SymbolMatch

Normalized symbol search result.

Variants

SymbolMatch {symbol, display-symbol, name, exchange, asset-type, provider}

symbol-match-exchange

Return the optional exchange from a SymbolMatch.

SymbolMatch -> Option String

symbol-match-asset-type

Return the optional asset type from a SymbolMatch.

SymbolMatch -> Option String

symbol-match-display-symbol

Return the optional display symbol from a SymbolMatch.

SymbolMatch -> Option String

CompanyOverview

Normalized company overview.

Variants

CompanyOverview {symbol, name, exchange, industry, sector, country, currency, market-cap, shares-outstanding, website, phone, logo-url, ipo-date, provider}

KeyExecutive

Normalized key executive row.

Variants

KeyExecutive {symbol, name, title, pay, currency, provider}

SharesFloat

Normalized shares float row.

Variants

SharesFloat {symbol, date, float-shares, outstanding-shares, free-float, provider}

EarningsResult

Normalized earnings result.

Variants

EarningsResult {symbol, period, quarter, year, actual, estimate, surprise, surprise-percent, provider}

HistoricalEarningsCalendarEvent

Normalized historical earnings calendar row.

Variants

HistoricalEarningsCalendarEvent {symbol, date, fiscal-date-ending, time, eps-actual, eps-estimate, revenue-actual, revenue-estimate, provider}

EarningsCallDate

Normalized earnings call date metadata row.

Variants

EarningsCallDate {symbol, quarter, fiscal-year, call-datetime, provider}

EarningsCallTranscript

Normalized earnings call transcript row.

Variants

EarningsCallTranscript {symbol, period, fiscal-year, call-date, content, provider}

AnalystEstimatePeriod

Period selection for normalized analyst estimate adapters.

Variants

EstimateAnnual
EstimateQuarter

AnalystEstimate

Normalized analyst estimate row.

Variants

AnalystEstimate {symbol, date, period, estimated-revenue, estimated-ebitda, estimated-net-income, estimated-eps, provider}

RatingSnapshot

Normalized ratings snapshot row.

Variants

RatingSnapshot {symbol, rating, overall-score, discounted-cash-flow-score, return-on-equity-score, return-on-assets-score, debt-to-equity-score, price-to-earnings-score, price-to-book-score, provider}

HistoricalRating

Normalized historical ratings row.

Variants

HistoricalRating {symbol, date, rating, overall-score, discounted-cash-flow-score, return-on-equity-score, return-on-assets-score, debt-to-equity-score, price-to-earnings-score, price-to-book-score, provider}

AnalystGradeChange

Normalized analyst grade change row.

Variants

AnalystGradeChange {symbol, date, company, previous-grade, new-grade, action, provider}

RecommendationSummary

Normalized recommendation summary.

Variants

RecommendationSummary {symbol, period, strong-buy, buy, hold, sell, strong-sell, consensus-label, provider}

PriceTargetSummary

Normalized analyst price target summary.

Variants

PriceTargetSummary {symbol, current, low, high, mean, median, consensus-label, provider}

FinancialHealthScore

Normalized financial health score summary.

Variants

FinancialHealthScore {symbol, altman-z-score, piotroski-score, provider}

SECFiling

Normalized SEC filing row.

Variants

SECFiling {symbol, filing-date, accepted-date, filing-type, link, final-link, provider}

RevenueSegmentationPeriod

Period selection for revenue segmentation adapters.

Variants

SegmentationAnnual
SegmentationQuarter

RevenueSegmentValue

Single named revenue segment and its value.

Variants

RevenueSegmentValue {segment, revenue}

RevenueSegmentationRow

Normalized revenue segmentation row.

Variants

RevenueSegmentationRow {symbol, date, calendar-year, period, segments, provider}

DividendEvent

Normalized dividend event.

Variants

DividendEvent {symbol, ex-date, amount, adjusted-amount, pay-date, record-date, declaration-date, currency, provider}

SplitEvent

Normalized split event.

Variants

SplitEvent {symbol, date, numerator, denominator, from-factor, to-factor, provider}

MarketStatus

Normalized market status.

Variants

MarketStatus {market, exchange, is-open?, status, timezone, open-time, close-time, current-time, provider}

market-status-status

Return the optional status text from a MarketStatus.

MarketStatus -> Option String

market-status-exchange

Return the optional exchange from a MarketStatus.

MarketStatus -> Option String

market-status-is-open?

Return whether the market is open from a MarketStatus.

MarketStatus -> Bool

yahoo-quote

Build a normalized Yahoo quote row.

quote -> SecurityQuote

yahoo-symbol-match

Build a normalized Yahoo symbol match row.

result -> SymbolMatch

fmp-financial-health-score

Build a normalized FMP financial health score row.

String -> {symbol: Option String, altman-z-score: Option Float, piotroski-score: Option Float} -> FinancialHealthScore

fmp-sec-filing

Build a normalized FMP SEC filing row.

String -> {symbol: Option String, filing-date: String, accepted-date: Option String, filing-type: String, link: String, final-link: String} -> SECFiling

fmp-segment-value

Build a normalized revenue segment value row.

{segment: String, revenue: Float} -> RevenueSegmentValue

fmp-revenue-segmentation-row

Build a normalized FMP revenue segmentation row.

String -> {symbol: Option String, date: String, calendar-year: Option String, period: String, segments: [{segment: String, revenue: Float}]} -> RevenueSegmentationRow

fmp-key-executive

Build a normalized FMP key executive row.

String -> {name: String, title: String, pay: Option Float, currency: Option String} -> KeyExecutive

fmp-shares-float

Build a normalized FMP shares float row.

String -> {symbol: Option String, date: String, float-shares: Option Float, outstanding-shares: Option Float, free-float: Option Float} -> SharesFloat

fmp-historical-earnings-calendar

Build a normalized FMP historical earnings calendar row.

String -> {date: String, fiscal-date-ending: Option String, time: Option String, eps-actual: Option Float, eps-estimate: Option Float, revenue-actual: Option Float, revenue-estimate: Option Float} -> HistoricalEarningsCalendarEvent

fmp-earnings-call-date

Build a normalized FMP earnings call date row.

String -> {quarter: Int, fiscal-year: Int, call-datetime: String} -> EarningsCallDate

fmp-earnings-call-transcript

Build a normalized FMP earnings call transcript row.

String -> {symbol: Option String, period: String, fiscal-year: Int, call-date: String, content: String} -> EarningsCallTranscript

fmp-analyst-estimate

Build a normalized FMP analyst estimate row.

String -> String -> {date: String, estimated-revenue: Option Float, estimated-ebitda: Option Float, estimated-net-income: Option Float, estimated-eps: Option Float} -> AnalystEstimate

fmp-rating-snapshot

Build a normalized FMP ratings snapshot row.

String -> {symbol: Option String, rating: Option String, overall-score: Option Float, discounted-cash-flow-score: Option Float, return-on-equity-score: Option Float, return-on-assets-score: Option Float, debt-to-equity-score: Option Float, price-to-earnings-score: Option Float, price-to-book-score: Option Float} -> RatingSnapshot

fmp-historical-rating

Build a normalized FMP historical rating row.

String -> {symbol: Option String, date: String, rating: Option String, overall-score: Option Float, discounted-cash-flow-score: Option Float, return-on-equity-score: Option Float, return-on-assets-score: Option Float, debt-to-equity-score: Option Float, price-to-earnings-score: Option Float, price-to-book-score: Option Float} -> HistoricalRating

fmp-analyst-grade-change

Build a normalized FMP analyst grade change row.

String -> {date: String, company: Option String, previous-grade: Option String, new-grade: Option String, action: Option String} -> AnalystGradeChange