finance_query/models/corporate/governance.rs
1//! Corporate governance models: executive compensation and employee headcount.
2//!
3//! Served through the [`Capability::CORPORATE`](crate::Capability::CORPORATE)
4//! route. Both are derived from the company's own SEC filings (DEF 14A proxy
5//! statements and 10-K/10-Q cover pages respectively), so figures are annual
6//! and lag the filing date. EDGAR serves employee counts filed under the
7//! voluntary `dei:EntityNumberOfEmployees` tag, which most filers don't use;
8//! FMP remains the more complete source.
9
10use serde::{Deserialize, Serialize};
11
12/// One executive's reported compensation for one fiscal year.
13#[derive(Debug, Clone, Default, Serialize, Deserialize)]
14#[non_exhaustive]
15pub struct ExecutiveCompensation {
16 /// Ticker symbol.
17 pub symbol: Option<String>,
18 /// SEC Central Index Key of the filer.
19 pub cik: Option<String>,
20 /// Company name as filed.
21 pub company_name: Option<String>,
22 /// Executive name and position, as a single filed string.
23 pub name_and_position: Option<String>,
24 /// Fiscal year the compensation covers.
25 pub year: Option<i32>,
26 /// Base salary.
27 pub salary: Option<f64>,
28 /// Cash bonus.
29 pub bonus: Option<f64>,
30 /// Value of stock awards.
31 pub stock_award: Option<f64>,
32 /// Value of option awards.
33 pub option_award: Option<f64>,
34 /// Non-equity incentive plan compensation.
35 pub incentive_plan_compensation: Option<f64>,
36 /// All other compensation.
37 pub other_compensation: Option<f64>,
38 /// Total compensation.
39 pub total: Option<f64>,
40 /// Filing date of the source document (`YYYY-MM-DD`).
41 pub filing_date: Option<String>,
42 /// URL of the source filing.
43 pub url: Option<String>,
44}
45
46/// Employee headcount as reported on one filing.
47#[derive(Debug, Clone, Default, Serialize, Deserialize)]
48#[non_exhaustive]
49pub struct EmployeeCount {
50 /// Ticker symbol.
51 pub symbol: Option<String>,
52 /// SEC Central Index Key of the filer.
53 pub cik: Option<String>,
54 /// Company name as filed.
55 pub company_name: Option<String>,
56 /// Number of employees reported.
57 pub employee_count: Option<i64>,
58 /// Period the count is as of (`YYYY-MM-DD`).
59 pub period_of_report: Option<String>,
60 /// Form the count was reported on (e.g. `"10-K"`).
61 pub form_type: Option<String>,
62 /// Filing date (`YYYY-MM-DD`).
63 pub filing_date: Option<String>,
64 /// URL of the source filing.
65 pub source: Option<String>,
66}