SolidOS / money-pane

Insight in your personal finance data
MIT License
11 stars 1 forks source link

Tie the data formats together #42

Open michielbdejong opened 2 years ago

michielbdejong commented 2 years ago

There is quite some code in run.js and chart.html and it uses similar but incompatible data formats. Should tie those together! Would Cambria be useful for that? Or maybe bring it all back to the HalfTrade class and improve that?

michielbdejong commented 2 years ago

Following discussion at Federated Bookkeeping Weekly Call, I realised that the format/ontology in which personal finance data is stored in a user's pod, needs not be standardised at all. We can use a 'data lake approach' and store the raw messages/imports along with metadata about them, but not transforming the data before storing it to the user's pod.

The code then transforms the data on the fly, to produce the desired view to the end-user.

At most, there may be an intermediate data format to cache, but this could then be much closer to the view than you would normally do for a data(base) schema in a stand-alone software system.

michielbdejong commented 2 years ago

data sources that go into a view:

code modules:

  1. parsers (for bank statements but also for expenses and timesheet data)
  2. merging and matching
  3. implied transactions
  4. budgets
  5. depreciation
  6. work
  7. views
michielbdejong commented 2 years ago

The parsers generate Entrys and information about completeness of the view for some dates Merging and Matching brings data from all sources together into one big list, and filters out the duplicates. Implied transactions, budgets, and depreciation add three types of additional transactions:

michielbdejong commented 2 years ago

To what extent is this bookkeeping system federated? It's nice that expenses and time sheets can be federated between organisation and employee. This is probably also possible for virtual organisations. invoices can be sent with e-invoicing we could experiment with federated timesheets

michielbdejong commented 2 years ago

should I continue this work in PHP?

michielbdejong commented 2 years ago

Ha, thanks to @paul-french we discovered https://plaintextaccounting.org/ and https://hledger.org/ - will try out if we can switch to that!

michielbdejong commented 2 years ago

Wow, this is very valuable already: https://github.com/simonmichael/hledger/tree/master/examples/csv

michielbdejong commented 2 years ago

And more importers listed on https://plaintextaccounting.org/#data-importconversion