The big picture#
If you sell goods, you need to know two things. How many do you have? And what did they cost you? Hubtoll answers both, every time stock moves, with no spreadsheet.
You choose which items are tracked. For a stock-tracked item, Hubtoll keeps:
- Quantity on hand. How many units you hold.
- Average cost. What one unit cost you, on average.
- Value. Quantity times average cost. This is what your stock is worth on your balance sheet.
When you sell a tracked item, Hubtoll books the cost of goods sold in the same moment as the sale. That is why your profit and loss shows real gross profit.
Make an item stock-tracked#
Whether an item is tracked depends on its Type. You choose it when you create the item.
- Open Sales and FinanceProducts & ServicesProducts & Services and click Add item.
- Type the Item name. Add a SKU (optional), which is your own product code.
- Set Type to Inventory (stock-tracked). The stock fields appear.
- Set the Price currency, the sales price and the purchase price.
- Pick the Income account (a sale credits this).
- Under stock tracking, optionally set the Inventory asset account (optional) and the COGS account (optional). Leave them empty to use your company defaults.
- Optionally set Reorder level (optional), Opening qty (optional) and the opening unit cost.
- Click Add item.
Here is what each stock field does:
| Field | What it means |
|---|---|
| Inventory asset account (optional) | Where the value of stock sits on the balance sheet. A receipt adds to it. A sale takes from it. |
| COGS account (optional) | Where the cost of what you sold is charged. |
| Reorder level (optional) | The quantity at which you want a warning to buy more. It is a marker on reports. It does not order anything by itself. |
| Opening qty (optional) | How many you already hold when you start tracking. Hubtoll books them in once, against Opening Balance Equity. |
| Opening unit cost | What each of those units cost you, in your base currency. It is required when you give an opening quantity. |
Stock is always valued in your base currency, even if the item is priced in another. A moving average only makes sense in one currency. If an item is priced in US dollars, type the opening cost in your base currency. The form shows what the purchase price comes to as a helper.
Once an item has stock, you cannot change its type away from Inventory. Hubtoll says: "This item has stock (or stock movements) and cannot be changed away from INVENTORY".
How the average cost works#
Every time stock comes in, Hubtoll works out a new average. It adds the value of what came in to the value you held, and divides by the new quantity.
Two rules keep your books exact:
- Stock goes out at the current average. Buying again later changes the average for future sales only.
- A full sell-out takes the exact value that is left. No small leftover amounts stay behind in your books.
The value of your stock on the balance sheet is always the same as the value Hubtoll reports for each item.
How stock comes in#
| What you do | Where | What happens |
|---|---|---|
| Record goods arriving | Goods Receipts | Quantity goes up at the unit cost you enter. The books show goods received but not yet billed (GRNI). Do not also bill the same items as stocked lines (see the warning below). |
| Post a bill with stocked items | Bills | Quantity goes up at the bill's rate. The Inventory Asset account is debited. |
| Give an opening quantity | Items (when creating) | Quantity goes up once, against Opening Balance Equity. |
| Raise a stock adjustment that adds stock | Stock Adjustments | Quantity goes up at the unit cost you enter. |
Goods receipt, then bill#
Hubtoll is built for companies that get the goods first and the bill later. The idea is simple. A goods receipt brings the stock in and shows a waiting amount called GRNI (goods received not invoiced). When the vendor's bill arrives, the bill should clear that waiting amount instead of adding the stock a second time. If the bill's price differs from the receipt's value, the difference goes to Purchase Price Variance, a normal profit and loss account.
Hubtoll guards this. If a bill's stocked lines are worth less than half, or more than double, what the receipt still carries, it refuses with: "The inventory lines on this bill total ..., but goods receipt ... is still carrying ... to be billed. Those are too far apart to be the same delivery. Check the goods-receipt link and the quantities, because clearing it anyway would post the whole difference as a purchase price variance." A receipt that was already billed gives "This goods receipt has already been billed".
Read Buy: vendors, orders, bills and payments for the full buying steps.
How stock goes out#
| What you do | What happens |
|---|---|
| Issue an invoice with stocked items | Quantity goes down at the average. The cost is booked in the same entry as the sale. |
| Record a cash sale on Receipts | Same: quantity down, cost booked with the sale. |
| Dispatch a delivery note | Quantity goes down now, before you invoice. The invoice later books the cost. |
| Issue a vendor credit for stocked items | Quantity goes back out to the vendor. |
| Post a stock adjustment that removes stock | Quantity goes down at the current average. |
Cost of goods sold on a sale#
When an invoice with a stocked item is issued, Hubtoll writes one entry with two pairs of lines:
- Revenue pair: the customer owes you the price (accounts receivable up, sales income up).
- Cost pair: the cost leaves stock (COGS up, Inventory Asset down).
Each sold line remembers the cost it left at. That is why the Journal total of such an invoice is bigger than the invoice total. See Reports and closing the year.
Negative stock is blocked#
You cannot sell or write off more than you have. Hubtoll refuses with: "This would drive Notebook below zero stock (on hand 3, requested 5)".
Ship first, invoice later: delivery notes#
A delivery note is a record that you sent goods to a customer. Use it when goods leave before you bill.
- Open Sales and FinanceSales & ReceivablesDelivery Notes and click New delivery note.
- Pick the Customer and the Delivery date. Add an optional Sales agent (optional).
- Add lines: Item, Qty and an optional Rate (optional). Only stock-tracked items can be shipped.
- Click Create draft.
- When the goods leave, click the Dispatch icon and confirm.
- Later, click Convert to invoice on the dispatched note and confirm.
Rules to know:
- Dispatch cannot be undone. The confirm box says: "Correct a mistake with a stock adjustment."
- Only a draft delivery note can be deleted.
- The invoice for a delivery note must bill exactly the dispatched stocked lines. If the items or quantities differ, Hubtoll says: "A delivery-driven invoice must bill exactly the dispatched inventory lines. The invoice's inventory items/quantities do not match the delivery note".
- The note must be dispatched and not already invoiced, and must belong to the same customer.
- A delivery-driven invoice cannot be voided: "A delivery-driven invoice cannot be voided. Issue a credit note to reverse the sale and restock".
Fix the count: stock adjustments#
Stock adjustments correct the quantity when the shelf and the system disagree: a count difference, damaged goods, or stock you found.
- Open Sales and FinancePayables & BillsStock Adjustments and click New adjustment.
- Type a Reason and pick the Date.
- Add lines: Item and Qty delta (±). Use a plus number to add stock and a minus number to write it off.
- For added stock, enter the Unit cost. Written-off stock leaves at the current average, whatever you type.
- Click Create draft, then click the Post icon and confirm.
Rules: a line cannot have a zero change. An added line cannot have a negative cost. At least one line must exist. If a posted adjustment has no value at all, Hubtoll says: "The stock adjustment value must be greater than zero". Posted adjustments are never edited. To reverse one, post another that does the opposite.
Reports: what you hold and what moved#
Inventory Valuation#
Open Sales and FinancePayables & BillsInventory Valuation. The heading reads Stock on Hand with the total value. Each stocked item shows:
| Column | Meaning |
|---|---|
| On hand | How many units you hold now. |
| Avg cost | Average cost of one unit, in your base currency. |
| Value | On hand times average cost. |
| Reorder level | The level you set, or a dash. |
A Below reorder note appears under an item whose quantity has fallen to or under its reorder level. A normal result is a total value that matches the Inventory Asset balance on your Trial Balance.
Stock Movements#
Open Sales and FinancePayables & BillsStock Movements. Pick an Item and a Period, then click Run. You see every change in order: Date, Item, Type, Qty, Unit cost, On hand / avg after the move, the Source and the Journal number.
The types are Opening, Receipt, Sale, Dispatch, Return in, Return out, Adjust up, Adjust down and Revalue. Movements are a permanent record. A mistake is fixed by a new movement, never by deleting an old one.
Fixing mistakes: why stocked documents cannot be voided#
A plain void would put the ledger back but leave the stock count where it was. They would no longer agree. So Hubtoll refuses to void anything that moved stock:
| Document | What Hubtoll says | What to do instead |
|---|---|---|
| Posted invoice with stocked items | "A posted invoice with inventory lines cannot be voided. Issue a credit note, which reverses the sale and restocks the goods at their sold cost" | Issue a credit note for the money, then fix the stock with a Stock Adjustment (see below). |
| Posted bill with stocked items | "A posted bill with inventory lines cannot be voided. Raise a vendor credit or a stock adjustment to correct the stock and the ledger together" | Raise a vendor credit. |
| Posted goods receipt | "A posted goods receipt cannot be voided in v1. Record a stock adjustment to correct the stock, or process the vendor bill/credit against it" | Post a stock adjustment. |
| Credit note that restocked | "A posted credit note that restocked inventory cannot be voided. Record a stock adjustment ..." | Post a stock adjustment. |
Who can do what#
| To do this | You need |
|---|---|
| See items, stock reports and movements | FIN_MANAGEMENT_READONLY |
| Create and edit items, goods receipts, adjustments, delivery notes (as drafts) | FIN_MANAGEMENT_EDITOR |
| Post goods receipts and adjustments, dispatch delivery notes, issue invoices | FIN_MANAGEMENT_INITIATOR (the editor can too) |
| Void a document (where allowed) | FIN_ACCOUNTANT |
You also need an active Sales and Finance seat. See Seats, plans and subscriptions and the permission reference.
Common questions#
Why is the Journal total on my invoice higher than the invoice total?
The sale of a stocked item posts a second pair of lines for its cost. The journal total counts both pairs. The customer still owes only the invoice total. See Reports and closing the year.
Can I sell an item I have not received yet?
No. Selling more than you hold is refused as below zero stock. Receive it first, or bill it, or record an opening quantity.
How do I count stock at the end of the year?
Count the shelf. For each item that differs, post a Stock Adjustment with the plus or minus difference. Then open Inventory Valuation to see the new value.
Does the reorder level order stock for me?
No. It only marks the item Below reorder on the valuation report.
Can I change an item's purchase price and update old stock?
No. The cost of stock you already hold comes from what you actually paid. A new purchase price only prefills future bills, orders and requisitions.
Do services and non-inventory items affect stock?
No. Only items of type Inventory (stock-tracked) move stock or book a cost of goods sold.