Skip to main content

fmp_rust_sdk/models/
ttm.rs

1//! Trailing twelve-month key metrics and financial ratios.
2
3use serde::{Deserialize, Serialize};
4
5/// Trailing twelve-month metrics from `key-metrics-ttm`.
6#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
7#[serde(rename_all = "camelCase")]
8pub struct KeyMetricsTtm {
9    #[serde(deserialize_with = "super::non_empty_string")]
10    pub symbol: String,
11    pub market_cap: Option<f64>,
12    #[serde(rename = "enterpriseValueTTM")]
13    pub enterprise_value_ttm: Option<f64>,
14    #[serde(rename = "evToSalesTTM")]
15    pub ev_to_sales_ttm: Option<f64>,
16    #[serde(rename = "evToOperatingCashFlowTTM")]
17    pub ev_to_operating_cash_flow_ttm: Option<f64>,
18    #[serde(rename = "evToFreeCashFlowTTM")]
19    pub ev_to_free_cash_flow_ttm: Option<f64>,
20    #[serde(rename = "evToEBITDATTM")]
21    pub ev_to_ebitda_ttm: Option<f64>,
22    #[serde(rename = "netDebtToEBITDATTM")]
23    pub net_debt_to_ebitda_ttm: Option<f64>,
24    #[serde(rename = "currentRatioTTM")]
25    pub current_ratio_ttm: Option<f64>,
26    #[serde(rename = "incomeQualityTTM")]
27    pub income_quality_ttm: Option<f64>,
28    #[serde(rename = "grahamNumberTTM")]
29    pub graham_number_ttm: Option<f64>,
30    #[serde(rename = "grahamNetNetTTM")]
31    pub graham_net_net_ttm: Option<f64>,
32    #[serde(rename = "taxBurdenTTM")]
33    pub tax_burden_ttm: Option<f64>,
34    #[serde(rename = "interestBurdenTTM")]
35    pub interest_burden_ttm: Option<f64>,
36    #[serde(rename = "workingCapitalTTM")]
37    pub working_capital_ttm: Option<f64>,
38    #[serde(rename = "investedCapitalTTM")]
39    pub invested_capital_ttm: Option<f64>,
40    #[serde(rename = "returnOnAssetsTTM")]
41    pub return_on_assets_ttm: Option<f64>,
42    #[serde(rename = "operatingReturnOnAssetsTTM")]
43    pub operating_return_on_assets_ttm: Option<f64>,
44    #[serde(rename = "returnOnTangibleAssetsTTM")]
45    pub return_on_tangible_assets_ttm: Option<f64>,
46    #[serde(rename = "returnOnEquityTTM")]
47    pub return_on_equity_ttm: Option<f64>,
48    #[serde(rename = "returnOnInvestedCapitalTTM")]
49    pub return_on_invested_capital_ttm: Option<f64>,
50    #[serde(rename = "returnOnCapitalEmployedTTM")]
51    pub return_on_capital_employed_ttm: Option<f64>,
52    #[serde(rename = "earningsYieldTTM")]
53    pub earnings_yield_ttm: Option<f64>,
54    #[serde(rename = "freeCashFlowYieldTTM")]
55    pub free_cash_flow_yield_ttm: Option<f64>,
56    #[serde(rename = "capexToOperatingCashFlowTTM")]
57    pub capex_to_operating_cash_flow_ttm: Option<f64>,
58    #[serde(rename = "capexToDepreciationTTM")]
59    pub capex_to_depreciation_ttm: Option<f64>,
60    #[serde(rename = "capexToRevenueTTM")]
61    pub capex_to_revenue_ttm: Option<f64>,
62    #[serde(rename = "salesGeneralAndAdministrativeToRevenueTTM")]
63    pub sales_general_and_administrative_to_revenue_ttm: Option<f64>,
64    #[serde(rename = "researchAndDevelopementToRevenueTTM")]
65    pub research_and_development_to_revenue_ttm: Option<f64>,
66    #[serde(rename = "stockBasedCompensationToRevenueTTM")]
67    pub stock_based_compensation_to_revenue_ttm: Option<f64>,
68    #[serde(rename = "intangiblesToTotalAssetsTTM")]
69    pub intangibles_to_total_assets_ttm: Option<f64>,
70    #[serde(rename = "averageReceivablesTTM")]
71    pub average_receivables_ttm: Option<f64>,
72    #[serde(rename = "averagePayablesTTM")]
73    pub average_payables_ttm: Option<f64>,
74    #[serde(rename = "averageInventoryTTM")]
75    pub average_inventory_ttm: Option<f64>,
76    #[serde(rename = "daysOfSalesOutstandingTTM")]
77    pub days_of_sales_outstanding_ttm: Option<f64>,
78    #[serde(rename = "daysOfPayablesOutstandingTTM")]
79    pub days_of_payables_outstanding_ttm: Option<f64>,
80    #[serde(rename = "daysOfInventoryOutstandingTTM")]
81    pub days_of_inventory_outstanding_ttm: Option<f64>,
82    #[serde(rename = "operatingCycleTTM")]
83    pub operating_cycle_ttm: Option<f64>,
84    #[serde(rename = "cashConversionCycleTTM")]
85    pub cash_conversion_cycle_ttm: Option<f64>,
86    #[serde(rename = "freeCashFlowToEquityTTM")]
87    pub free_cash_flow_to_equity_ttm: Option<f64>,
88    #[serde(rename = "freeCashFlowToFirmTTM")]
89    pub free_cash_flow_to_firm_ttm: Option<f64>,
90    #[serde(rename = "tangibleAssetValueTTM")]
91    pub tangible_asset_value_ttm: Option<f64>,
92    #[serde(rename = "netCurrentAssetValueTTM")]
93    pub net_current_asset_value_ttm: Option<f64>,
94}
95
96/// Trailing twelve-month ratios from `ratios-ttm`.
97#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
98#[serde(rename_all = "camelCase")]
99pub struct FinancialRatiosTtm {
100    #[serde(deserialize_with = "super::non_empty_string")]
101    pub symbol: String,
102    #[serde(rename = "grossProfitMarginTTM")]
103    pub gross_profit_margin_ttm: Option<f64>,
104    #[serde(rename = "ebitMarginTTM")]
105    pub ebit_margin_ttm: Option<f64>,
106    #[serde(rename = "ebitdaMarginTTM")]
107    pub ebitda_margin_ttm: Option<f64>,
108    #[serde(rename = "operatingProfitMarginTTM")]
109    pub operating_profit_margin_ttm: Option<f64>,
110    #[serde(rename = "pretaxProfitMarginTTM")]
111    pub pretax_profit_margin_ttm: Option<f64>,
112    #[serde(rename = "continuousOperationsProfitMarginTTM")]
113    pub continuous_operations_profit_margin_ttm: Option<f64>,
114    #[serde(rename = "netProfitMarginTTM")]
115    pub net_profit_margin_ttm: Option<f64>,
116    #[serde(rename = "bottomLineProfitMarginTTM")]
117    pub bottom_line_profit_margin_ttm: Option<f64>,
118    #[serde(rename = "receivablesTurnoverTTM")]
119    pub receivables_turnover_ttm: Option<f64>,
120    #[serde(rename = "payablesTurnoverTTM")]
121    pub payables_turnover_ttm: Option<f64>,
122    #[serde(rename = "inventoryTurnoverTTM")]
123    pub inventory_turnover_ttm: Option<f64>,
124    #[serde(rename = "fixedAssetTurnoverTTM")]
125    pub fixed_asset_turnover_ttm: Option<f64>,
126    #[serde(rename = "assetTurnoverTTM")]
127    pub asset_turnover_ttm: Option<f64>,
128    #[serde(rename = "currentRatioTTM")]
129    pub current_ratio_ttm: Option<f64>,
130    #[serde(rename = "quickRatioTTM")]
131    pub quick_ratio_ttm: Option<f64>,
132    #[serde(rename = "solvencyRatioTTM")]
133    pub solvency_ratio_ttm: Option<f64>,
134    #[serde(rename = "cashRatioTTM")]
135    pub cash_ratio_ttm: Option<f64>,
136    #[serde(rename = "priceToEarningsRatioTTM")]
137    pub price_to_earnings_ratio_ttm: Option<f64>,
138    #[serde(rename = "priceToEarningsGrowthRatioTTM")]
139    pub price_to_earnings_growth_ratio_ttm: Option<f64>,
140    #[serde(rename = "forwardPriceToEarningsGrowthRatioTTM")]
141    pub forward_price_to_earnings_growth_ratio_ttm: Option<f64>,
142    #[serde(rename = "priceToEarningsDilutedRatioTTM")]
143    pub price_to_earnings_diluted_ratio_ttm: Option<f64>,
144    #[serde(rename = "priceToEarningsDilutedGrowthRatioTTM")]
145    pub price_to_earnings_diluted_growth_ratio_ttm: Option<f64>,
146    #[serde(rename = "priceToBookRatioTTM")]
147    pub price_to_book_ratio_ttm: Option<f64>,
148    #[serde(rename = "priceToSalesRatioTTM")]
149    pub price_to_sales_ratio_ttm: Option<f64>,
150    #[serde(rename = "priceToFreeCashFlowRatioTTM")]
151    pub price_to_free_cash_flow_ratio_ttm: Option<f64>,
152    #[serde(rename = "priceToOperatingCashFlowRatioTTM")]
153    pub price_to_operating_cash_flow_ratio_ttm: Option<f64>,
154    #[serde(rename = "debtToAssetsRatioTTM")]
155    pub debt_to_assets_ratio_ttm: Option<f64>,
156    #[serde(rename = "debtToEquityRatioTTM")]
157    pub debt_to_equity_ratio_ttm: Option<f64>,
158    #[serde(rename = "debtToCapitalRatioTTM")]
159    pub debt_to_capital_ratio_ttm: Option<f64>,
160    #[serde(rename = "longTermDebtToCapitalRatioTTM")]
161    pub long_term_debt_to_capital_ratio_ttm: Option<f64>,
162    #[serde(rename = "financialLeverageRatioTTM")]
163    pub financial_leverage_ratio_ttm: Option<f64>,
164    #[serde(rename = "workingCapitalTurnoverRatioTTM")]
165    pub working_capital_turnover_ratio_ttm: Option<f64>,
166    #[serde(rename = "operatingCashFlowRatioTTM")]
167    pub operating_cash_flow_ratio_ttm: Option<f64>,
168    #[serde(rename = "operatingCashFlowSalesRatioTTM")]
169    pub operating_cash_flow_sales_ratio_ttm: Option<f64>,
170    #[serde(rename = "freeCashFlowOperatingCashFlowRatioTTM")]
171    pub free_cash_flow_operating_cash_flow_ratio_ttm: Option<f64>,
172    #[serde(rename = "debtServiceCoverageRatioTTM")]
173    pub debt_service_coverage_ratio_ttm: Option<f64>,
174    #[serde(rename = "interestCoverageRatioTTM")]
175    pub interest_coverage_ratio_ttm: Option<f64>,
176    #[serde(rename = "shortTermOperatingCashFlowCoverageRatioTTM")]
177    pub short_term_operating_cash_flow_coverage_ratio_ttm: Option<f64>,
178    #[serde(rename = "operatingCashFlowCoverageRatioTTM")]
179    pub operating_cash_flow_coverage_ratio_ttm: Option<f64>,
180    #[serde(rename = "capitalExpenditureCoverageRatioTTM")]
181    pub capital_expenditure_coverage_ratio_ttm: Option<f64>,
182    #[serde(rename = "dividendPaidAndCapexCoverageRatioTTM")]
183    pub dividend_paid_and_capex_coverage_ratio_ttm: Option<f64>,
184    #[serde(rename = "dividendPayoutRatioTTM")]
185    pub dividend_payout_ratio_ttm: Option<f64>,
186    #[serde(rename = "dividendYieldTTM")]
187    pub dividend_yield_ttm: Option<f64>,
188    #[serde(rename = "enterpriseValueTTM")]
189    pub enterprise_value_ttm: Option<f64>,
190    #[serde(rename = "revenuePerShareTTM")]
191    pub revenue_per_share_ttm: Option<f64>,
192    #[serde(rename = "netIncomePerShareTTM")]
193    pub net_income_per_share_ttm: Option<f64>,
194    #[serde(rename = "interestDebtPerShareTTM")]
195    pub interest_debt_per_share_ttm: Option<f64>,
196    #[serde(rename = "cashPerShareTTM")]
197    pub cash_per_share_ttm: Option<f64>,
198    #[serde(rename = "bookValuePerShareTTM")]
199    pub book_value_per_share_ttm: Option<f64>,
200    #[serde(rename = "tangibleBookValuePerShareTTM")]
201    pub tangible_book_value_per_share_ttm: Option<f64>,
202    #[serde(rename = "shareholdersEquityPerShareTTM")]
203    pub shareholders_equity_per_share_ttm: Option<f64>,
204    #[serde(rename = "operatingCashFlowPerShareTTM")]
205    pub operating_cash_flow_per_share_ttm: Option<f64>,
206    #[serde(rename = "capexPerShareTTM")]
207    pub capex_per_share_ttm: Option<f64>,
208    #[serde(rename = "freeCashFlowPerShareTTM")]
209    pub free_cash_flow_per_share_ttm: Option<f64>,
210    #[serde(rename = "netIncomePerEBTTTM")]
211    pub net_income_per_ebt_ttm: Option<f64>,
212    #[serde(rename = "ebtPerEbitTTM")]
213    pub ebt_per_ebit_ttm: Option<f64>,
214    #[serde(rename = "priceToFairValueTTM")]
215    pub price_to_fair_value_ttm: Option<f64>,
216    #[serde(rename = "debtToMarketCapTTM")]
217    pub debt_to_market_cap_ttm: Option<f64>,
218    #[serde(rename = "effectiveTaxRateTTM")]
219    pub effective_tax_rate_ttm: Option<f64>,
220    #[serde(rename = "enterpriseValueMultipleTTM")]
221    pub enterprise_value_multiple_ttm: Option<f64>,
222    #[serde(rename = "dividendPerShareTTM")]
223    pub dividend_per_share_ttm: Option<f64>,
224}