Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Financial Calculation Primitives (FinPrim)
This is a minimal library providing various primitive functions to perform financial calculations.
Most functions with Excel and Google Sheets counterparts mimic their behavior and arguments.
Functionality
Type Agnostic
This library is designed to be type-agnostic, allowing you to use any type that implements the FloatLike trait.
Default implementations:
f32f64Decimalfrom rust_decimal (viarust_decimalfeature)
You can implement the FloatLike trait for your own types or wrap any decimal-like / floating-point type providing crate for use with this library. Allowing you to choose a type that best fits your precision and performance requirements.
Time Value of Money (TVM) Calculations
rust_finprim::tvm module.
- Present Value
- Common Uses: Bond Pricing, Discounted Cash Flow, Annuities, etc.
- Future Value
- Common Uses: Compound Interest/Growth, Annuities etc.
- Net Present Value (NPV)
- Common Uses: Capital Budgeting, Investment Analysis, etc.
- Net Present Value with differing discount rates
- Net Present Value for irregular cash flows (XNPV)
- Payment (PMT)
- Common Uses: Bonds, Loan/Mortgage Payments, Annuities, etc.
Rate Calculations
rust_finprim::rate module.
- APR (Annual Percentage Rate) and EAR (Effective Annual Rate) conversions
- IRR (Internal Rate of Return)
- Common Uses: Investment Analysis, Capital Budgeting, Bond Yields (YTM, YTC), etc.
- Internal Rate of Return for irregular cash flows (XIRR)
- MIRR (Modified Internal Rate of Return)
- Modified Internal Rate of Return for irregular cash flows (XMIRR)
- Time Weighted Return
- Common Uses: Performance Measurement, Portfolio Analysis, Due Diligence, etc.
- Percentage Change
Amortization, Depreciation, and Tax Calculations
rust_finprim::amort_dep_tax module.
- Amortization Schedule
- Common Uses: Loan/Mortgage Amortization
- Depreciation Schedules for various methods
- Straight line
- Declining balance (e.g. double declining balance)
- Sum of years digits
- MACRS (Modified Accelerated Cost Recovery System) for US tax purposes
- Progressive Income Tax
Derivatives
rust_finprim::derivatives module.
-
1st and 2nd derivative of present value with respect to interest rate
- Useful for calculating duration, convexity and various optimization problems
-
1st and 2nd derivative of WACC (Weighted Average Cost of Capital) with respect to the debt/equity ratio
Features
std- Enabled by default. You can use the library in ano_stdenvironment withdefault-features = falseand enablingno_stdfeature (no_stddepends on thelibmcrate for the core float types).serde- Enables serialization and deserialization of the provided structs usingserde.rust_decimal- Enables support for theDecimaltype from the rust_decimal crate.
Installation
Add the following to your Cargo.toml:
[]
= "0.5.1"
Or
Enable everything:
Disable std and enable no_std: