Step Forward homepage Step Forward
See it Get it Build it Use it Talk About it Contact Home

Condo Association
A STEP FORWARD-based Gratis Application

The Specified Need
This Gratis Application was originally developed to the specific requirements of a Homeowners Association that had a need for a relatively simple bookkeeping system with the following features:

  • Cash Basis (no accruals).
  • Tracking of Accounts Receivable from Owners (accruals), while maintaining the Cash Basis.
  • Condo units that are occupied by Owners or rented out by Owner Investors.
  • Provide a Budgeting capability.
  • Provide a Contact Manager.

The Association’s fiscal year is the calendar year.

Please Note: The way this particular application was configured may not meet the specific needs of anyone other than the Homeowners Association for which it was originally developed. One of the features of STEP FORWARD is the easy of configuration and modification. You are welcome to modify this Gratis Application to suit your specific needs. Should you require assistance or guidance, please feel free to contact us. If you have a specific need for some other application, tell us about it and we may agree to configure it as a Gratis Application, if it fits into our marketing plans.

The Need Addressed
We created

  • a number of Global, Subledger, and Transaction Tables including Procedures that control or enhance specific data capture;
  • a number of Reports that provide analytical and financial information;
  • a number of Processes that automate certain accounting functionalities.

The following information will give you an application overview as well as some detailed guidelines.

STEP FORWARD Environment


The development was carried out by the staff of Gestalt Corporation as a Gratis Application using the Architecture, Accounts, Accessories, Report Builder, and Process Builder options listed in the Application Launchpad. Modifications and enhancements to the existing configuration can be made by anyone using these tools. We recommend that those who wish to carry out the development and enhancement of STEP FORWARD-based applications make themselves familiar with its capabilities by using the On-line manual (select from Help in any STEP FORWARD window) and by downloading the Tutorial from


Run Report
This facilitates the running of all Reports, unless otherwise configured. Use the “Select” menu option in the “Saved Reports” window to see all Reports available for execution. Created Reports can be saved and listed in this window as well.

Run Process
This facilitates the running of all Processes. Use the “Select” menu option in the “Saved Processes” window to see all Processes available for execution. All created Reports that have been saved are displayed in this window as well.

General Data Entry
This option handles the actual data input for Global & Subledger tables.
Please note: In this Gratis Application, the Global Procedure triggered by the Saving action (attached to the Owners template) will automatically add the applicable subledger to the ARO Subledger table whenever a new Owners record is added.

