paft-fundamentals

Crates.iopaft-fundamentals
lib.rspaft-fundamentals
version0.7.1
created_at2025-09-15 22:55:31.951174+00
updated_at2025-10-31 17:56:11.504497+00
descriptionFundamentals data models and helpers for paft.
homepagehttps://github.com/paft-rs/paft
repositoryhttps://github.com/paft-rs/paft
max_upload_size
id1840666
size178,284
G. Ramistella (gramistella)

documentation

https://docs.rs/paft-fundamentals

README

paft-fundamentals

Fundamentals data models for the paft ecosystem: financial statements, analysis, holders, and ESG.

Crates.io Docs.rs

  • Profiles: CompanyProfile, FundProfile
  • Statements: IncomeStatementRow, BalanceSheetRow, CashflowRow
  • Analysis: earnings, recommendations, price targets
  • Holders: institutional, insiders
  • ESG: scores, involvement, summary

Install

Prefer the facade crate for most applications:

[dependencies]
paft = "0.7.1"

Advanced (direct dependency, minimal):

[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false }

Alternate decimal backend:

[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false, features = ["bigdecimal"] }

With DataFrame integration:

[dependencies]
paft-fundamentals = { version = "0.7.1", default-features = false, features = ["dataframe"] }

Features

  • bigdecimal: change money backend from rust_decimal to bigdecimal via paft-money
  • dataframe: Polars integration (ToDataFrame/ToDataFrameVec)

Quickstart

use paft_fundamentals::{Earnings, EarningsYear, Profile, CompanyProfile};

let earnings = Earnings { yearly: vec![EarningsYear { year: 2023, ..Default::default() }], ..Default::default() };
assert_eq!(earnings.yearly[0].year, 2023);

let profile = Profile::Company(CompanyProfile {
    name: "Example Corp".into(),
    sector: None,
    industry: None,
    website: None,
    address: None,
    summary: None,
    isin: None,
});
if let Profile::Company(c) = profile { assert_eq!(c.name, "Example Corp"); }

Links

Commit count: 38

cargo fmt