Representando a contabilidade de partidas dobradas como um grafo direcionado
(matheusportela.com)- Mesmo que os termos contábeis não sejam familiares, ao enxergar a contabilidade de partidas dobradas como uma estrutura que acompanha contas e saldos ao longo do tempo, é possível entendê-la como um modelo de fluxo de dinheiro
- Uma tabela que apenas sobrescreve o saldo atual perde o processo de mudança, mas o livro-razão adiciona um item a cada transação, preservando o histórico e os rastros de correção
- A contabilidade de partida simples pode ser suficiente para registrar mudanças por conta, mas, quando várias contas se movem juntas, é preciso agrupar os itens relacionados em uma transação para revelar a origem e o destino
- Na contabilidade de partidas dobradas, para cada transação, o valor que sai deve ser igual ao valor que entra, e essa condição de equilíbrio ajuda a detectar erros na contabilidade manual como um checksum
- Se contas e transações forem vistas como nós, e itens de débito e crédito como arestas direcionadas, os livros contábeis se tornam um grafo direcionado que cresce com o tempo, e as demonstrações financeiras também podem ser vistas como visualizações dele
Informações perdidas ao registrar apenas o saldo
- Contabilidade é acompanhar, ao longo do tempo, objetos que podem ser contados; aqui, o foco é o fluxo de dinheiro
- No exemplo, em 1º de janeiro de 2024, Alice começa com $100 e Bob com $50
- Se Alice paga $20 a Bob por um livro, o saldo de Alice passa a ser $80, e o de Bob, $70
- Aqui, conta (account) é o lugar onde o dinheiro fica armazenado, e saldo (balance) é a quantidade de dinheiro em uma conta em um determinado momento
- Se apenas o saldo atual for sobrescrito, fica difícil saber por que Alice passou a ter $80
- Se ela recebeu $80 partindo de $0
- Ou se gastou $9.920 partindo de $10.000
- Um método que guarda apenas snapshots de saldo apaga o processo pelo qual a mudança aconteceu
Livro-razão de partida simples e registros imutáveis
- Para manter o histórico de mudanças, é preciso adicionar uma nova linha sempre que ocorre uma transação, sem alterar o valor existente
- Um item do livro-razão geralmente contém as seguintes informações
- Description: uma descrição legível por humanos, como a explicação da transação, o destinatário do pagamento ou um número de referência
- Date: a data em que a transação ocorreu; também pode ser usada para agrupamentos por período, como relatórios mensais
- Balance: o saldo da conta após a transação; é uma informação redundante, mas útil para revisar os dados
- Cada linha é um item (entry), e o conjunto de itens de uma conta é um livro-razão (ledger)
- No livro-razão de Alice, ficam registrados o opening balance de $100 em 1º de janeiro de 2024 e bought book de -$20 em 1º de fevereiro de 2024
- No livro-razão de Bob, permanecem o opening balance de $50 e sold book de $20
- Esse método é um sistema de contabilidade de partida simples (single-entry bookkeeping)
- Cada conta tem seu próprio livro-razão
- Registra itens que afetam uma conta por vez
- Pode funcionar bem para pequenos negócios ou finanças pessoais
O livro-razão funciona como event sourcing
- Uma característica importante do livro-razão é que os dados são imutáveis (immutable)
- Depois que um item é escrito, ele não é modificado, para preservar todo o histórico
- Se o preço do livro foi registrado incorretamente como $20, mas o preço real era $30, alterar a linha existente faria perder o valor original e o fato da correção
- Um método melhor é adicionar um novo item que compense o item existente e depois inserir novamente o item correto
- Cancelar o item de -$20 com +$20
- Em seguida, registrar um novo item de -$30
- O saldo final será o mesmo, $70, mas o erro e o motivo da correção permanecem
- Esse método é parecido com event sourcing em ciência da computação
- Armazena os eventos que ocorreram no sistema
- Calcula o estado atual ao reproduzir os eventos
- Permite recriar o estado em um momento específico
O momento em que a contabilidade de partidas dobradas se torna necessária
- Em transações nas quais várias contas se movem juntas, é difícil entender claramente a relação usando apenas contabilidade de partida simples
- Os -$20 de Alice e os +$20 de Bob são o mesmo dinheiro, mas, olhando apenas livros-razão simples, não dá para distinguir isso da possibilidade de Bob ter recebido dinheiro de Charlie
- Ao agrupar os itens relacionados em uma transação (transaction), é possível deixar explícito que eles pertencem ao mesmo evento
- Transaction 1: opening balance de Alice
- Transaction 2: opening balance de Bob
- Transaction 3: Alice compra um livro de Bob
- Uma transação é um grupo de itens relacionados que afetam contas diferentes
- A contabilidade de partidas dobradas conecta itens relacionados no nível da transação para que se possa ver o fluxo de dinheiro entre contas
Débito, crédito e condição de equilíbrio
- A contabilidade tradicional expressa o fluxo de dinheiro em duas colunas: debit e credit
- Credit: item em que o dinheiro sai da conta
- Debit: item em que o dinheiro entra na conta
- Se Alice paga $20 a Bob, a conta de Alice é registrada com $20 de credit, e a conta de Bob, com $20 de debit
- Os termos credit/debit usados em cartões bancários e os termos debit/credit da contabilidade são usados de maneiras diferentes
- Em livros contábeis em papel, usava-se o formato de T-account, dividindo o lado esquerdo como debit e o direito como credit
- Em sistemas computacionais, não é obrigatório manter duas colunas
- É possível colocar Debit ou Credit em uma coluna
Typee manterAmountseparado - Ou usar uma única coluna de valor, definindo credit como negativo e debit como positivo
- É possível colocar Debit ou Credit em uma coluna
- Em vez da terminologia tradicional, incoming money e outgoing money podem ser expressões menos confusas
Uma transação não se limita a dois itens
- O princípio central da contabilidade de partidas dobradas é que a soma total do dinheiro no sistema não muda após cada transação
- O saldo de uma conta específica pode aumentar ou diminuir, mas a soma dos saldos de todas as contas deve permanecer constante
- Até mesmo um opening balance precisa que o dinheiro venha de algum lugar para manter o equilíbrio
- No exemplo, adiciona-se a conta Bank para registrar que os $100 de Alice e os $50 de Bob saíram do Bank
- Essa conta Bank é uma espécie de conta temporária para cumprir a regra e, em termos contábeis, corresponde a uma contra account
- Em todas as transações, o dinheiro que sai e o dinheiro que entra devem ser iguais, e isso funciona como um checksum para detectar erros na contabilidade manual
- Transações complexas também podem ser modeladas pelo mesmo princípio
- Alice paga $20 a Bob e $2 de taxa de câmbio à administradora do cartão de crédito
- Bob recebe $20 de Alice e paga $2 de imposto sobre vendas à autoridade tributária e $1 de taxa à administradora do cartão de crédito
- A administradora do cartão de crédito recebe $2 de Alice e $1 de Bob
- A autoridade tributária recebe $2 de Bob
- Nesse caso, uma única Transaction 3 contém exatamente 8 itens
- “Double-entry” não significa que a transação tenha apenas dois itens, mas que ela tem dois lados: o lado de onde o dinheiro sai e o lado para onde o dinheiro entra
Vendo os livros contábeis como um grafo direcionado
- A contabilidade de partidas dobradas pode ser vista como uma modelagem do fluxo de dinheiro por meio de um grafo direcionado
- A correspondência com o grafo é a seguinte
- Contas são nós do grafo
- Transações também são nós separados
- Um item de Credit é uma aresta de saída que vai da conta para a transação
- Um item de Debit é uma aresta de entrada que vai da transação para a conta
- O valor do item é o valor da aresta
- O saldo da conta é a soma das arestas de entrada menos a soma das arestas de saída
- Transaction 1 move $100 do Bank para Alice
- Transaction 2 move $50 do Bank para Bob
- Transaction 3 move $20 de Alice para Bob
- Nessa representação, o saldo de Alice passa a ser $80, e o de Bob, $70
Escolhas de modelagem ao dividir transações complexas
- Se taxas e impostos forem colocados todos em uma única transação, a Transaction 3 terá muitas arestas e ficará complexa
- O mesmo fluxo de dinheiro também pode ser dividido em transações menores
- Da conta de Alice saem $22
- Bob recebe $19
- Os $3 restantes vão para a administradora do cartão de crédito
- O imposto sobre vendas de $2 de Bob é tratado em uma Transaction 4 separada
- Independentemente de como transações e itens sejam agrupados, os saldos finais das contas podem ser os mesmos
- Alice: $78
- Bob: $67
- Tax authority: $2
- Credit card company: $3
- Sistemas contábeis são flexíveis o bastante para acomodar diversas necessidades, e a forma de agrupar transações e itens deve ser definida de acordo com o negócio
Demonstrações financeiras são visualizações do grafo
- O grafo cresce ao longo do tempo conforme novas transações são adicionadas
- As propriedades básicas do grafo continuam sendo preservadas
- Contas permanecem como nós
- Transações permanecem como nós que impõem o fluxo de dinheiro
- Em cada transação, a soma dos valores que saem deve ser igual à soma dos valores que entram
- Balance sheet, income statement e cash flow statement podem ser vistos como visualizações desse grafo
- Classificações como assets, liabilities, equity, income e expenses podem ser vistas como grupos de nós dentro do grafo
- Pela perspectiva do grafo, fica mais intuitivo entender como credit e debit aumentam ou reduzem o saldo de cada classificação
1 comentários
Opiniões do Hacker News
Explicar partidas dobradas como “um lançamento para Alice, um lançamento para Bob” parece uma escolha estranha
Se há duas partes na transação, é óbvio que ela pode ser registrada em dois lugares, mas o ponto central é que são necessários dois lançamentos para cada parte da transação. Se Alice compra um livro de Bob, são criados quatro lançamentos
Entendo que seja uma simplificação didática, mas acho uma simplificação excessiva que remove o essencial
Por exemplo, ao pagar contas a pagar em dinheiro, é como enviar uma mensagem simultânea ao ator Accounts Payable e ao ator Cash, e cada ator traduz esse evento para débito/crédito de acordo com sua própria natureza e mantém o saldo. Nessa perspectiva, partidas dobradas significam mais que cada evento deve ser absorvido exatamente uma vez por um número par de atores
Se você estiver criando trilhos de pagamento, esse próprio evento também pode ser um de um par de eventos derivados de um metaevento que rastreia a intenção da transação. Na contabilidade, é mais útil ver as arestas do grafo não como dinheiro, mas como dados dentro de uma hierarquia de eventos derivados
Ainda assim, o texto original não deixou claro para que serve essa analogia, e me preocupa que ela aumente a confusão em vez de reduzi-la
Não quero me preocupar com os livros contábeis de Bob; quero acompanhar apenas os meus. Se comprei um livro, quero saber como essa transação deve ser registrada por partidas dobradas na minha contabilidade
Além disso, Bob não está fazendo escrituração; ele está vendendo um livro ;-)
Como seria possível corrigir este texto para explicar corretamente a parte do “double”? Dá para fazer isso apenas do ponto de vista de Bob ou de Alice?
Por exemplo, o banco pode decidir que provavelmente não vou pagar meu empréstimo e baixá-lo para 0 nos seus livros. Eu posso ainda pretender pagar e manter a dívida nos meus livros. O banco cria os lançamentos correspondentes em seu sistema, débitos/créditos fecham, e meus livros continuam equilibrados sem que eu faça nada
Partidas dobradas dizem respeito apenas aos próprios livros, independentemente de outras entidades
Acho que a beleza e a influência da contabilidade são subestimadas
Com um número muito pequeno de fórmulas, isto é, a identidade contábil, e demonstrações financeiras como a demonstração de resultado e o balanço patrimonial, é possível representar o que acontece em qualquer organização de uma forma aproximadamente comparável. Dá até a sensação de algo como o teorema fundamental do cálculo ou o dogma central da biologia
A contabilidade também está na origem da matemática e da linguagem escrita. As antigas civilizações da Mesopotâmia inicialmente usavam “tokens contábeis” que imitavam o formato dos objetos para rastrear mercadorias, e pode-se dizer que isso evoluiu para a linguagem escrita, como os hieróglifos
Mais tarde, Al-Khwarizmi criou Al-Jabr, isto é, a álgebra, para resolver a lei sucessória islâmica; quando as regras de partilha de herança viraram equações, surgiu a necessidade de resolvê-las de forma rápida e precisa. O método de Al-Khwarizmi para resolver equações quadráticas deu origem ao nome “algorithm”
https://en.wikipedia.org/wiki/Accounting_identity
https://en.wikipedia.org/wiki/History_of_accounting
https://en.wikipedia.org/wiki/History_of_ancient_numeral_sys...
https://en.wikipedia.org/wiki/Al-Jabr
https://en.wikipedia.org/wiki/Al-Khwarizmi
Números negativos foram usados pela primeira vez na China por volta do século III e não foram amplamente utilizados na Europa até o século XVI. A contabilidade moderna de partidas dobradas foi criada na Europa no século XIV
Por isso, o método tradicional de manter colunas separadas de débito e crédito, com definições que parecem um pouco estranhas, era a melhor forma de funcionar usando apenas números positivos
Há muitos aspectos importantes do desenho organizacional que têm apenas uma correlação frouxa com as demonstrações financeiras
Só depois que a escrituração se enraizou em todas as camadas da sociedade é que números negativos passaram a ser aceitos como tão reais quanto os positivos
A contabilidade por partidas dobradas fica muito fácil de entender se você abandonar os termos ridículos “credit” e “debit”
O ponto central é manter a equação contábil sempre verdadeira. A fórmula básica é Equity = Assets - Liabilities e, como o lucro acaba entrando no capital, ela vira Equity + Income - Expenses = Assets - Liabilities. Reorganizando para eliminar números negativos, fica Equity + Income + Liabilities = Assets + Expenses
Essa equação deve ser sempre verdadeira; caso contrário, é como se dinheiro surgisse do nada ou desaparecesse. Portanto, se você adiciona dinheiro a uma conta do lado esquerdo da equação, precisa adicionar o mesmo valor a uma conta do lado oposto, ou subtrair o mesmo valor de uma conta do mesmo lado
Por exemplo, se você vende limonada por 5 dólares, adiciona 5 dólares a Sales (Income) e também 5 dólares a Current Account (Assets)
“credit” e “debit” são ridículos porque suas definições se invertem dependendo do tipo de conta, e esse uso absurdo da linguagem é a principal razão pela qual as pessoas se confundem
Um instrutor de um curso de contabilidade de 100 níveis disse isso de forma bem concisa. Debit é um item na coluna da esquerda, e Credit é um item na coluna da direita. O que essa transação significa para o negócio depende da conta
Para quem nunca estudou contabilidade, o uso desses termos é extremamente confuso, e muitas respostas dadas a pessoas confusas, embora tecnicamente corretas, ao mesmo tempo não ajudam muito. Isso porque pressupõem que a pessoa já conhece a terminologia
A pergunta “se o saldo aumentou, por que a conta bancária foi debited? Debit não é negativo? O saldo em caixa está sendo mostrado como negativo?” é uma pergunta realmente boa. Intuitivamente, um direct debit tira dinheiro da conta, você gasta dinheiro com um debit card, e debit soa como debt, então a tendência é pensar que debit é sempre negativo
É curioso e ao mesmo tempo frustrante ver as pessoas se desencontrando como se usassem idiomas diferentes para a mesma palavra. Às vezes a discussão acaba virando uma tentativa de apontar uma pequena expressão para mostrar que se está certo
Porque, do ponto de vista da pessoa que gasta 5 dólares em limonada, ela certamente não está colocando 5 dólares no próprio item Sales. Ainda não entendo completamente qual é exatamente a confusão de que este texto e os comentários estão falando
credit significa origem, debit significa destino
Se você cobra 10.000 euros de um cliente, surge uma promessa de 11.000 dólares pela taxa de câmbio atual. Então você credita 11.000 dólares na conta de origem, “Income: Customer A”, e debita 11.000 dólares em “Assets: Accounts Receivable”
Mais tarde, se o cliente pagar e a taxa de câmbio tiver se movido de modo que você receba apenas 10.500 dólares, a promessa registrada originalmente por 11.000 dólares é a origem, então você credita 11.000 dólares em Accounts Receivable. Como recebeu 10.500 dólares em dinheiro, debita 10.500 dólares em cash e, para equilibrar débito e crédito, debita 500 dólares em “Expenses: Loss on Foreign Exchange”
Normalmente a empresa não é liquidada a cada dia útil; então por que tentar forçar esses 500 dólares em algum cenário fictício de liquidação imediata? Basta registrar pelo equilíbrio entre credit e debit
Havia gráficos demais com a variável independente no eixo Y
“Credit é um item em que dinheiro sai da conta, Debit é um item em que dinheiro entra na conta” não está correto
O significado de debit e credit depende do tipo de conta: https://en.wikipedia.org/wiki/Debits_and_credits
Talvez haja um motivo para ser necessária mais de uma disciplina para virar CPA: https://www.accounting.com/careers/cpa/how-to-become/
Para mim, parece um método que dobra o trabalho para detectar certos erros, vindo de uma época em que pessoas inseriam itens e faziam cálculos manualmente. Por si só, isso faz sentido
Mas, talvez por eu ter crescido em um mundo em que computadores fazem todos os cálculos, parece violar o princípio de não repetir a mesma coisa. Se você escreve a mesma informação em dois lugares, um dos dois acabará ficando errado
Se a contabilidade fosse projetada hoje, acho que não seria assim. O fato de eu não ser contador e não entender isso não significa que o sistema esteja errado, mas a confusão que sinto com a ideia de que “credit reduz uma conta de ativo” parece um sinal de que há algo fundamentalmente desalinhado
Um lançamento CR é um aumento daquilo que a empresa deve, isto é, das obrigações perante credores ou acionistas, e um lançamento DR é um aumento daquilo que a empresa possui
Para a relação com a equação contábil, veja aqui: https://news.ycombinator.com/item?id=32501707
Vejo muita confusão em torno dos termos credit/debit
Para pensar de forma mais simples a partir de uma perspectiva moderna, basta lembrar que a contabilidade é muito mais antiga do que o uso popular dos números negativos. Se a contabilidade fosse inventada hoje, é bem provável que usássemos contas positivas/negativas em vez de contas debit/credit
A álgebra sobre a adição parece natural para nós hoje, mas não era óbvia para um comerciante comum em 1604, e números negativos também não eram muito bem aceitos na época
O importante é que uma transação sempre tem dois lados, e eles são operações inversas uma da outra. credit e debit, no fim, são operações inversas sobre números
Por isso é possível criar a regra de que, se credit = debit, a transação está equilibrada. Em termos modernos, também dá para ver como debit + credit = 0, mas, quando esse sistema foi criado, números negativos não eram bem-vistos, então isso é mais uma feliz coincidência que sempre se verifica do que um objetivo
Faz sentido pensar de trás para frente, considerando o dinheiro em espécie em mãos como a conta mais positiva, isto é, com natureza de debit. Para registrar uma despesa, é preciso lançar a conta de caixa no sentido oposto, então faz-se um credit, e no lugar para onde o dinheiro foi lança-se um debit como contrapartida. Portanto, contas de despesa normalmente têm saldo debit
De onde veio o dinheiro? Veio da receita, e, se você quer que o dinheiro fique com aparência de debit, a origem precisa ter aparência de credit para que a transação não perca o equilíbrio. Por isso contas de receita normalmente são contas credit, ou seja, em geral têm saldo negativo ou são “credit normal”
O ponto elegante desse sistema é que todas as transações cotidianas acabam se reduzindo a transações equilibradas, e as contas possíveis têm, cada uma, uma natureza de saldo consistente, normalmente credit ou debit. É realmente elegante
Se você decorar isso e a equação contábil, dá para derivar o saldo normal de todos os outros tipos de conta
Cerca de um mês atrás, no subreddit de PTA, comecei uma discussão sobre tornar a sintaxe de PTA mais intuitiva, e alguém sugeriu representar “from”, isto é, a conta credit/negativa, e “to”, isto é, a conta debit/positiva, com setas. Os números não têm sinal, e os termos “credit” e “debit” também não são usados, então isso parece muito mais intuitivo
https://www.reddit.com/r/plaintextaccounting/comments/1bh3x7...
O contexto sobre números negativos é interessante
Ainda é complicado demais. A coisa já sai do trilho em “vamos adicionar uma coluna Transaction à tabela”
Não se deve armazenar dados de conta, e sim transações. As contas podem ser calculadas a partir disso. A tabela “Transactions” só precisa ter os campos Date, Amount, SourceAccount, TargetAccount e Description
Para mim, é aí que fica bonito. É preciso abandonar o hábito de pensar de forma centrada em contas só porque isso é familiar por extratos bancários, e passar a pensar em fluxo de caixa
Claro que isso é simples demais para fins fiscais. Há casos em que uma transação tem várias origens ou vários destinos, então o esquema acima precisa ser ajustado. Ainda assim, o ponto é que a forma de pensar deve ser diferente
É um sinal de que o programador tentou ser esperto e manter totais acumulados em vez de calculá-los a partir das transações originais. Ali há dragões
Um projeto melhor é ter tabelas de cabeçalho e detalhe
Header: TransactionID, Date, Description e os campos necessários, como posting status ou reconciliation status
Detail: TransactionID, LineNumber, Account, Amount, Description e os campos necessários, como número de referência do subledger
Assim, uma única transação pode afetar qualquer número de contas. No fim, a transação passa a refletir uma transação de negócio que pode impactar várias contas
Nos detalhes, é um pouco mais complexo, como a necessidade de incluir o endereço de origem na saída de cada transferência, mas a ideia é a mesma. Como eu disse em outro ponto desta thread, cada transação precisa de várias entradas e várias saídas
Todas as transações ficam em um arquivo de texto puro, e, quando é preciso avaliar, o razão inteiro é gerado na hora a partir dele
Não sou contador, mas há algum tempo decidi estudar partidas dobradas e contabilidade básica, e aprendi bastante em vários lugares, incluindo boas threads no HN.
Neste texto, explico como as partidas dobradas funcionam e o processo pelo qual percebi que elas são um grafo direcionado. Como há muitos nerds de contabilidade no HN, agradeço críticas ou sugestões de correção se houver algo errado.
https://martin.kleppmann.com/2011/03/07/accounting-for-compu...
Eu gostaria que meus controllers transformassem o desempenho de vendas nesse tipo de fluxo gráfico. A partir de certo porte, a contabilidade fica bem difícil, a ponto de ser preciso ter gente em nível de professor na equipe de políticas contábeis.
O que aprendi em estatística é que gráficos são importantes. Com a abstração adequada, qualquer número pode ser representado como um grafo de seus componentes. A compreensão veio de uma vez.
De um lado há dinheiro entrando ou saindo; do outro, produtos ou serviços. Isso é o lançamento dobrado da contabilidade. Pode parecer óbvio e simples, mas não há muita gente na minha área que entenda isso.
É um texto bem escrito, mas é preciso tomar cuidado ao redefinir termos que têm um significado geralmente aceito.
Trocar Debit/Credit por Incoming/Outgoing parece apenas mais um jargão e pode causar confusão. Qualquer bookkeeper entende o que é credit cash e debit expense.
Mudar isso para incoming/outgoing não ajuda quem faz o trabalho de fato nem quem precisa explicar esse trabalho. Vale mais a pena aprender uma nomenclatura que foi útil por centenas de anos do que depender de uma analogia.
Quando esse tipo de discussão aparece no HN, sempre alguém diz “é muito simples, credit é só...” e logo vem uma resposta dizendo “você entendeu ao contrário; é simples, credit é...”.
Eu não me importaria nem um pouco se esses termos fossem abandonados para sempre.
Quando dinheiro é credited ou quando se usa um credit card, parece que dinheiro surgiu de algum lugar, o que soa bom; já debit soa como debt e parece que meu dinheiro diminuiu, o que soa ruim.
Sei que, na prática, há uma razão para os nomes, mas, se uma área insiste em um jargão não intuitivo que entra em conflito com todos os usos que uma pessoa de fora já viu, parece razoável usar expressões menos ambíguas e diferentes.
Se você consegue conversar usando corretamente o jargão apropriado, sua credibilidade aumenta muito.
Não entendo bem por que explicar os termos contábeis debit/credit em linguagem comum pareceria jargão. Talvez seja porque eu sou leigo.
Para alguém sem formação em contabilidade, explicar credit/debt como “dinheiro entrando, dinheiro saindo” parece suficientemente bom no contexto deste texto. A definição “real” de credit/debit funciona de forma significativamente diferente aqui?
David P. Ellerman apresenta uma abordagem matemática da contabilidade baseada no que ele chama de Pacioli group.
Um elemento provisório do Pacioli group se parece com x//y, em que x e y são inteiros não negativos. x//y e u//v são considerados equivalentes se as somas cruzadas x+v e y+u forem iguais.
A operação do grupo é x//y + u//v = (x+u)//(y+v), o inverso de x//y é y//x, e o elemento identidade é 0//0. Para mais detalhes, veja, por exemplo, este documento: https://ellerman.org/wp-content/uploads/2012/12/DEB-Math-Mag...
Acho que estou deixando passar algo aqui. Em que ajuda ver o histórico de transações como um grafo direcionado?
Há alguma melhoria em relação à prática de partidas dobradas que existe há centenas de anos?
Em um exemplo de brinquedo com poucas transações, parece que mal funciona, mas basta imaginar como o grafo ficaria quando houvesse dezenas ou centenas de arestas entre pares de nós. Também não sei onde algoritmos gerais de grafos seriam úteis.
Parece usar um alicate como martelo. Claro que dá para fazer, mas por que fazer isso?
Primeiro, é outra maneira de entender o conceito. Na maioria dos casos pode não ser relevante, mas quem sabe se um problema contábil difícil pode ser resolvido aplicando teoria dos grafos, ou, ao contrário, se um problema de teoria dos grafos pode ser resolvido a partir da contabilidade?
Segundo, é outra forma de visualizar fluxos. Nem todo mundo tem grande letramento financeiro ou bom senso numérico; em vez de entregar uma tabela com colunas de números e exigir que a pessoa deduza os fluxos numericamente, é possível representá-los espacialmente. Nem toda ferramenta é feita apenas para especialistas.
Ver todo o histórico acumulado como um único grafo pode ser exagerado, mas só de adicionar um filtro por data da transação já pode revelar insights que outras visualizações deixam passar. Ao cruzar com outras informações, como localização, pode ficar ainda mais útil.
Ele não estabelece uma justificativa, e a afirmação do autor de que essa visualização ajudou a ter uma compreensão mais clara fica enfraquecida pelo erro de categoria que aparece ao explicar partidas dobradas desde o início em estilo geek.
Além disso, ele representou apenas uma transação muito simples. Não sei como extrair de uma visualização baseada em grafos coisas mais abstratas, como diferenças entre depreciação fiscal e depreciação contábil, ajustes de ganhos e perdas cambiais, distribuição de franked dividends, PAYG, valores mantidos em nome de terceiros ou reconhecimento parcial de receita diferida.
É como engenheiros descobrindo tardiamente princípios fundamentais que já existiam em outra área, à medida que o software passa a reproduzir essa área.