Accounting Data Entry
This option handles the actual data input for the Transaction Table
Please note: In this Gratis Application, some accounting transactions are automatically generated through Processes (i.e. Monthly Dues through “GenerateDues” and Payments recorded in the Payments table through “GeneratePaymentTx”.


This provides all the tools that the System Administrator may require.

Architecture – Template/Table Creation

Global Tables

City: one record for each City, State, Telephone Area combination; this table is linked to the Owners table.

Owners: one record for each Owner; also used as link or data source for the Condos, Contact, and Payments Global tables and the ARO (Accounts Receivable Owners) Subledger table. Please note: Owner #1 was reserved for “Accounting Cash Basis – Balance Offset” – this account is used to simulate the non-accrual requirement which is triggered automatically whenever the payment Process “GeneratePaymentTx” is run.

Condos: one record for each Condo unit; also used as data source for the Contact table.

Contact: one record for each Contact made.

KeyWP: Key Words and Phrases; used in the Contact table to facilitate commonality of contacts.

Budget: Maintenance of Annual Budgets.

Payments: a Transaction Worksheet to record all payments and miscellaneous revenues received for a given deposit date. The actual accounting is automatically generated upon running the “GeneratePaymentTx” Process.

Subledger Tables

ARO: Accounts Receivable from Owners – linked from Owners table.

Misc: Miscellaneous Subledger provision – not attached to any General Ledger control account at this time.

Transaction Table

Common: being a simple accounting application, only a single input template was required for the accounting data.

Report Builder

Reports (in alphabetic order)
Report Names starting with FS indicate Financial Statements and MR (usually) indicate Monthly Reports. The various Reports are shown in alphabetical sequence of the Report names.

AccountChart: a list of all General Ledger Accounts in use in this specific application.

AccountHistory: Account History for a specific Owner. Parameter input takes “Owners ID” and “First Day of Start Month” (to determine Balance Forward Date).

Budget: Annual Budget for a specified fiscal year. Parameter input takes “First Day of Fiscal Year”. Report can be triggered from within Budget data entry window.

CalendarVertical: A simple calendar in a vertical format for efficient desktop usage. Parameter input takes “Any Day in Start Month” and the “Number of Months” to be displayed.

Contact History: Lists all Contact records (in reverse order) for a specified Owner. Parameter input takes “Owners ID”. Report can be run through the “Run Report” option, triggered from within the Contact record, or triggered as a drill-down from within the “ContactPriorRecord” report.

ContactPriorRecord: This report is triggered from within the Contact window and will display the immediate Prior Contact record to the Owner’s Contact record currently loaded in the window when selecting this report from the Print Option. The required Parameter input is loaded automatically and transparently. A drill-down option lets you also trigger the complete Contact History.

DepositList: A listing of all cash transactions making up a given Payments document. This report is generated as part of the “GeneratePaymentTx” Process (which also generates the applicable accounting transactions.

FollowUp: Lists all pending follow-up Contacts to be made for the date on which this report is run and beyond.

FSBalanceSheet: (FS = Financials Statements) a simple Balance Sheet. Parameter input takes the Report Date (e.g. the last day of the month). The text “As At” will be placed in front of the Report Date automatically.

FSOperatingStatement: A monthly Operating Statement with this columnar layout:
$Variance – $Budget – $Actual – Description – $Actual - $Budget - $Variance // where the data to the left of the Description is for the Current Month and to the right the Year-to-date.

InvoiceRecap: A list of all monthly Condo Dues. This report is generated automatically upon running the “GenerateDues” Process.

LabelsAvery5160: This report prints the Owners list on three-up label sheets in conformity with the Avery 5160 format.

MR1General Ledger: Prints a General Ledger format for a single GL Control Account for one or more months.

MR1Journal: Prints a Transaction Journal for a single Transaction number.

MR1Subledger: Prints the Subledgers format for a single General Ledger Control Account for one or more months.

MRGeneralLedger: Prints the General Ledger for one or more months.

MRGLTrialBalance: Prints an Expanded General Ledger Trial Balance (Opening Balance – Current Debit – Current Credit – Ending Balance) where the Current Period is defined as one or more months.

MRJournal: Prints a Transaction Journal for one or more months.

MRSubledger: Prints the Subledgers for all GL Control Accounts for one or more months.

MRSubTrialBalance: Prints an Expanded Subledger Trial Balance (Opening Balance – Current Debit – Current Credit – Ending Balance) where the Current Period is defined as one or more months for all General Ledger Control Accounts.

Owners List: Prints a list of all Owners (in Unit sequence) followed by a list of all Owners and their Condo holdings (in Owner ID sequence).

Process Builder

Processes (in alphabetic order)

GenerateDues: This generates the applicable accounting transactions for Monthly Condo Dues in Dr/Cr sets for each Owner and produces the InvoiceRecap Report.

GeneratePaymentTx: This generates the applicable accounting transactions for the Payments record and produces the Deposit List Report.

Getting Started

1. Enter data into City Table
Production > General Data Entry > (Global) City
Enter a single record for each required City, State, and Telephone Area Code combination.

Enter data into Owners Table
Production > General Data Entry > (Global) Owners

  • The “Owners ID” is defined as a Subledger Numeric Type. When creating a New record, the next available number will be suggested (based upon prior Owner records in the database table); therefore, if you wish to start your ID series with 101, you should enter that number into the first Owners record. In this Gratis Application, we reserved Owners ID 1 as the “Accounting Cash Basis – Balance Offset” in the “Full or Corporate Name” field.
  • The “Full or Corporate Name” field is filled in automatically whenever individual names are entered. E.g. First Name 1 = John; Last Name 1 = Doe; First Name 2 = Mary. This will cause the “Full or Corporate Name” to = John & Mary Doe.
  • If the Owner is a non-individual, enter the corporate name directly into the “Full or Corporate Name” field.
  • Enter all other fields as required subject to these observations:
    City, State and Area are links; therefore enter the City in whole or in part to establish the match.
    Telephone and Fax numbers should be entered without the Area code as 2345678 or 234-5678; if
    you don’t enter the dash (-), the Procedure attached to the field will do it for you. If you wish to
    use a symbol other than the dash, you will have to modify the User Function “PhoneSeparator”.

Please Note: When Saving a new Owners record, the required Subledger record will be added to the Subledger Master (Subledger table ARO) automatically.


Enter data into Condos Table
Production > General Data Entry > (Global) Condos

  • Enter the Condo # and select the appropriate Level.
  • All remaining fields are links to the Owners table. Establish the link by entering the Owners ID or a unique portion of the Full or Corporate Name.

Review the Account Chart
Accounts > Chart and Accounts > Prototype

  • Make any deletions in the Accounts > Chart section first, then in Accounts > Prototypes.
  • Additions can be made from within Accounts > Chart by selecting the Menu options: Chart > Add to Level > General Ledger, this will display the Add Code window, click on the “New code” button and enter the applicable (GL) Code and Description. This will update both the Chart and the Prototypes. Please review the various Account Lists to determine whether the additions have any impact upon them.
  • Make any changes in (Account) Description by changing the Description in the Prototypes.

You Are Now Ready For Regular Activity

1. Using the Contact Manager
Production > General Data Entry > (Global) Contact
  • The New record Procedure will automatically load/suggest the Contact Date (being the current date) and indicate which day of the week it is. If you are behind in your record keeping, you should change this date to the actual Contact Date.
  • Enter the Owners ID, if known, or click on the “Select from Owners’ List” button and locate the desired Owner; or you may enter a unique portion of the Owner’s name into the “Full or Corporate Name” field – to link to the Owners table. You will be prompted to select the applicable Condo #, which is optional.
  • Enter a “Key Contact Words” value e.g. Collection are any meaningful terminology. A Procedure will attempt to retrieve a match from the inventory in the KeyWP table. If no match is found it may mean that you misspelled the key word or phrase or that it is a new one that you may wish to add to your inventory. (The purpose of this feature is to allow you to classify your various Contacts in a uniform manner, and possibly use these keys for data retrieval purposes.)
  • Select a Contact Method
  • Enter the “Summary of our Communication”. This is a Note field. It also allows you to paste in the text of an email or whatever.
  • If you have agreed to or wish to remind yourself to a follow-up, enter a date into the “Date of next contact” field.
  • The Print Options pop-up list lets you print a number of Reports while having a Contact Record loaded:
    Calendar: displays six sequential months (in vertical format) starting with the month in which the
    Contact Date occurs.
    Print Prior Contact Record: prints the detail of the immediately preceding Contact record for the
    Owner currently loaded in the Contact window. This Report also lets you drill down to the
    “Contact History”, if you wish.
    Print Contact History: prints Contact History for the Owner currently loaded in the Contact window.
    Follow Up: prints a Report for all follow-ups starting with the current date and beyond, regardless
    of Owner.

Create Your Budget
Production > General Data Entry > (Global) Budget

  • Enter the first day of your fiscal year e.g. January 1, 2004 into the “Fiscal Year Commencing” field. Once entered, it will be suggested into each additional record during the same data entry session. Please review the date format options available to you, see “On-line manual”.
  • Enter the GL # or the Account Name. If you make a mistake, you will be presented with the complete Chart of Accounts to help you make the right choice. In this Gratis Application the Budget is restricted to Revenues and Expenses. The Account Grouping is selected automatically based upon the GL #.
  • Enter the “Budget this Account”. This will present you with three distribution options.
  • When you are finished with recording the budget items, click on Print Budget. This will give you a complete summary as well as a calculated Monthly Condo Fee (the minimum money needed each month from all Owners to cover the Budget).

Set Your Preferences for Accounting Data Entry
Production > Accounting Data Entry, Select Help > On-line manual
Familiarize yourself with all topics under “Preferences for Accounting Data Entry”; then select from the Accounting Data Entry window the menu option Tools > Preferences and set all applicable Preferences, specifically: Date Formats, Document Browser, and Line Browser.
Production > Accounting Data Entry


Set Up Your Opening Journal Entry
When going live, either in mid-year or at the beginning of a new fiscal year, enter the appropriate Opening Journal Entry. Click on the (New) Source button and select JE; use the last day of the previous accounting month as your Document Date; use a meaningful Reference # and Description (the Other Reference is optional).

5. Generate Monthly Dues
Production > Run Process – Select “GenerateDues”
The Billing Date is usually the first day of the billing month (dues are billed monthly in advance). Enter the Monthly Dues amount per Condo unit e.g. 70.00. This Process will generate the applicable accounting transaction in Dr/Cr pairs for each Condo unit (charged to the applicable Owner). The Reference # is generated with an alpha prefix (MD = Monthly Dues) followed by a four-digit number consisting of year/month e.g. the billing for January 2004 will have the Reference # MD0401. The Source Document is INV. On completion of the accounting transaction the Process will produce the InvoiceRecap Report.
6. Enter Payments or Revenue Received
Production > General Data Entry > (Global) Payments
This is a compound record which we refer to as a document.
  • Enter the Processing Date (does not have to match the eventual Deposit Date). This will generate the Reference # with an alpha prefix (PR = Payment Received) followed by a six-digit number consisting of year/month/day e.g. Payments processed on for January 12, 2004 will have the Reference # PR040112. The Processing Date and Reference # combination must be unique to each document; therefore, you can have only a single Payments document each day but no limit as to the number of payment items included in the document.
  • Complete a detail line in the “Individual Payment Items” box for each payment received:
    Payment: enter the amount of the check or cash received. This will also calculate the Total Amount each time that a Payment amount is entered.
    Check #: enter the check number; or the word Cash, if cash was received (this will be recorded in the “Other Reference” field in the accounting record.
    Check Date: enter the Check Date (if check) or date received (if cash).
    Owners ID: enter the Owners ID number, if the payment is received from an Owner for Dues or other charges billed. This will cause the remaining three fields to be populated automatically:
    GL = 125; Issued By = the name of the Owner; Explanation = Payment Received.
    If this payment is not a payment on account from an Owner, skip this field.
    GL: If this payment is not a payment on account from an Owner, enter the GL number that identifies the Revenue or Expense Recovery to be credited.
    Issued By: If this payment is not a payment on account from an Owner, enter the name of the Payer (who issued the check).
    Explanation: If this payment is not a payment on account from an Owner, enter a meaningful explanation (it will become the Description in the accounting transaction).
Please Note: The information entered into this record needs to be processed by running the GeneratePaymentTx Process. This Process should not be run until you have entered all possible payments into this document for a given Processing Date.

Processing a Payments Document
Production > Run Process – Select “GeneratePaymentTx”
This Process takes no Parameters. Generated accounting transactions are identified as Source PMT.

  • It retrieves any Payments documents where the TX Number is zero (0) and processes each one, if multiple finds, according to these four steps.
  • It then generates, for each document, the applicable credit entries as per the detail data contained in the “Individual Payment Items” box and an offsetting debit entry to GL 101 (Cash on Hand)*.
  • It updates the Payments document by replacing the TX Number 0 with the Tx Number of the accounting record (document) just generated.
  • It prints the DepositList Report listing each item making up the entire Payments document.
  • As the final step, it determines the residual balance in the Accounts Receivable Control (GL 125) and generates a second transaction that nets the residual in GL 125 to zero (0.00) by using Subledger # 1, with the offset going to Monthly Dues (GL 401) – in effect neutralizing the accrual impact of maintaining Owner Accounts Receivable.
*Please Note: You should make a manual accounting entry for the actual Bank Deposit Transaction (whenever it occurs) i.e. Debit GL 103 and Credit GL 101 using Source BD.
8. Making Manual Accounting Entries
Production > Accounting Data Entry
  • Look at the window’s Title Bar. It will carry the name and description of the last Source document used. If it does not show the Source name that you wish to use, click on (New) Source and make the appropriate selection.
  • Enter the Amount (a credit of $100 should be entered as -100.00).
  • In this Gratis Application only GL 125 is a Control Account (Accounts Receivable from Owners). If this GL# is entered, the Sub # field becomes editable and requires the Owner ID as input.
  • The Description should be meaningful – think about what you would like to see in the Ledger. Quite often this should be the name of the Payer e.g. John Doe Professional Corporation for the debit to Accounting.
Please Note: The “Zero Balancing By Period” has been activated. This permits distributing the accounting transaction over multiple periods. E.g. assume you receive an Invoice for services rendered in August (and budgeted for in August) but not dated until November. With this feature you will have the option to make a balanced accounting entry of Debit “Services” dated in August and Credit Bank (no Accounts Payable in the Cash Basis of accounting) in November. The result of this would be a balanced transaction document as far as the $ values are concerned but an out-of-balance situation for both August and November.

The “Zero Balancing By Period” feature addresses this issue by simultaneously and automatically including two additional transaction lines in the two line document (for a total of four transaction lines) a balancing Credit in August to GL 348 (declared by us to be “Accrual, Inter-Period Balancing”) and an offsetting Debit in November – again to GL 348.

This “Zero Balancing By Period” can also be utilized even when the two periods are in adjacent fiscal years, as may happen early on in a new fiscal period. It is recommended that you study the “On-line manual” for these and other features e.g. year-end closing and the impact that “Zero Balancing By Period” can have on this (i.e. the year-end closing may have to be corrected).

9. Using Source Documents wisely
Go to Architecture > Sources and note the Sources provided. You may wish to add more. Whatever you do, use them consistently.

Parameter Date Convention
When running Monthly Reports (MRxxxxxx) you will be confronted, in most cases, with requests for two date Parameters “First Day of Start Month” and “First Day of End Month”. We selected this format because everybody knows that the first day of any month is “1” and so that they do not have to worry about which month has how many days and when is it a leap year. These Reports can cover one or more months. Therefore,

  • to run a report for a single month e.g. for February 2004 enter these Parameters:
    First Day of Start Month = February 1, 2004*
    First Day of End Month = February 1, 2004
  • to run a report for a whole year e.g. for January - December 2004 enter these Parameters:
    First Day of Start Month = January 1, 2004
    First Day of End Month = December 1, 2004

Also when running Financial Statements (FSxxxxxx) the Parameter Date is “First Day of Reporting Month” (this will be converted to the applicable last day of the month).

*Please Note: The date format for input and display is determined by you through your Preferences setting (see “Set Your Preferences for Accounting Data Entry”, item #3, on page 5). The internal format is YYYYMMDD and may also be used during data entry, without selecting it specifically through Preferences.

11. Get Help
Read the “On-line manual”. Check our FAQ on our web site. If you don’t find answers to your questions, post them on our web site Forum. If all else fails, contact us at

  Licensing Legal Privacy Policy Disclaimer jump to top
Copyright 2017 Gestalt Corporation, All rights reserved.