Code Monkey home page Code Monkey logo

Comments (5)

michielbdejong avatar michielbdejong commented on September 1, 2024

There are multiple date types (for balance, for interest, for exchange rate, for entry), and they are reported in different ways and don't always match. There is not one date that can be used. Also, the time-of-day component is often missing (so we pretend the mutation took place at midnight GMT but that's not accurate, we should say we know it took place some time between midnight am on the day and midnight am the next day).

from money-pane.

michielbdejong avatar michielbdejong commented on September 1, 2024

Another (often more reliable) way to identify mutations is by looking at the log order. Example:

Alice reports:

  • 1 January Alice -> Bob 1 EUR
  • 15 January Alice -> Bob 15 EUR
  • 31 January Alice -> Bob 31 EUR

Bob reports:

  • 1 January Alice -> Bob 1 EUR
  • 16 January Alice -> Bob 15 EUR
  • 31 January Alice -> Bob 31 EUR

They both report the same ordered list of 3 transactions for January, so we can link them based on "previous" and "next". So then you can peg a skewed transaction to the last correct one. But then what happens if every transaction is skewed? And the start and end date/time would then also not be reliable.

from money-pane.

michielbdejong avatar michielbdejong commented on September 1, 2024

heuristic:
If:

  • there is a matched chunk
  • there is an adjacent floating departure and a floating arrival, and the amount/unit match
  • the date skew is at most 1 day

Then use the earliest date and merge.

from money-pane.

michielbdejong avatar michielbdejong commented on September 1, 2024

i'll start with implementing this in the forward direction

from money-pane.

michielbdejong avatar michielbdejong commented on September 1, 2024

and maybe only if to.date is 24 hours after from.date.

from money-pane.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.