JCF settings profiles
Last updated on Jan 05, 2021
To allow JCF to read the transactions from a CSV file, it needs to know a few extra details like the column ordering and date formats in the CSV file. JCF settings profiles allow you to declare these configuration values ahead of time and may be version controled alongside your other data. As part of setup you should have a jcf_settings_profiles.textproto
file with a couple of example settings profiles.
I create settings profiles as I go before I match each CSV. Each new settings profile can be re-used so after building up a collection you only need to create new ones for new accounts.
To create one, I open the CSV file and determine the following:
- The ordering of the data columns, and then converting those to
CsvFieldPosition
messages containing an index and one of these column types like this:csv_field_positions: { position: { field: DATE column_index: 1 } // ...more... }
- The date format, using lowercase
y
, uppercaseM
, and lowercased
. For example:csv_date_format_java: 'yyyy-MM-dd'
or
csv_date_format_java: 'MM/dd/yy'
Lastly, I sometimes have a separate profile for account nicknames but also sometimes lump a profile together with all settings set at once! JCF will let you know if a setting isn’t specified correctly.
Master ledger accounts
JCF works best when you have at the very least listed the expected accounts in your master.ledger
. You may optionally have a separate master.accounts
file containing an explicit account listing.
As part of setup you should have set up a master ledger with a bunch of income and expense accounts as part of setup. If you need to add more, simply edit your master.ledger
to add explicit account lines like:
account Expenses:My Expense Category:Sub Category
or
account Assets:Current Assets:My Bank 1234