Skip to main content

fmp_rust_sdk/models/
metrics.rs

1//! Company key metrics and financial ratios.
2
3use super::FinancialPeriod;
4use serde::{Deserialize, Serialize};
5
6/// Historical metrics from `key-metrics`. Undefined ratios may be null.
7#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
8#[serde(rename_all = "camelCase")]
9pub struct KeyMetrics {
10    #[serde(flatten)]
11    pub metadata: FinancialPeriod,
12    pub market_cap: Option<f64>,
13    pub enterprise_value: Option<f64>,
14    pub ev_to_sales: Option<f64>,
15    pub ev_to_operating_cash_flow: Option<f64>,
16    pub ev_to_free_cash_flow: Option<f64>,
17    #[serde(rename = "evToEBITDA")]
18    pub ev_to_ebitda: Option<f64>,
19    #[serde(rename = "netDebtToEBITDA")]
20    pub net_debt_to_ebitda: Option<f64>,
21    pub current_ratio: Option<f64>,
22    pub income_quality: Option<f64>,
23    pub graham_number: Option<f64>,
24    pub graham_net_net: Option<f64>,
25    pub tax_burden: Option<f64>,
26    pub interest_burden: Option<f64>,
27    pub working_capital: Option<f64>,
28    pub invested_capital: Option<f64>,
29    pub return_on_assets: Option<f64>,
30    pub operating_return_on_assets: Option<f64>,
31    pub return_on_tangible_assets: Option<f64>,
32    pub return_on_equity: Option<f64>,
33    pub return_on_invested_capital: Option<f64>,
34    pub return_on_capital_employed: Option<f64>,
35    pub earnings_yield: Option<f64>,
36    pub free_cash_flow_yield: Option<f64>,
37    pub capex_to_operating_cash_flow: Option<f64>,
38    pub capex_to_depreciation: Option<f64>,
39    pub capex_to_revenue: Option<f64>,
40    pub sales_general_and_administrative_to_revenue: Option<f64>,
41    #[serde(rename = "researchAndDevelopementToRevenue")]
42    pub research_and_development_to_revenue: Option<f64>,
43    pub stock_based_compensation_to_revenue: Option<f64>,
44    pub intangibles_to_total_assets: Option<f64>,
45    pub average_receivables: Option<f64>,
46    pub average_payables: Option<f64>,
47    pub average_inventory: Option<f64>,
48    pub days_of_sales_outstanding: Option<f64>,
49    pub days_of_payables_outstanding: Option<f64>,
50    pub days_of_inventory_outstanding: Option<f64>,
51    pub operating_cycle: Option<f64>,
52    pub cash_conversion_cycle: Option<f64>,
53    pub free_cash_flow_to_equity: Option<f64>,
54    pub free_cash_flow_to_firm: Option<f64>,
55    pub tangible_asset_value: Option<f64>,
56    pub net_current_asset_value: Option<f64>,
57}
58
59/// Historical ratios from `ratios`. Undefined ratios may be null.
60#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
61#[serde(rename_all = "camelCase")]
62pub struct FinancialRatios {
63    #[serde(flatten)]
64    pub metadata: FinancialPeriod,
65    pub gross_profit_margin: Option<f64>,
66    pub ebit_margin: Option<f64>,
67    pub ebitda_margin: Option<f64>,
68    pub operating_profit_margin: Option<f64>,
69    pub pretax_profit_margin: Option<f64>,
70    pub continuous_operations_profit_margin: Option<f64>,
71    pub net_profit_margin: Option<f64>,
72    pub bottom_line_profit_margin: Option<f64>,
73    pub receivables_turnover: Option<f64>,
74    pub payables_turnover: Option<f64>,
75    pub inventory_turnover: Option<f64>,
76    pub fixed_asset_turnover: Option<f64>,
77    pub asset_turnover: Option<f64>,
78    pub current_ratio: Option<f64>,
79    pub quick_ratio: Option<f64>,
80    pub solvency_ratio: Option<f64>,
81    pub cash_ratio: Option<f64>,
82    pub price_to_earnings_ratio: Option<f64>,
83    pub price_to_earnings_growth_ratio: Option<f64>,
84    pub forward_price_to_earnings_growth_ratio: Option<f64>,
85    pub price_to_earnings_diluted_ratio: Option<f64>,
86    pub price_to_earnings_diluted_growth_ratio: Option<f64>,
87    pub price_to_book_ratio: Option<f64>,
88    pub price_to_sales_ratio: Option<f64>,
89    pub price_to_free_cash_flow_ratio: Option<f64>,
90    pub price_to_operating_cash_flow_ratio: Option<f64>,
91    pub debt_to_assets_ratio: Option<f64>,
92    pub debt_to_equity_ratio: Option<f64>,
93    pub debt_to_capital_ratio: Option<f64>,
94    pub long_term_debt_to_capital_ratio: Option<f64>,
95    pub financial_leverage_ratio: Option<f64>,
96    pub working_capital_turnover_ratio: Option<f64>,
97    pub operating_cash_flow_ratio: Option<f64>,
98    pub operating_cash_flow_sales_ratio: Option<f64>,
99    pub free_cash_flow_operating_cash_flow_ratio: Option<f64>,
100    pub debt_service_coverage_ratio: Option<f64>,
101    pub interest_coverage_ratio: Option<f64>,
102    pub short_term_operating_cash_flow_coverage_ratio: Option<f64>,
103    pub operating_cash_flow_coverage_ratio: Option<f64>,
104    pub capital_expenditure_coverage_ratio: Option<f64>,
105    pub dividend_paid_and_capex_coverage_ratio: Option<f64>,
106    pub dividend_payout_ratio: Option<f64>,
107    pub dividend_yield: Option<f64>,
108    pub dividend_yield_percentage: Option<f64>,
109    pub revenue_per_share: Option<f64>,
110    pub net_income_per_share: Option<f64>,
111    pub interest_debt_per_share: Option<f64>,
112    pub cash_per_share: Option<f64>,
113    pub book_value_per_share: Option<f64>,
114    pub tangible_book_value_per_share: Option<f64>,
115    pub shareholders_equity_per_share: Option<f64>,
116    pub operating_cash_flow_per_share: Option<f64>,
117    pub capex_per_share: Option<f64>,
118    pub free_cash_flow_per_share: Option<f64>,
119    #[serde(rename = "netIncomePerEBT")]
120    pub net_income_per_ebt: Option<f64>,
121    pub ebt_per_ebit: Option<f64>,
122    pub price_to_fair_value: Option<f64>,
123    pub debt_to_market_cap: Option<f64>,
124    pub effective_tax_rate: Option<f64>,
125    pub enterprise_value_multiple: Option<f64>,
126    pub dividend_per_share: Option<f64>,
127}