fmp-rust-sdk 0.1.1

Async Rust SDK for Financial Modeling Prep with typed data, subscription awareness, and WebSocket feeds
Documentation
//! Company key metrics and financial ratios.

use super::FinancialPeriod;
use serde::{Deserialize, Serialize};

/// Historical metrics from `key-metrics`. Undefined ratios may be null.
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct KeyMetrics {
    #[serde(flatten)]
    pub metadata: FinancialPeriod,
    pub market_cap: Option<f64>,
    pub enterprise_value: Option<f64>,
    pub ev_to_sales: Option<f64>,
    pub ev_to_operating_cash_flow: Option<f64>,
    pub ev_to_free_cash_flow: Option<f64>,
    #[serde(rename = "evToEBITDA")]
    pub ev_to_ebitda: Option<f64>,
    #[serde(rename = "netDebtToEBITDA")]
    pub net_debt_to_ebitda: Option<f64>,
    pub current_ratio: Option<f64>,
    pub income_quality: Option<f64>,
    pub graham_number: Option<f64>,
    pub graham_net_net: Option<f64>,
    pub tax_burden: Option<f64>,
    pub interest_burden: Option<f64>,
    pub working_capital: Option<f64>,
    pub invested_capital: Option<f64>,
    pub return_on_assets: Option<f64>,
    pub operating_return_on_assets: Option<f64>,
    pub return_on_tangible_assets: Option<f64>,
    pub return_on_equity: Option<f64>,
    pub return_on_invested_capital: Option<f64>,
    pub return_on_capital_employed: Option<f64>,
    pub earnings_yield: Option<f64>,
    pub free_cash_flow_yield: Option<f64>,
    pub capex_to_operating_cash_flow: Option<f64>,
    pub capex_to_depreciation: Option<f64>,
    pub capex_to_revenue: Option<f64>,
    pub sales_general_and_administrative_to_revenue: Option<f64>,
    #[serde(rename = "researchAndDevelopementToRevenue")]
    pub research_and_development_to_revenue: Option<f64>,
    pub stock_based_compensation_to_revenue: Option<f64>,
    pub intangibles_to_total_assets: Option<f64>,
    pub average_receivables: Option<f64>,
    pub average_payables: Option<f64>,
    pub average_inventory: Option<f64>,
    pub days_of_sales_outstanding: Option<f64>,
    pub days_of_payables_outstanding: Option<f64>,
    pub days_of_inventory_outstanding: Option<f64>,
    pub operating_cycle: Option<f64>,
    pub cash_conversion_cycle: Option<f64>,
    pub free_cash_flow_to_equity: Option<f64>,
    pub free_cash_flow_to_firm: Option<f64>,
    pub tangible_asset_value: Option<f64>,
    pub net_current_asset_value: Option<f64>,
}

/// Historical ratios from `ratios`. Undefined ratios may be null.
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FinancialRatios {
    #[serde(flatten)]
    pub metadata: FinancialPeriod,
    pub gross_profit_margin: Option<f64>,
    pub ebit_margin: Option<f64>,
    pub ebitda_margin: Option<f64>,
    pub operating_profit_margin: Option<f64>,
    pub pretax_profit_margin: Option<f64>,
    pub continuous_operations_profit_margin: Option<f64>,
    pub net_profit_margin: Option<f64>,
    pub bottom_line_profit_margin: Option<f64>,
    pub receivables_turnover: Option<f64>,
    pub payables_turnover: Option<f64>,
    pub inventory_turnover: Option<f64>,
    pub fixed_asset_turnover: Option<f64>,
    pub asset_turnover: Option<f64>,
    pub current_ratio: Option<f64>,
    pub quick_ratio: Option<f64>,
    pub solvency_ratio: Option<f64>,
    pub cash_ratio: Option<f64>,
    pub price_to_earnings_ratio: Option<f64>,
    pub price_to_earnings_growth_ratio: Option<f64>,
    pub forward_price_to_earnings_growth_ratio: Option<f64>,
    pub price_to_earnings_diluted_ratio: Option<f64>,
    pub price_to_earnings_diluted_growth_ratio: Option<f64>,
    pub price_to_book_ratio: Option<f64>,
    pub price_to_sales_ratio: Option<f64>,
    pub price_to_free_cash_flow_ratio: Option<f64>,
    pub price_to_operating_cash_flow_ratio: Option<f64>,
    pub debt_to_assets_ratio: Option<f64>,
    pub debt_to_equity_ratio: Option<f64>,
    pub debt_to_capital_ratio: Option<f64>,
    pub long_term_debt_to_capital_ratio: Option<f64>,
    pub financial_leverage_ratio: Option<f64>,
    pub working_capital_turnover_ratio: Option<f64>,
    pub operating_cash_flow_ratio: Option<f64>,
    pub operating_cash_flow_sales_ratio: Option<f64>,
    pub free_cash_flow_operating_cash_flow_ratio: Option<f64>,
    pub debt_service_coverage_ratio: Option<f64>,
    pub interest_coverage_ratio: Option<f64>,
    pub short_term_operating_cash_flow_coverage_ratio: Option<f64>,
    pub operating_cash_flow_coverage_ratio: Option<f64>,
    pub capital_expenditure_coverage_ratio: Option<f64>,
    pub dividend_paid_and_capex_coverage_ratio: Option<f64>,
    pub dividend_payout_ratio: Option<f64>,
    pub dividend_yield: Option<f64>,
    pub dividend_yield_percentage: Option<f64>,
    pub revenue_per_share: Option<f64>,
    pub net_income_per_share: Option<f64>,
    pub interest_debt_per_share: Option<f64>,
    pub cash_per_share: Option<f64>,
    pub book_value_per_share: Option<f64>,
    pub tangible_book_value_per_share: Option<f64>,
    pub shareholders_equity_per_share: Option<f64>,
    pub operating_cash_flow_per_share: Option<f64>,
    pub capex_per_share: Option<f64>,
    pub free_cash_flow_per_share: Option<f64>,
    #[serde(rename = "netIncomePerEBT")]
    pub net_income_per_ebt: Option<f64>,
    pub ebt_per_ebit: Option<f64>,
    pub price_to_fair_value: Option<f64>,
    pub debt_to_market_cap: Option<f64>,
    pub effective_tax_rate: Option<f64>,
    pub enterprise_value_multiple: Option<f64>,
    pub dividend_per_share: Option<f64>,
}