Best Practices
Practical guidelines for structuring Books, Accounts, Groups, and Transactions in Bkper — keep it simple, avoid common pitfalls, and maintain clean records.
Less is better
This principle applies to Collections, Books, Groups, and Accounts, and is grounded in three key benefits:
Fewer choices to make for agents and users, which speeds up operations.
Less maintenance, especially for reports and integrations.
Leverage Bkper’s flexibility when more detail, granularity, or units are needed.
For example, you can start tracking your results with just two accounts: Revenues (Incoming type) and Expenses (Outgoing type). As your business grows, add more detail to your Chart of Accounts — a Revenue group with accounts like Services and Subscriptions, and an Expenses group with accounts like Rent, Salary, and Insurance.
Create Bkper components (Collections, Books, Groups, Accounts) referring to one unique entity — a business, an asset, a project.
Avoid periods or dates in names
Don’t create Bkper elements that refer to periods or dates (e.g., “Books for My Business 2024” or “My Business 2025”). This might seem practical at first, but over time your list of books will grow, and if applied to accounts will turn your Chart of Accounts into a mess, making reporting complicated.
Instead, create one Book for a specific entity — such as My Business — or one Account for a specific expense — such as Transport.
To retrieve balance values for a specific date or period, use the search conditions outlined in the Query Guide.
For example, instead of creating a separate receivable account for each customer per month (e.g., “Customer_A_0125”, “Customer_A_0225”), create one receivable account Customer_A. To search for its outstanding balance for a specific date or period:
Customer_A on:01/31/2025Customer_A after:12/31/2024
Avoid units in names
If you track different units — such as currencies, or quantities and values — do not create separate accounts for quantity and value of the same asset in one Book (e.g., “Material_A_qt”, “Material_A_value”). Instead, keep one Book for the asset’s value and another Book for its quantities.
For a stock portfolio, for example, track the quantity of instruments in one Book and the value of each instrument in another.
Unusual transactions
Unusual transactions happen when income, expenses, assets, or liabilities are posted to the wrong type of account, skipping logical intermediary accounts. This causes confusion and distorts financial records. Avoid unusual transactions to maintain accurate records.
Income recorded directly to an Outgoing account — Normally, income first passes through an Asset account before being recorded to an Expense account.
Incorrect: Sales >> Transport
Correct:
Sales >> Bank AccountBank Account >> Transport
Income recorded directly to a Liability account — Income typically passes through an Asset account before being recorded to a Liability account.
Incorrect: Sales >> Supplier
Correct:
Sales >> Bank AccountBank Account >> Supplier
However, if a customer pays off a liability in return for a service:
Service >> CustomerCustomer >> Supplier
Outgoing recorded directly to an Incoming account — An expense does not turn into income.
Liability recorded directly to income — A liability does not turn into income.
Outgoing recorded directly to a Liability or Asset — This situation occurs with refunds:
Materials >> Supplier- or
Materials >> Bank Account
By ensuring transactions follow the correct flow, your financial records remain clear and consistent.