Newbie Questions (2) before I dive in,...please!

151 views
Skip to first unread message

philcu...@gmail.com

unread,
Jan 4, 2020, 2:16:41 AM1/4/20
to Beancount
Hello,
I'm new to Beancount, but I have read all the introductory docs, have Beancount installed, an example file showing, and written a first .beancount file.
Before I dive any further, I wonder if someone can answer a couple of questions I have not been able to answer, two main questions really.

1)  Is this receipt functionality possible with Beancount and Fava?

  1. take a photo/screenshot/PDF of receipt when generated
  2. software extracts date and amount (possibly including currency)
  3. User verifies this date and amount
  4. User picks a receipt category from a drop-down menu
  5. Software titles the receipt file (.jpg/.png/.pdf) in a consistent format of 'Date_Amount_Category.extension '
  6. Titled receipt file is saved in (user-chosen-default) directory folder

2)  Can I host Fava & Beancount on my own hosted account server and website?  Will this allow user ability to access, add, and edit .beancount files through any web-enabled device? 

I'm no longer interested in using a 3rd-party app for my finances. Having all account passwords and ones financial life in software code which is not open-source, audited regularly, nor user inspected is not a risk I want to take.

Hope to keep this conversation going, as with anything worthwhile, I have more questions than answers right now.


Thank you,
 Phil

Justus Pendleton

unread,
Jan 4, 2020, 9:40:00 AM1/4/20
to Beancount
1. None of that is possible with beancount/fava.
2. Yes, that is possible.

Philip Curtis

unread,
Jan 4, 2020, 5:11:58 PM1/4/20
to Beancount
Thanks 😁

Is #1 possible yet in any software technology yet?

Thanks,
Phil

ps150pta

unread,
Jan 4, 2020, 6:17:37 PM1/4/20
to bean...@googlegroups.com
FWIW about a year ago I ran some experiments passing photos of Whole Foods receipts through AWS Textract. It did pretty well but error rates are still relatively high, too high to be considered reliable enough to fit into a "user-just-confirms" workflow. Some additional work on top of Textract to build receipt-format-specific models could probably get there, tho.

Many cos are successfully processing receipt photos on a commercial basis.

PDFs that are machine produced are definitely processable with commodity tools, the extraction for them works quite well. 

I suspect sometime in the next year or two someone will put together a Jupyter notebook for doing the workflow you describe, building receipt specific models on one of the ML platforms. The basic pieces are there, it's at the level of being a solveable problem for a hobbyist. 


--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/e47bf4bb-62d0-4641-b0ea-edd4fe845f56%40googlegroups.com.

Philip Curtis

unread,
Jan 4, 2020, 6:46:09 PM1/4/20
to Beancount
Yes, I've been wanting this for years, probably around 15!  I'm experimenting with some OCR Python code but wondering if the time commitment would be unrealistic for me with also learning Beancount, implementing the two, working full time, and having a 3year old and another on the way.
Seems like the project for someone single living in their basement <;  Anyway, I'll continue to research the code.

So the properly understand the workflow with Beancount, with I don't completely right now, one processes financial data in these steps?
1) Set up Beancount with all your income and expense accounts, the .beancount file(s) are now available
2) Implement Fava with Beancont
3) Host all files to your own website servers
4) Enter financial data through your website by text entry (or Fava GUI?)
5) Process and graph your financial data via Fava on your website

Do I have this process correct or am I way off?

Thanks everybody.  I appreciate the insights here on something I'm currently very ignorant of.
Phil


On Saturday, January 4, 2020 at 5:17:37 PM UTC-6, ps150pta wrote:
FWIW about a year ago I ran some experiments passing photos of Whole Foods receipts through AWS Textract. It did pretty well but error rates are still relatively high, too high to be considered reliable enough to fit into a "user-just-confirms" workflow. Some additional work on top of Textract to build receipt-format-specific models could probably get there, tho.

Many cos are successfully processing receipt photos on a commercial basis.

PDFs that are machine produced are definitely processable with commodity tools, the extraction for them works quite well. 

I suspect sometime in the next year or two someone will put together a Jupyter notebook for doing the workflow you describe, building receipt specific models on one of the ML platforms. The basic pieces are there, it's at the level of being a solveable problem for a hobbyist. 

