Skip to content
Opening Balances: Stock

Upload opening stock balances

Step 1 of the opening balance migration: bring each branch’s item quantities and cost values across from the legacy system, before go-live. It comes first because it establishes the stock ledger valuation that the inventory control account in the general ledger is reconciled against (why the sequence is mandatory). Read how the file import reads your file before you fill in the template.

  1. Stock balance upload: prepare, fill in and import the template, then verify it.

Stock balance upload

  • Purpose: Import item quantities and cost values from the legacy system into BigLedger.
  • Timing: Perform this process before go-live, after confirming physical stock counts.
  • Preparation:
    • Create a vendor named ONE TIME SUPPLIER in the Supplier Applet.
    • Export the item balance report from the old system separately for each branch or warehouse location.
    • Ensure item codes in your import CSV match the newly configured item codes in BigLedger exactly.
    • For serialized items, prepare a single cell containing comma-separated serial numbers, matching the physical quantity.

What to put in the stock upload template

Start from the Purchase Invoice (Internal) template and fill in these columns; delete the rest. The separator, the header rules and the POSTING_STATUS behaviour are all described in how the file import reads your file.

  • One row per item per branch. BRANCH_CODE is the destination branch — take it from the branch listing in the Organisation applet rather than from memory. The upload check only looks at the heading, so a wrong code gets through it and shows up later in the error column of the imported file, not at the top as a rejection.
  • ENTITY_CODE is ONE TIME SUPPLIER — the one-off vendor you created in preparation. Opening stock has to arrive from somebody, and this is the supplier the stock is “bought” from so the entry has a counterparty that will never appear in a real creditor report.
  • TXN_DATE is your stock cutoff date, the same date on every row (2024-12-31 in this guide).
  • HDR_REF_NO — use OPENING BALANCE. It becomes the reference on the purchase invoice BigLedger creates, which is what makes the opening entry recognisable on a supplier ledger a year from now.
  • SETTLEMENT_OR_ITEM_CODE is the BigLedger item code, and UOM the unit of measure exactly as it is spelled in your item master.
  • QTY is the counted quantity and UNIT_PRICE_INCL_TAX the unit cost. Delete any AMOUNT_INCL_TAX column — if it carries a value it overrides quantity × unit cost and your stock valuation will be wrong while the quantity looks right.
  • ITEM_SERIAL_NO only for serialised items: one cell, serial numbers separated by commas, and as many of them as the quantity says.
Stock Upload CSV Structure
Stock upload CSV structure matching the Purchase Invoice template.

Updating the purchase invoice template

Branch code, transaction date, currency, HDR reference and entity code:

  • Enter the branch code (check the correct branch code from the Organisation Applet branch listing).
Branch Listing
Verify correct branch codes in the Organisation Applet.
  • Set the transaction date to 2024-12-31.
  • Enter OPENING BALANCE for the HDR Reference.
  • Enter MYR for the currency column.
  • Enter ONE TIME SUPPLIER for the Entity Code (ensure the supplier is created in the Supplier Applet first).
  • Enter the UOM based on your Item list in BigLedger (e.g., PCS, UNIT).

Screenshot withdrawn; a recapture from a demo tenant is on the list.

Item details:

  • Update the following columns by copying from the legacy system reports to the Purchase Invoice template:
    • Item Code
    • Quantity
    • Serial Number (use a comma , to separate multiple serial numbers in one cell)
    • UNIT_PRICE_INCL_TAX

Item Details Screenshot 1
Map item codes and quantity columns.
Item Details Screenshot 2
Map serial numbers and unit prices.

Finalizing the purchase invoice upload file

Validate data:

  • Ensure all headers, quantities, costs, and serial numbers are accurate.
  • Delete any extra or blank columns — an unnamed column left behind by a spreadsheet is reported as a wrong column and fails the whole file before any row is read.
Validate Data Screenshot
Validate column alignment and clean the file.

Export and import to BigLedger:

  • Export as CSV: Download the updated template as a CSV file.
Export as CSV
Export the finalized sheet as a CSV file.

Executing the stock import

  1. Open the Purchase Invoice (Internal) Applet.
  2. Click Import File, click the + button, drag your prepared CSV file, and click submit.
    Import File Upload
    Upload the CSV file in the Purchase Invoice (Internal) Applet.
  3. Check for errors by clicking into the imported file list. A status of true means uploaded successfully; false indicates errors. Scroll right to read the red error messages.
    Check Upload Status
    Check status and resolve errors in the import log.
  4. Go to the Purchase Invoice (Internal) menu list. The imported data will be saved as DRAFT.
  5. Click into the draft document, verify line details, and click FINAL to post the stock opening balances.
    Finalize Purchase Invoice
    Review details and click Final to commit stock balances.

Post-upload verification

  • Open the Stock Availability applet and filter by branch to verify that quantities and cost valuations match your legacy stock reports. The Purchase Invoice (Internal) is the document that books stock (quantity signum +1) — a plain Purchase GRN would record the receipt without moving stock, which is why this procedure uses the invoice.

Common mistakes

  • A leftover AMOUNT_INCL_TAX column. The quantities are right, the valuation is not, and there is no error — the amount silently overrides quantity × unit cost. This is the one to check first when opening stock value does not agree with the legacy report but the quantities do.
  • Mismatched item codes. An item code that does not exist fails its row, not the file, so the import reports a partial success and you have to read the error column to find out which rows never arrived.
  • Serial number count. The number of comma-separated serials in ITEM_SERIAL_NO has to equal QTY exactly.
  • Wrong UOM. PCS and pcs are not the same string to your item master.

What success looks like for this part

The check under Post-upload verification above passes for every branch: quantities and cost valuations on Stock Availability match your legacy stock reports. When all five areas are loaded, run the whole migration’s success check.

Next: the customer and supplier balances.

Related documentation

Last updated on