Skip to Content

OPEX - Operating Expenses

What this page is for

OPEX is where you record and manage operating expenses that are not already captured as COGS.

Use OPEX for costs like tools and software, services, accounting, bank fees, office expenses, subscriptions, and other operational spend.

These OPEX expenses are later used in financial views such as profit and expense flows and dashboards that include “OPEX Expenses”.

What you can do here

  • Record new expenses and attach supporting files (receipts, invoices)

  • Review expenses by status (Pending, Approved, Rejected, Paid)

  • Filter and search across expenses to answer questions like:

    • What did we spend this month on Operating costs?
    • Which vendor is the biggest cost driver?
    • What is still awaiting approval?
  • Create recurring expenses (rent, software subscriptions) that generate future entries automatically

  • For admins, bulk update the status of many expenses at once

  • Import expenses from Excel using a template


Page structure

1) Header

  • Page title: OPEX

  • Info tooltip explaining what belongs here

  • Global filters:

    • Products
    • Currency
    • Date range

2) Main content

Two tabs:

  • Summary: totals, breakdowns, charts
  • Table: detailed list of expense entries with actions

3) Expense dialog

Used for:

  • Creating a new expense
  • Editing an expense
  • Duplicating an expense

Inside the dialog there are two tabs:

  • Expense
  • Attachments (disabled until the expense is created and saved)

Global filters and what they change

These filters affect both Summary and Table, but not always in the same way you would intuitively expect.

Products filter

Purpose: focus the page on expenses that apply to specific products.

How it behaves:

  • If you select products, the page tries to show expenses that match any of those products.
  • Expenses that are not linked to any product can be treated as “general” and may still appear, depending on how your workspace logic treats unscoped expenses.

What you will notice:

  • Summary totals and breakdowns recalculate based on the filtered set.
  • The Table list also narrows to matching expenses.

Practical advice:

  • Select products to analyze product specific OPEX.
  • Clear products to review general expenses and everything else.

Currency selector

Purpose: control the currency used for totals and rollups.

Important behavior:

  • Currency selection does not filter which rows appear.
  • It mainly affects totals and rollups by converting amounts into the chosen currency.

What you will notice:

  • Summary totals change when you switch currency because totals are converted.
  • The Table rows still display each expense in its original currency.
  • The Table can also show an overall total that is converted into the selected currency, even if the rows are mixed currency.

Exchange rates:

  • The system converts amounts using exchange rates tied to each expense’s date and currency, but the specific exchange rate provider is not shown in the snapshot you shared.

Date range

Purpose: limit expenses to a time window.

What you will notice:

  • Both Summary and Table include only expenses with a date inside the selected range.
  • Presets and custom date selection are supported.

You can link directly to a specific view or a pre-filtered table.

Tab selection

  • tab=summary opens Summary
  • tab=table opens Table

Pre-filter by category and subcategory

  • category and subcategory in the URL can pre-fill table filters.
  • This is used for drillthrough behavior, for example clicking a breakdown item and landing in the Table already filtered.

What you will notice:

  • Opening a shared link can immediately show the exact filtered view another person intended.

Summary tab

Summary answers: how much did we spend, where did it go, and what is the approval state.

KPI cards

Total Expenses

  • Total spend in the selected date range.
  • Shown in the selected currency.

Pending Review

  • Total amount in Pending status.
  • Also shows how many expenses are Pending.

Approved and Paid

  • Combined total of Approved plus Paid.
  • Combined count of Approved plus Paid.

Statuses you will see across the page:

  • Pending
  • Approved
  • Rejected
  • Paid

Category breakdown list

You see categories sorted by highest spend.

For each category:

  • Category name
  • Total spend (converted to selected currency)
  • Share of total as a progress bar

Percentage concept: [ \text{Share} = \frac{\text{Category Total}}{\text{Total Expenses}} \times 100 ]

Note:

  • Counts per category are not shown if the summary data does not include them.

Subcategory breakdown list

Same idea as categories, but more granular.

Labeling:

  • Subcategories can display friendly labels rather than raw values, based on the system’s mapping.

Charts

Shown when there is data:

  • Expenses by Category
  • Status Distribution

Status distribution can show both:

  • Amount by status
  • Count by status

If there is no data:

  • Charts area shows an empty state explaining there is nothing to chart in the current filter range.

Payment method chart:

  • It may exist in the system but may not currently be shown on the page.

Table tab

Table is the operational workspace. This is where you manage actual entries.

The search box filters the list based on text matches across common fields such as:

  • Description
  • Category and subcategory
  • Vendor
  • Payment method
  • Status
  • Source type

What you will notice:

  • Search is not just local filtering. It changes which records are returned.

Table filters

Filters commonly available:

  • Category
  • Subcategory
  • Vendor
  • Status