On Sat, Jan 4, 2020, 5:12 PM Philip Curtis <philcu...@gmail.com> wrote:
Thanks 😁

Is #1 possible yet in any software technology yet?

Thanks,
Phil

--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bean...@googlegroups.com.

Eugeniu Plamadeala

unread,
Jan 4, 2020, 8:55:15 PM1/4/20
to Beancount
On Saturday, January 4, 2020 at 3:46:09 PM UTC-8, Philip Curtis wrote:
Yes, I've been wanting this for years, probably around 15!  I'm experimenting with some OCR Python code but wondering if the time commitment would be unrealistic for me with also learning Beancount, implementing the two, working full time, and having a 3year old and another on the way.
Seems like the project for someone single living in their basement <;  Anyway, I'll continue to research the code.

Let's hope someone steps up then.
 
So the properly understand the workflow with Beancount, with I don't completely right now, one processes financial data in these steps?
1) Set up Beancount with all your income and expense accounts, the .beancount file(s) are now available
2) Implement Fava with Beancont
3) Host all files to your own website servers
4) Enter financial data through your website by text entry (or Fava GUI?)
5) Process and graph your financial data via Fava on your website

Do I have this process correct or am I way off?

Your steps look good, but some alternatives suggested below from personal experience:
3) I do not host files and Fava on a remote web server, but locally. It is not necessary to host remotely, and since you seem to care about data security, I suggest you keep everything on your machine.
Furthermore, 
4) I use the finance-dl package to automatically download all my transactions, as often as I want. It takes a minute. I enter very few transactions manually. Then, I use the beancount-import package (by the same author) to import the transactions into my Beancount files. This part is also very quick (at most 5 minutes per week). Paychecks are one class of transactions that require significant manual adjustment.

Hope this helps.

Jonathan Goldman

unread,
Jan 6, 2020, 5:10:20 AM1/6/20
to Beancount
This post was very helpful. I'm also a newbie and trying to get going on beancount. So far I have a working beancount main file with most of the accounts I want created. I have fava working too but focused more on just getting data in. I got both beancount-import and finance-dl installed but I can't get finance-dl to work. 

Here is the output I get when I run the finance_dl CLI:

python3 -m finance_dl.cli --config-module mybasic_config --config myconfig


Traceback (most recent call last):

 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 193, in _run_module_as_main

   
"__main__", mod_spec)

 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py", line 85, in _run_code

   
exec(code, run_globals)

 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/finance_dl/cli.py", line 91, in <module>

    main
()

 
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/finance_dl/cli.py", line 51, in main

    spec
= getattr(config_module, config_key, None)()

TypeError: 'NoneType' object is not callable


Philip Curtis

unread,
Jan 6, 2020, 5:17:49 AM1/6/20
to Beancount
Is this the problem?

spec = getattr(config_module, config_key, None)()

to this:

spec = getattr(config_module, config_key, None())

Jonah Benton

unread,
Jan 6, 2020, 8:05:13 AM1/6/20
to bean...@googlegroups.com
I don't use finance-dl but that error message refers to something not being right with the configuration file it wants you to create. 

With your command line below there should be a

def CONFIG_myconfig():

function in a file called

mybasic_config.py 

The error indicates that it cannot find the CONFIG_myconfig function in that file.
 

To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/670c3f5c-1348-47e8-834e-e61964719fa1%40googlegroups.com.

IImayneII

unread,
Jan 6, 2020, 12:02:34 PM1/6/20
to Beancount
You should post your code.


python3 -m finance_dl.cli --config-module mybasic_config --config myconfig

should look like this

config-module == mybasic_config.py

config is the  name used (for the function) after CONFIG_ inside the mybasic_config.py file

def CONFIG_myconfig():
   
return dict(
       
module='f',
        credentials
={
           
'username': '',
           
'password': '',
       
},
        output_directory
=os.path.join(data_dir, ''),
   
)




Op maandag 6 januari 2020 11:10:20 UTC+1 schreef Jonathan Goldman:

Jonathan Goldman

unread,
Jan 6, 2020, 5:11:33 PM1/6/20
to Beancount
I now understand...

--config myconfig means execute a specific bank in your file....e.g. --config schwab to then runs that module in your file.

I thought it was fetching all of them and didn't understand what the --config myconfig was doing.

thanks!
Reply all
Reply to author
Forward
0 new messages