Fidelity checking "core" account transactions

118 views
Skip to first unread message

coltonc...@gmail.com

unread,
Jun 18, 2022, 5:17:10 PM6/18/22
to Beancount
I've been trying to use the banking importer from beancount-reds-importers for a checking account with Fidelity Investments.

The issue I'm running into is the OFX I get from them includes all "core account settlements" - so every transaction has a duplicate core account line item.

E.g.
-> Direct Deposit from Company Payroll, $200
-> Purchase into Core Account QXXX, -$200

In my OFX file this looks something like this:
<MEMO>YOU SOLD @ 1:SYM=QXXX SHR=-200 PRC=1.00000

This creates a bit of noise- I was trying to see if I could leverage the money_market logic from investments.py in a custom fidelity_banking.py but that's not going too well :D

Wanted to see if anyone had some simple suggestions or existing solutions

Red S

unread,
Jun 19, 2022, 4:34:36 AM6/19/22
to Beancount
It the issue one of just "noise" or is there a correctness issue? Could you please post the beancount transactions that get generated by the importer, and also the transactions you expect/want?

Colton Crivelli

unread,
Jun 19, 2022, 11:22:23 AM6/19/22
to bean...@googlegroups.com
Here is an example of what’s generated and a couple notes about what I see:
- the core account can have different symbols, sometimes it’s QPIQQ, sometimes it’s QPCTQ, etc. 
- there looks to be one core account transaction per day. On 5/31 the core account transaction matches the sum of all other transactions on the same day
- I found that some transactions strings look to be cut short. For example the first transaction listed ends in SHR=10, expect SHR=10.68
- to me, the concept of “core account” sounds a lot like money market accounts. Here’s some fidelity documentation

2022-05-19 * "YOU BOUGHT @ 1:SYM=QPIQQ SHR=10"
  Assets:Fidelity:Checking  -10.68000 USD

2022-05-19 * "DIRECT DEPOSIT Apple Cash TRAN"
  Assets:Fidelity:Checking  10.68000 USD

2022-05-26 * "YOU BOUGHT @ 1:SYM=QPCTQ SHR=11"
  Assets:Fidelity:Checking  -1111.11000 USD

2022-05-26 * "DIRECT DEPOSIT COMPANY PAYROLL"
  Assets:Fidelity:Checking  1111.11000 USD

2022-05-31 * "YOU SOLD @ 1:SYM=QPCTQ SHR=-384"
  Assets:Fidelity:Checking  384.89000 USD

2022-05-31 * "YOU SOLD @ 1:SYM=QPIQQ SHR=-10."
  Assets:Fidelity:Checking  10.68000 USD

2022-05-31 * "CREDIT INTEREST AT US BANK NOT"
  Assets:Fidelity:Checking  0.49000 USD

2022-05-31 * "CREDIT INTEREST AT CITIBANK NOT"
  Assets:Fidelity:Checking  0.37000 USD

2022-05-31 * "CREDIT INTEREST AT WELLS FARGO"
  Assets:Fidelity:Checking  0.06000 USD

2022-05-31 * "DIRECT DEBIT CARDMEMBER SERWEB"
  Assets:Fidelity:Checking  -396.49000 USD

2022-06-01 * "YOU SOLD @ 1:SYM=QPCTQ SHR=-14."
  Assets:Fidelity:Checking  14.98000 USD

2022-06-01 * "DIRECT DEBIT CREDIT CARD"
  Assets:Fidelity:Checking  -14.98000 USD

2022-06-02 * "YOU SOLD @ 1:SYM=QPCTQ SHR=-220"
  Assets:Fidelity:Checking  2200.00000 USD

2022-06-02 * "CHECK PAID XXXX"
  Assets:Fidelity:Checking  -2200.00000 USD

2022-06-03 balance Assets:Fidelity:Checking                        XXXX.XX000 USD


Now an example of what’s expected, either I think “core account” transactions could be ignored entirely or they could be auto-filled. Also I suppose the “CREDIT INTEREST” could be auto-filled since I understand this to be interest from funds held in core accounts.

2022-05-19 * "YOU BOUGHT @ 1:SYM=QPIQQ SHR=10<extend to 10.68>"
  Assets:Fidelity:Checking:USD      -10.68000 USD
  Assets:Fidelity:Checking:QPIQQ   10.68000 USD

2022-05-19 * "DIRECT DEPOSIT Apple Cash TRAN"
  Assets:Fidelity:Checking  10.68000 USD
<leave this to smart importer or manually filled>

2022-05-26 * "YOU BOUGHT @ 1:SYM=QPCTQ SHR=11<extend to 1111.11>"
  Assets:Fidelity:Checking:USD       -1111.11000 USD
 Assets:Fidelity:Checking:QPCTQ    1111.11000 USD

2022-05-26 * "DIRECT DEPOSIT COMPANY PAYROLL"
  Assets:Fidelity:Checking  1111.11000 USD
<leave this to smart importer or manually filled>

2022-05-31 * "YOU SOLD @ 1:SYM=QPCTQ SHR=-384<extend>"
  Assets:Fidelity:Checking:USD        384.89000 USD
  Assets:Fidelity:Checking:QPCTQ  -384.89000 USD

2022-05-31 * "YOU SOLD @ 1:SYM=QPIQQ SHR=-10."
  Assets:Fidelity:Checking  10.68000 USD

2022-05-31 * "CREDIT INTEREST AT US BANK NOT"
  Assets:Fidelity:Checking  0.49000 USD

2022-05-31 * "CREDIT INTEREST AT CITIBANK NOT"
  Assets:Fidelity:Checking  0.37000 USD

2022-05-31 * "CREDIT INTEREST AT WELLS FARGO"
  Assets:Fidelity:Checking  0.06000 USD

2022-05-31 * "DIRECT DEBIT CARDMEMBER SERWEB"
  Assets:Fidelity:Checking  -396.49000 USD

2022-06-01 * "YOU SOLD @ 1:SYM=QPCTQ SHR=-14."
  Assets:Fidelity:Checking  14.98000 USD

2022-06-01 * "DIRECT DEBIT CREDIT CARD"
  Assets:Fidelity:Checking  -14.98000 USD

2022-06-02 * "YOU SOLD @ 1:SYM=QPCTQ SHR=-220"
  Assets:Fidelity:Checking  2200.00000 USD

2022-06-02 * "CHECK PAID XXXX"
  Assets:Fidelity:Checking  -2200.00000 USD

2022-06-03 balance Assets:Fidelity:Checking                        XXXX.XX000 USD


--
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/2630e490-3859-4b7f-9975-71eb44d4c5fbn%40googlegroups.com.

Red S

unread,
Jun 19, 2022, 3:51:59 PM6/19/22
to Beancount
Ah I see. As someone on this list recently observed, by dabbling in open source personal finance, you get to see exactly what your bank is doing behind the scenes. Here, given this is a non-traditional checking account, Fidelity apparently holds your money in a couple different funds to ensure its value remains the same, is FDIC insured, and such.

The current banking.py importer does not support this case. You have two options:

A) Extend banking.py to support these types of checking accounts. This is the cleanest way, is straightforward, and will help everyone with a non-traditional checking accounts, though it involves a bit of coding work. You can use the code in investments.py to generate the buy/sell transactions (as price conversions).

B) As you suggested, completely ignore all the conversion-to-funds (QPIQ, QPCTQ ,etc.) transactions. You won't know how your money is held, if that interests you, but you will have a "cleaner" file. This is easy to implement. Just add skip_transactions(), and this line to banking.py, and then override it in your importer like this. I just did all of this and committed it, except for the overriding part. If you like this approach, install the bleeding edge, and then override.

Hope that helps!
-Red

Colton Crivelli

unread,
Jun 19, 2022, 5:07:07 PM6/19/22
to bean...@googlegroups.com
As someone on this list recently observed, by dabbling in open source personal finance, you get to see exactly what your bank is doing behind the scenes.
Too true.

Appreciate the clarity on A) as the best long term solution. If I get something along those lines working I’ll be sure to share.

B) is already working for me as a short term solution. Thanks for adding so quickly

You received this message because you are subscribed to a topic in the Google Groups "Beancount" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beancount/nCWzTg5eKbc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beancount+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/64584bde-dc24-4188-963a-e4e1f9e5ef27n%40googlegroups.com.

Red S

unread,
Jun 19, 2022, 8:26:49 PM6/19/22
to Beancount
Appreciate the clarity on A) as the best long term solution. If I get something along those lines working I’ll be sure to share.

B) is already working for me as a short term solution. Thanks for adding so quickly

Great! Feel free to share your fidelity importer as a pull request.
Reply all
Reply to author
Forward
0 new messages