Important behavior:

  • These filters are applied server-side, so they affect pagination and totals.

Columns and what they mean

Date

  • The expense date.

Category

  • High level classification such as Operating, Financial, Investment.

Subcategory

  • A more specific bucket under the category.
  • Often displayed with a human readable label.

Type

  • One time vs Recurring.
  • If recurring, you can see the recurrence pattern details.

Source

  • Distinguishes regular OPEX entries from entries linked to Purchase Orders.
  • If linked to a PO, you can open the Purchase Order from the row.

Description

  • Free text description of the expense.

Vendor

  • Who the cost is associated with.

Amount

  • Displayed in the expense’s own currency.
  • This is why the Table can contain mixed currencies.

Status

  • Pending, Approved, Rejected, Paid.

Actions

  • Edit
  • Duplicate
  • Delete

Pagination

  • You can move between pages.
  • You can change page size.
  • Total pages are based on total count returned for the current filters.

Admin only bulk actions

If your account is an admin:

  • You can select multiple rows

  • You can bulk set status to:

    • Pending
    • Approved
    • Rejected
    • Paid

This is designed for batch review workflows.


Creating and editing expenses

Expense dialog basics

  • “New Expense” opens an empty form.
  • “Edit” opens the form filled with that row.
  • “Duplicate” opens the form filled, but resets some fields.

Attachments

Attachments are intentionally gated:

  • You must save the expense first.
  • Only then does the Attachments tab become available.

Typical attachment behavior:

  • Upload up to 10 files
  • Max 10 MB per file
  • You can view, download, and delete attachments

Practical workflow:

  1. Create expense
  2. Save
  3. Add invoice or receipt in Attachments

Common fields you can expect

The form supports fields like:

  • Payment date
  • Currency
  • Amount
  • Marketplace selection
  • Applies to Products
  • Category and subcategory
  • Vendor
  • Bank and payer details (depending on your setup)
  • Comment and description
  • Status
  • Optional settings: recurring, amortize

Some payment fields might exist internally even if not fully exposed in your current UI layout.

Marketplace and Applies to Products

Marketplace:

  • Selecting “All” effectively means no marketplace restriction is stored.

Applies to Products:

  • You can link an expense to one or more products.
  • This is what makes the Products filter work.

Recurring expenses

Recurring expenses are for costs that repeat (rent, subscriptions).

What happens when you create a recurring expense

  • The system generates multiple expense entries across future dates based on the pattern you choose.

Patterns typically include:

  • Daily, Weekly, Bi-weekly
  • Monthly, Quarterly, Half-yearly, Yearly

End conditions:

  • Never
  • End on a date
  • End after N occurrences

Important default behavior:

  • “Never” usually creates a fixed set of future entries (commonly 12), not infinite.

Status behavior you will notice:

  • The first generated entry keeps the status you selected.
  • Future generated entries are set to Pending so they can be reviewed later.

Editing recurring expenses

When editing an expense that belongs to a series, you may be asked how broadly to apply the change:

  • This only
  • This and following
  • All in series

Important rule:

  • Approved and Paid entries are treated as locked.
  • When you update a series, locked entries are not changed, even if you choose “All in series”.

Practical example:

  • If January is Paid and February is Pending, updating “All in series” will update February onward but not January.

Deleting recurring expenses

Delete can also use a scope:

  • This only
  • This and following
  • All in series

Important rule:

  • Paid and Approved entries can be preserved when deleting a whole series, depending on the scope and rules.

Importing from Excel

Template

The system can generate an Excel template that:

  • Contains the expected columns
  • Includes dropdown validations for fields like currency, category, marketplace
  • Supports large row counts for bulk entry

Import behavior you will notice

  • If the sheet is missing or fields are invalid, import stops and reports errors.
  • Dates, amounts, currency, marketplace, category, and product matching are validated.
  • Applies to Products can require matching existing products, often by ASIN or internal product identity.

Important limitation from your snapshot:

  • The import flow shown saves a “template” for processing, but the final ingestion path is not visible in what you provided, so I cannot confirm whether it creates expenses immediately or queues them for a separate step.

Key behavioral clarifications that prevent confusion

  1. Currency changes totals, not the list You will still see EUR expenses when viewing totals in USD. Currency mainly changes conversion in reporting.

  2. Product filter uses “match any” logic If an expense applies to multiple products, selecting any of those products can include it.

  3. Some expenses may appear as global Expenses without product assignment can be treated as applying broadly.

  4. Approved and Paid are protected Bulk edits and series edits skip already Approved or Paid expenses.

  5. Summary is rollups, Table is raw rows Summary always shows converted totals and grouped breakdowns. Table shows individual entries with original currency per row.


Last updated on