CheckBal - Checkbook Balancer

a simple credit/debit accounting system

Copyright © 1987-2003 by Richard Pasco

License: Use of CheckBal is free to end users, but I retain the copyright. This program is shared "as-is" without warranty, promise of support, or liability for consequences of its use. Bug reports are requested, and enhancement requests are invited.

CheckBal is a very simple accounting program, useful for maintaining checking and similar credit/debit accounts. CheckBal is oriented toward reconciling expenditures against receipts on an ongoing basis. In this sense, it is also useful for any situation in which a number of additions and subtractions are made from a running total.

CheckBal is to be used in conjunction with a text editor. The user enters each transaction (item to be subtracted or added) into a text file, and then invokes CheckBal on that text file. It checks all arithmetic, completing or correcting the "balance" column as required.

Here's an example of how CheckBal might be used to keep track of a personal checking account.

  No.   Date      Description                      Check    Deposit   Balance Ack
        87/01/01  Balance Forward                            678.90    678.90 00
  1234  87/01/26  A-123 Supermarket                123.45              555.45 01
        87/01/28  Paycheck                                   600.00   1155.45 02
        87/01/29  Cash                             100.00             1055.45 02
  1235  87/02/23  Jones Furniture Mart             234.56              820.89
In this example, the first (heading) line, and columns labelled No., Date, and Description, are all comments ignored by CheckBal. When CheckBal is invoked, it re-computes the balance on each line, replacing the old value if incorrect. The new balance on each line equals the balance on the line above, minus any check on the current line, plus any deposit on the current line.

A feature of CheckBal is its ability to compute two separate balances. In addition to the balance shown in the balance column and affected by every transaction, an "acknowledged balance" is also computed. As this could be used for double-checking the result on a bank statement, it is also known as "bank balance". Only those transactions considered "acknowledged" are considered in computing the bank balance. The acknowledged balance is not entered into the text file but is displayed at the terminal at the conclusion of a CheckBal run. It is suggested that when your statement is received, enter a code for the month of the statement into the acknowledgement column, and run CheckBal over your account. The bank balance displayed should match the closing balance on your bank's statement.

By default, any transaction having a non-blank character in the "acknowledgement" column is considered "acknowledged." However, if option "Through" is specified, then Checkbal considers as "acknowledged" only those lines having a number in the acknowledgement column less than or equal to the specified Through value.

Calling Syntax:

  CheckBal [drive:][path\]filename.ext </Cnn> </Dnn> </Bnn> </Ann>
Where <> designates optional parameters:
  /Cnn => Checks;            decimal point in column nn (default=53)
  /Dnn => Deposits;          decimal point in column nn (default=63)
  /Bnn => Balance;           decimal point in column nn (default=73)
  /Ann => Acknowledgement;   any character in column nn (default=78)
  /Pn  => Places;            display balance to n places (default=2)
  /Tnn => Through; consider entries through month nn in BankBal (default = all)
CheckBal looks for numerical values by starting in the designated columns looking for valid numerical digits (0-9, minus sign, decimal point, commas), and expanding in both directions to include as many valid digits as can be found. Setting /C0 or /D0 causes that option to be ignored. To replace a balance, CheckBal first overlays the old number with spaces, then writes the new number with the decimal point aligned on the balance column. After each transaction, balances are both internally rounded to, and written out to, the number of decimal places specified by the /P option. The default is 2 decimal places (exact cents).

Note that the column nn specified by /Cnn, /Dnn, or /Bnn refers to the column containing the decimal point, except in the special case /P0, in which case there is no decimal point, in which case the units digit is placed in column nn.

Multiple accounts may be handled in one file. The Balance is cleared by an equal sign or double horizontal bar graphic in the Balance column. This triggers terminal display of the Balance and Bank Balance.


  1. Download and open
  2. Move checkbal.exe into any directory on your command PATH.
  3. Save checkbal.html (this file) for future reference.

How to configure TextPad for use with CheckBal

Although CheckBal can work in conjunction with any text editor, TextPad is particularly recommended. The author has no affiliation with TextPad (other than being a satisfied user), and it is beyond the scope of this document to give complete instructions in its use, but these notes will make for better integration with CheckBal.

General preferences

TextPad should be configured to save files for TextPad with

These options may be found under Configure / Preferences / Document Classes.

Installing CheckBal as a custom tool with TextPad

In TextPad, invoke Configure/Preferences/Tools. Click on Add and choose Program. In the box labelled Filename, enter the full path to CHECKBAL.EXE, e.g. C:\BIN\CHECKBAL.EXE, and hit Enter or click Open. Click on Apply. Click on the little "+" sign that has appeared to the left of the word Tools and select Checkbal from the list that appears below. A dialog will open. In the field labelled Command, delete the full path information entered above, so that the dialog now looks like this:
Click OK to confirm. Now, CHECKBAL.EXE will be found based on the setting of the PATH at the time the tool is invoked.

Revision History

July 13, 2003First public release
March 9, 2007Amounts may now contain commas
May 13, 2015Bug fix: Negative signs were omitted when displaying balances between -0.99 and -0.01

Author: Rich Pasco