I use the metadata for this purpose, to deduplicate and reconcile
transactions with my bank statements. If you use links it can get messy
whenever you have multiple accounts you're keeping track of, for example if
you transfer between two accounts would you have two links? Which link
corresponds to which account? By using the metadata you ensure the id
corresponds to the account in question, not the whole transaction. For
example:2026-01-02 * "Chick-fil-A" "Eating out"
  Expenses:Food  16.81 USD
  Assets:Bank:Checking  -16.81 USD    id:
"ab778fab39asdbf3bfsa"2026-01-03 * "Bank" "Transfer to checking" 
Assets:Bank:Checking  50.00 USD
    id: "bnaer0s8832ba08df"
  Assets:Bank:Savings  -50.00 USD    id: "bab01328bak092323"It may be a
little more verbose than the links but I think it's more in line with the
intended purpose of links and metadata, and it should be pretty easy to
implement with an importer. And if need be you can write a quick python
script to check for duplicates against the transaction ids for each
account.
 
"Artur Matos" [email protected] – January 29, 2026 7:34 PM 

> Thanks. But then from that perspective, having pretty much a different
> link per transaction is not really an issue performance-wise? Almost all
> of my transactions will end up having their own unique link not
> connecting to anything else. I guess alternatively I could have a
> 'transaction_id' metadata but using links seems easier and I can just
> rely on the same_link_operator to filter out duplicates when importing. 
> On Thursday, 29 January 2026 at 18:25:56 UTC-5 Martin Blais wrote: 
>
>> They're equivalent semantically.
>> I use links for linking together a small number of related transactions
>> and tags for larger groups of transactions e.g. a project, a trip, etc.
>>  
>> On Thu, Jan 29, 2026, 18:24 Artur Matos <[email protected]> wrote: 
>>
>>> Hi everyone,
>>> Really basic question, but I'm a bit confused If I should be using
>>> transaction IDs as links, with the express purpose of filtering
>>> duplicates. Most of my financial data has stable, unique transaction
>>> IDs, so I can  easily output ^TRANSACTION1,  ^TRANSACTION2, etc.. per
>>> transaction.
>>> Beangulp has same_link_operator which seems expressly designed for
>>> this purpose - use the links to find and filter out duplicate
>>> transactions upon importing.
>>> But at the same time, I the beancount language syntax manual
>>> (https://beancount.github.io/docs/beancount_language_syntax.html#links)
>>> refers to links as a mechanism to group disparate transactions
>>> together, e.g. as part of the same invoice, and it doesn't mention
>>> anything about duplicate detection.
>>> If I use transaction IDs as links I will end up with lots of different
>>> links (all unique) and I'm not sure if this has performance
>>> implications.
>>> Am I overthinking it?
>>> Thanks,
>>> Artur
>>>  
>>
>>> -- 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
>>> [email protected] view this discussion visit
>>>
https://groups.google.com/d/msgid/beancount/3e7721b6-ed8d-4b6b-8574-ba52cef18a3an%40googlegroups.com.
 
>
>  
> -- 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
> [email protected] view this discussion visit
>
https://groups.google.com/d/msgid/beancount/27fff318-96ef-473b-9c7b-06ccbc89ca1bn%40googlegroups.com.
 

-- 
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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/beancount/20260130151813.Horde.fvqA71SoTHEYWuzOQCDv1l5%40cloud.aleyoscar.com.

Reply via email to