[GNC-dev] About 3.9 and reconciliation balances

D. sunfish62 at yahoo.com
Fri Apr 10 23:27:48 EDT 2020


Christopher, 

Those are all very good points. I do think that the goals are laudable, and I think Dale's call for further analysis is a good approach. The question of what reconciliation is supposed to be, and what it's supposed to do (beyond the most rudimentary textbook descriptions) are not yet clearly defined in theoretical or practical ways, and they should be. 

The original developer model, I believe, was that reconciliation was a one time, forward moving progression that never deviates. You get a statement from your bank, check off those entries in your books that match, and if they balance, you are done until the next month, when you repeat the process with the next batch, etc. The need for a date of reconciliation is secondary in this model. 

Unfortunately, real life doesn't always match that, and when a fat finger problem arises, it becomes exceedingly difficult to track down the source. I've been known to revert more than a year's transactions and reconcile them all over again in some situations. So, a mechanism that would allow me to isolate that variation would be fabulous. 

But, I am also one who will reconcile an account for a year or more in one pass, simply because it's an account with one or two monthly transactions. So, that is a complication...

I will also add in here that the developers have muddied the waters on this whole situation with the decision to de-reconcile transactions when the user edits it later-- even if the changes are not related to an account's balances. In addition to the challenges these changes may cause to your reconcile model, they go straight to the question of what reconciliation means in the GnuCash realm. If reconciliation is an established regular process to compare against a statement always, then allowing an edit to change this status needs reevaluation. But if status is always malleable by later actions, then your model is doomed to failure, since you can't rely on the date of reconciliation to remain set to the actual statement date. 

The aqbanking issue (that imported transactions get the current date in reconciliation date) requires further consideration as well. 

Looking this over, it seems to me that your goals could only be achieved by adding a statement date data element to each transaction, which would tie that transaction to a specific statement. This field would have much more limited purpose and modification avenues. It would also help with generation of reconciliation reports. The existing reconciliation date field would then be freer to be considered a last-edited date, which might have benefits in other ways-- for example, one might be able to identify a transaction in a reconciliation set that has a significantly different last edited date. Or a user could be notified in the popup when they change the value of a reconciled split that they should revisit the mm-dd-yyyy reconciliation to be sure that their books are still accurate. 

David T.




-------- Original Message --------
From: Christopher Lam <christopher.lck at gmail.com>
Sent: Sat Apr 11 03:41:01 GMT+05:30 2020
Cc: gnucash-devel <gnucash-devel at gnucash.org>
Subject: Re: [GNC-dev] About 3.9 and reconciliation balances

The "purpose" for the "fix" was to allow future features:

1. allow manual reconciliation of an account, using past reconciled_date
and relevant past ending_balance. If my "fix" were applied, it would serve
*me* very well:
(a) If an account, properly reconciled, had an errant split hiding
somewhere caused by fat-finger, I could reconcile from any past bank
statement, verify the balance is correct (or not) and narrow down to the
exact period that contains the errant split.
(b) This was also useful to fix cases where a past split was unreconciled
and needed to be rereconciled -- you could reconcile latest statement and
change the field 'n' to 'y' but its reconciled date would *not* be accurate
anymore because it'd be the latest statement; I meant to reset the split
reconciled_date to be the statement_date.

2. a natural extension of allowing past reconciliation is to store the list
of statement_date and ending_balance somewhere in the account metadata and
retrieve the list in reconcile_window. Hence
https://github.com/Gnucash/gnucash/pull/667 is born.
https://user-images.githubusercontent.com/1975870/77246245-5a1e2d80-6c1d-11ea-8fc3-b2ec34fdb5f9.png
is possible. In my testing, rereconciling past statements is nicely
upgraded.

3. a benefit of maintaining old reconciled_data is that we can now compare
an account's reconciled balances at periodic dates against the stored list,
and loudly report if a balance discrepancy is found. See
https://user-images.githubusercontent.com/1975870/78035104-2c8d5e80-7358-11ea-95bc-feba7f9f2bba.png
-- note the first two lines show reconciliation and account balances match;
the third section show unequal balances and show the relevant splits which
contain an extra one.

So, (1) and (2) are not possible -- rereconciling past statement cannot
currently take place (unless code sets/queries a book property "use strict
reconciled dates"), but I believe (3) is still possible. It won't happen
until 4.x though.

On Fri, 10 Apr 2020 at 18:51, Dale Phurrough via gnucash-devel <
gnucash-devel at gnucash.org> wrote:

> Yes JR and DA 😄
> Nothing bad or sinister, rather a future opportunity to virtually
> whiteboard the concepts and events surrounding "reconciliation", then
> reviewing what gnucash currently does to see the gaps.
>
> It's comforting to see that it works for so many scenarios, and the
> discussion on this was hardy for change/regression.
> With it reverting to 3.8 behavior, I see all this as a healthy outcome with
> a opportunity for the future. I'll gladly participate in it as I'm a
> regular qif, ofx, manual, multiple currencies reconciler.
>
> On Fri, Apr 10, 2020, 6:43 PM Derek Atkins <derek at ihtfp.com> wrote:
>
> > Dale,
> >
> > On Fri, April 10, 2020 12:37 pm, John Ralls wrote:
> > >
> > >
> > >> On Apr 10, 2020, at 8:22 AM, Dale Phurrough via gnucash-devel
> > >> <gnucash-devel at gnucash.org> wrote:
> > >>
> > >> This feels like a separation of accounting logic -- separate from
> > >> storage
> > >> field -- has broken down. From what you wrote, it seems each of these
> > >> sources have direct access to core fields without any
> > >> accounting/business
> > >> logic to control the transaction of reconciliation nor to validate the
> > >> input into that reconciliation.
> > >
> > > Unfortunately there is very little such separation anywhere in GnuCash.
> >
> > Even moreso, in many cases (e.g. Import) the data just isn't there!  QIF
> > has a reconcile flag but does not contain a reconcile date field. So if
> > you're importing reconciled data, what should you use for the reconciled
> > date?  Over time, different developers working in different parts of the
> > code made slightly different decisions, because at the time the actual
> > date didn't matter because nothing used it.
> >
> > -derek
> >
> > --
> >        Derek Atkins                 617-623-3745
> >        derek at ihtfp.com             www.ihtfp.com
> >        Computer and Internet Security Consultant
> >
> >
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>
_______________________________________________
gnucash-devel mailing list
gnucash-devel at gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


More information about the gnucash-devel mailing list