HandyCafe Docs
owner cashier

Expenses

The Expenses page tracks all business costs that are not product purchases (rent, utilities, repairs, subscriptions, salaries, and any other outgoing payments). By recording expenses consistently, cafe owners get a clear picture of operating costs alongside revenue from sessions and orders, enabling accurate profit calculation.

Expense Record Fields

Each expense entry contains the following information:

Field Description
title A short description of the expense (e.g., "Rent - April 2026", "Electricity Bill", "Router Repair", "Internet Subscription").
amount The expense amount in minor currency units (e.g., cents).
currency The currency of the expense. Defaults to the system currency.
paid_at The timestamp when the expense was actually paid. If this field is set, the expense is considered Paid. If null, the expense is Unpaid.
due_date An optional date by which the payment is due. Useful for tracking upcoming obligations.
vendor The name of the party you are paying (e.g., "Landlord", "Electric Company", "IT Services Co."). Optional but recommended for filtering and reporting.
note A free-text field for additional details such as invoice numbers, reference codes, or context.

Expense Status

Expenses have two possible statuses based on the paid_at field:

  • Paid: The paid_at field contains a timestamp, indicating the expense has been settled. Paid expenses show a "Paid" badge and the payment date.
  • Unpaid: The paid_at field is empty. The expense is an outstanding obligation. If a due_date is set, the system can highlight overdue items.

Date Filtering Presets

The Expenses page provides quick date filter presets to narrow the list to a specific period:

Preset Period
Today Only expenses created or paid today
Yesterday Only expenses from yesterday
Last 7 Days Expenses from the past week
Last 30 Days Expenses from the past month
This Week Expenses from Monday through today (current week)
Last Week Expenses from the previous full week (Monday to Sunday)
This Month Expenses from the 1st of the current month through today
Last Month Expenses from the entire previous calendar month
All Time No date filter. Shows all expenses

These presets update the list immediately, making it quick to review expenses for a specific reporting period.

Auto-Complete Suggestions

To speed up data entry and maintain consistency, the Expenses page offers auto-complete suggestions for two fields:

  • Vendor: As you type in the vendor field, the system suggests vendor names from your previous expense entries. This prevents inconsistent naming (e.g., "Electric Co." vs. "Electric Company") and makes it easy to reuse common vendor names.
  • Title: Similarly, the title field suggests previously used expense titles. Common recurring expenses like "Rent", "Internet", or "Electricity" can be entered with a single selection.

Search

The search bar at the top of the Expenses page performs a full-text search across all fields:

  • Title
  • Vendor
  • Note
  • Amount

Type any keyword to instantly filter the list. For example, searching "internet" would show all expenses with "internet" in the title, vendor name, or notes.

Creating a New Expense

To record a new expense:

  1. Navigate to the Expenses page from the sidebar.
  2. Click the Add Expense button.
  3. Enter the title describing what the expense is for.
  4. Enter the amount (in the system's currency minor units).
  5. Optionally set the vendor name (auto-complete suggestions appear as you type).
  6. Optionally set the due date if the payment has a deadline.
  7. Add any notes for additional context.
  8. Click Save.

The expense is created with an Unpaid status by default.

Marking an Expense as Paid

To record that an expense has been settled:

  1. Select the expense from the list.
  2. Click the Mark as Paid action (or toggle the paid status).
  3. The system records the current timestamp as the paid_at value.
  4. The expense status changes from Unpaid to Paid.

You can also mark an expense as paid at the time of creation if the payment has already been made.

Deleting an Expense

Select an expense and use the delete action to remove it from the system. Deleted expenses are permanently removed. This action requires appropriate permissions and should be used with care. Consider marking unwanted expenses as void in the notes field rather than deleting them to preserve the audit trail.

Permission Requirements

Access to expense management is controlled by cashier role permissions. Depending on the role configuration:

  • Some roles may be able to view expenses but not create or modify them.
  • The ability to mark expenses as paid may be restricted to owner-level roles.
  • Deleting expenses typically requires elevated permissions.

Check the Cashier Roles page for details on configuring these permissions.