1.0.0 • Published 4 years ago

patrimonium v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

Patrimonium.js

Patrimonium.js is a JavaScript library providing a set of tools to modelize the real estate operations of an individual and their impact on the financial situation of the same individual.

Install

Install the package from NPM.

npm i patrimonium

Patrimonium.js library is exposed under all the module definitions (UMD).

Use

Concepts

A Person represents an individual with financial capabilities. A series of operations at specific dates can be performed on behalf of this Person. A financial Reporting composed of BalanceSheet and PLStatement (profit and loss statement) is also available month-over-month.

A Person is considered country-agnostic, meaning that taxation is not defined by default. If needed, the tax calculation must be provided when instancing a Person.

A Person can be used as a single individual but also as a taxable household composed of multiple individuals.

Country plugins serve the purpose of providing additional classes inheriting from Person with built-in country-specific features like tax calculation. The following plugins are available :

  • France
    • income tax calculation for salaries (based on gross salary and employment status)
    • rental income tax calculation based on 'micro-foncier' scheme (more schemes to come)

Example

import { SimpleDate } from 'patrimonium';
import { Frenchman } from 'patrimonium/countries/france';

const person = new Frenchman({
    currentAccount: 50000,
    employments: [{
        salary: () => 30000, // gross annual salary
        status: 'public' // public administration
    }]
});

const atStart = new SimpleDate({ nthMonth: 0 });
const oneYearLater = new SimpleDate({ nthMonth: 12 });
const twoYearsLater = new SimpleDate({ nthMonth: 24 });

person.buyProperty(atStart, {
    price: 200000,
    notaryFees: 7000
});

person.signLoan(atStart, {
    amount: 180000,
    period: 240, // months
    interestRate: 1.35,
    insuranceRate: 0.36
});

person.sellProperty(oneYearLater);

const history = person.getHistory(twoYearsLater); // getting history from the start up to two years later
const balanceSheetOneYearAndAHalfLater = history[18].balanceSheet;
const plStatementOneYearAndAHalfLater = history[18].plStatement;

Limitations

  • Multi-currency is not supported.
  • Foreign income is not supported but using employment status can be a workaround for foreign salaries.

Documentation

For more information about all available features, consult Typescript declaration files.

License

MIT

1.0.0

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago