What OFX is
OFX is the format behind the Download Transactions button on your bank's website. Version 1 is SGML, where a leaf element has an opening tag and no closing one. Version 2 is real XML. QFX is Intuit's variant of the same thing with a few extra tags, which is why a .qfx file opens in Quicken and is refused by software that only knows plain OFX.
Retail banks, credit card issuers and brokerages, because it is what Quicken and Microsoft Money asked for and the industry standardised on.
What Markdown is
A Markdown table is rows of pipe-separated cells with a dashed rule under the header. Alignment is set by placing colons in that rule.
README files, GitHub issues, documentation sites, Obsidian and Notion.
What changes when you convert OFX to Markdown
Each STMTTRN block becomes a row: date, amount, type, payee, memo, cheque number and the bank's own transaction id. The account number and currency come from the statement header and are added to every row, so a file merged with another still says which account it came from. Both the SGML and the XML flavour are read the same way.
Cells are padded so the source lines up in a plain text editor, pipes inside values are escaped, and line breaks inside a cell become <br> because a Markdown table row cannot span lines.
What carries over from OFX to Markdown
OFX records 3 things about a table that Markdown has no way to hold.
OFX distinguishes a number from the text of a number; Markdown does not, so every value arrives as text and has to be re-parsed by whatever reads it next.
An empty cell and a missing one are the same thing in Markdown, so a null and an empty string in the OFX both come out blank and can no longer be told apart.
OFX can hold a value that is itself a list or an object. Markdown has only flat cells, so nested values are flattened into one cell rather than being spread across columns.
Markdown marks its header cells differently from its data cells, so the first row is written with that marker.