Actuals

Upload paired actuals source files, manage invoices, and track real performance.

The Actuals page is where your real sales data lives. Import transactions via a paired Actuals / AR + W&D upload, create records manually, and review your sales history. Actuals are the foundation for performance tracking — they’re what gets compared against your forecast on the Dashboard.

For a dedicated step-by-step guide to the uploader, templates, validation, and W&D allocation, see Actuals Uploading.

Courier parcel profiles do not change how actuals are recorded. They only affect forecast-side W&D derivation. Actuals continue to use the W&D values supplied in uploads or manual entry.

Getting Data In

Paired Actuals Upload

Navigate to Data → Actuals and click Upload paired actuals. The upload drawer is split into two sides:

  • Left: your sales-side Actuals / AR file
  • Right: your W&D file

Both files must be loaded and validated before the upload can be committed.

Supported formats

Each side accepts either CSV or XLSX.

Expected data

The app parses both files in-browser and normalizes them into a shared upload payload. The uploader also provides downloadable trimmed CSV templates for both sides, and matching example files live in docs/Example CSVs for uploads/.

The trimmed Actuals / AR template uses these columns:

  • ExternalId
  • InvoiceNumber
  • Reference
  • InvoiceDate
  • InventoryItemCode
  • Description
  • Quantity
  • UnitAmount
  • LineAmount
  • Type

The trimmed W&D template uses these columns:

  • Client
  • Order
  • Invoice Date
  • Total Cost
  • Comments

Validation

Before committing, ProFeT validates the pair end to end:

  • Required fields — Both files present, expected columns mapped, dates formatted correctly
  • Reference checksExternalId / Client values must match customer identifiers in your tenant, and InventoryItemCode must resolve to a SKU
  • Order reconciliation — AR and W&D rows are matched on order number
  • Stock checks — Sufficient inventory available for each SKU (based on production batches)
  • Duplicate detection — Already-posted invoice lines become no-ops rather than double counting
  • Exception routing — unmatched AR and W&D rows stay visible in Review instead of silently disappearing

What Happens on Commit

When you click Commit Upload, ProFeT:

  1. Stores both original source files
  2. Creates one managed upload record for the pair
  3. Reconciles AR and W&D by order number
  4. Creates invoice and sale records, appending only genuinely new lines
  5. Calculates COGS using FIFO from production batches
  6. Allocates W&D across matched lines by line value
  7. Updates stock levels (reduces available inventory)

W&D Allocation

For matched orders, ProFeT pools the W&D total for that order and allocates it across AR lines by line value:

Line W&D = Order W&D × (Line Value ÷ Total Order Value)

If value is unavailable, the importer falls back to quantity and then finally to an even split.

This revenue-weighted allocation rule is the current v1 behavior and is documented intentionally so operators understand why higher-value lines absorb more of the order’s W&D cost.

Manual Entry

For one-off records or corrections, create individual sales directly in the interface. Fill in the customer, SKU, quantity, price, date, and costs. Manual entries go through the same COGS and stock calculations as uploaded data.

Viewing Actuals

The Actuals list shows all recorded sales with:

  • Date, customer, SKU, and quantity
  • Price, COGS, W&D, and retro amounts
  • The upload batch they came from (for imported records)

Use filters to narrow by date range, customer, or SKU.

Upload History

Every import is logged. Open the upload drawer to see:

  • The paired upload name and upload date
  • Who uploaded it
  • Matched invoice / sale counts
  • Separate download links for the original AR and W&D files

This provides an audit trail and lets you re-download source files if needed.

How Actuals Connect to Other Features

FeatureConnection
DashboardActuals are the “actual” side of Forecast vs Actuals and Budget vs Actuals comparisons
Production PlanningSales consume stock from production batches via FIFO
RetrosRetro discounts are calculated dynamically on qualifying sales
Live ForecastActuals provide the baseline for forecast accuracy measurement

Handling Common Issues

Missing Customers or SKUs

If either file references customers or SKUs that don’t exist, validation will flag them. Add or map those records first, then re-run validation.

Insufficient Stock

If there isn’t enough inventory for a sale, you’ll need to add production batches for the affected SKUs before the upload can proceed.

Missing W&D Match

If an order exists in the AR file but not the W&D file, ProFeT can still post the sales row with £0 W&D and keep the exception visible in Review.

If a W&D row has no AR match, the cost remains visible in Review until it is classified.

Actuals Screens

Actuals sales list with filters and metrics
Start in the Actuals list to review imported and manual sales records using date, customer, and SKU filters.
Add Sale modal for entering a single actuals transaction
Use Add Sale to create or correct a single transaction by entering customer, SKU, quantity, price, date, and costs.
Actuals paired upload state showing both files, validation, and commit results
Use the paired upload drawer to validate both source files together and commit one managed upload once the pair passes validation.