Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

re: algorithm and data structure concepts

When accountants talk about Ledgers they have something very specific in mind. As a programmer I'm very used to thinking about tables of information, but clearly there are specific things that make a ledger a ledger.

So, given a simple list of transactions (date, money in, money out, notes) what needs to be added/changed to make that list into something Accountants would call a ledger?

e.g. formatting considerations, does it have to be immutable, does it have to reflect something happening in a real bank account somewhere, does it have to have some sort of 'foreign key' describing which entity each transaction refers to...

share|improve this question

Ledgers are always balanced; i.e. a credit to one account/category is offset by a debit in another.

It follows that, for a "simple transaction" to be considered "ledger quality," it either has to be validated by an "encapsulating transaction" (in a similar way that a database transaction works), or accompanied by some sort of adjustment record that accounts for the discrepancy.

The "encapsulating transaction" simply assures that either all of the necessary parts of the transaction must be executed (i.e. the debit and the credit), or none of the transaction is executed (what we call a rollback).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.