What you're describing sounds great and I completely agree with you. I
didn't mean to imply that I wouldn't replace forecasted entries with "real"
ones when they occur, just that I'd like to avoid continuously fiddling
with forecasted entries themselves.

I look forward to such a feature and it will definitely be one of the
reasons for me to keep Beancount in mind.

- Harpreet "Eli" Sangha
On Nov 17, 2014 10:07 AM, "Martin Blais" <[email protected]> wrote:

> On Mon, Nov 17, 2014 at 12:54 PM, Harpreet Sangha <[email protected]>
> wrote:
>
>> I'm curious to know how people use Ledger for paycheck budgeting and
>> forecasting...
>>
>> Ideally, I'd like to enter my paycheck as an itemized, recurring
>> transaction with each posting in the form of a expression that allow
>> calculating how much to deposit into account based it's YTD balance.  This
>> would be useful, for example, with taxes for which withholding amounts vary
>> based on YTD earnings and retirement contributions that have YTD maximums.
>>
>> To my knowledge, achieving this with automatic transactions is not
>> possible, but I'm optimistic that it can be achieved, if necessary, with
>> embedded python scripts.  Before I go down that road, though, I'd like to
>> know what other, more experienced users of Ledger do.  My goal, as the the
>> subject suggests, is to allow me to budget and forecast.
>>
>> The obvious "simple" solution seems to be to simply manually enter known
>> future transaction, taking the tax withholding and retirement contributions
>> into consideration.  This approach, however, requires manual maintenance of
>> each and ever forecasted transaction when factors change (i.e. bonus pay
>> differs from estimated amount, W-4 change, contributions change, etc.).
>>
>> I look forward to any feedback.  Thanks in advance!
>>
>
> I'm not doing this yet with Beancount, but I have built a tiny tiny
> proof-of-concept prototype for forecasting:
>
> https://bitbucket.org/blais/beancount/src/52298ff27387eb8359bedb8a5d0274990ec5354b/src/python/beancount/plugins/forecast.py?at=default
>
> I think the essential features to build are:
>
> - Building in some way to express the frequency of future transactions.
> This may require some coding (or a simple expression language built on top
> of existing Python calendaring code to say, e.g., "every two weeks starting
> on the 7th").
>
> - Automatically ignoring past history when it is updated, that is, the
> code that adds the forecast should automatically figure out the final date
> for which matching transactions already exist, and only add transactions in
> the future
>
> - It should be possible to enable/disable the forecast transactions easily
> (more easily than commenting out the entries that define them) to generate
> reports both with and without them.
>
> I believe we should recognize that automated transactions are always
> approximate, and should never be used to replace "real" history. Historical
> transactions nearly always have some amount of small variation that you
> need to enter manually. This means that one should always be able to enter
> or import real history "over" automatic transactions and that
> auto-generated transactions should automatically get out of the way where
> real history appears. The last "up-to-date" date of real imported history
> can be figured out by looking at the date of the last posting or balance
> assertions on key accounts. This is the lens I'm using when looking at
> automated transactions for forecasting.  In my view, automated transactions
> that mix in with real history (as an input convenience) are a distinct type
> of feature, and I don't see much of a use case for them (it's unrealistic).
>
> (As for budgeting, that's a separate topic...)
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "Ledger" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to