Planning tool · 4 min read

Calculate available stock from a movement ledger

Change a fictional stock ledger and explain on-hand, reserved, held and available pieces. Try receipts, returns, rejected movements and duplicate events with a local calculator and downloadable worksheet.

Part 2 of 5 · Plan your app's workflow · Optional workflow recipe

Plan a stock movement rehearsal in Overskill.

Overskill turns your written instructions into an app you can review and refine. Use this worked example to decide what your version should do before you build it.

You'll leave with: An explained movement ledger and expected stock balances to build and test in Overskill. Replace the sample rules with your own, then continue to your build brief.

New to Overskill? See how it works · All five parts

On this page

A box contains 24 wooden craft discs. Four are held for inspection. Before promising an order, the useful number is 20 available pieces—not the 24 physically in the box.

This Part 2 workflow recipe helps you specify a small stock app in Overskill. Use the local calculator to change a fictional movement, explain the resulting balance and take a worked ledger into your build brief. It does not read or change real inventory. Download the worksheet and download the example ledger to check the same case without JavaScript.

Separate what is here from what you can promise

For this example, on hand = available + reserved + held. Reserved pieces are promised to orders but still physically present. Held pieces are present but unavailable pending inspection. Incoming pieces are expected, so they sit outside that sum until received.

Shopify's inventory-state documentation makes a similar distinction between physically held, available, committed, unavailable and incoming quantities. The rules below are our narrower fictional policy; they are not a Shopify connection or a claim that an Overskill app already follows them.

We use one SKU, one location and whole pieces. Reservations are one pooled count, not proof of what a particular order may receive. For individually tracked reusable equipment, use the separate equipment checkout workflow.

Change a movement and inspect its effect

Try the stock ledger

Fictional wooden craft discs, one SKU at one location. Change the counts or a movement to see the full ledger recalculate. This does not change any real stock. Section jumps keep your inputs. Reloading, leaving this guide or resetting clears your changes.

Opening counts

Use whole pieces, 0–1,000,000 for opening counts and 1–1,000,000 per movement. A blank is unknown, not zero. Reserved plus held cannot exceed on hand.

Seven worked movements, in this order

Receipt and inspection are assumptions you supply. A requested return does not add pieces. Reservations are pooled here; this exercise does not check a particular order.

Enable JavaScript to change the example. The worksheet below contains the full static answer key.

On hand
32
Reserved
0
Held
5
Available
27
Incoming
0

Static worked answer: 32 on hand = 27 available + 0 reserved + 5 held. Incoming remains outside this sum.

Scroll the ledger horizontally to inspect every balance.

Attempt / eventMovement / piecesDispositionOn handReservedHeldIncomingAvailable
Try one more attempt

Download the worked and blank worksheet · Download the worked ledger CSV

Build from your stock rule

Review and edit the brief before choosing Start build. This form carries only the edited text; it does not import your local ledger or verify any stock. Supply your example separately. Building uses normal account access and credits.

Start with the worked values: 24 on hand, zero reserved, four held and ten incoming. The ledger accepts these seven movements in order:

Scroll horizontally to compare all columns.

Movement On hand Reserved Held Incoming Available
Opening counts 24 0 4 10 20
Reserve 6 24 6 4 10 14
Receive 10 usable pieces 34 6 4 0 24
Dispatch 4 reserved pieces 30 2 4 0 24
Cancel the remaining reservation of 2 30 0 4 0 26
Accept a physical return of 3 into hold 33 0 7 0 26
Release 2 after inspection 33 0 5 0 28
Record 1 lost available piece 32 0 5 0 27

Dispatch removes physical pieces and their reservation together. It does not reduce availability a second time. A physical return increases on-hand stock but cannot be promised while it is held. Releasing an inspected piece changes its availability, not its physical presence.

The fictional final balance divides 32 physical pieces into 27 available, zero reserved and five held; incoming stock is outside the physical total.

Authored final checkpoint after seven accepted movements. Physical stock and available stock answer different questions.

Open full-size image

Now change the dispatch from four to six. The later cancellation of two no longer has reserved pieces to release, so it is rejected. The accepted movements finish at 25 available. The result keeps the rejected attempt visible; it does not silently count the cancellation or call the entire plan applied.

Keep unknowns and repeated actions visible

Try reserving 28 pieces after the original worked sequence. Only 27 are available, so the new attempt changes nothing. Repeating accepted event EV01 exactly also changes nothing; reusing EV01 for a different quantity is a conflict. Those are two different explanations for an unchanged balance.

Clear a required count. The aid removes the previous result and disables its export. A blank count is unknown, not zero. If the actual stock count, physical receipt or inspection result is unknown, get that evidence before treating a number as available.

The exercise keeps accepted movements and rejected or duplicate attempts in the exported result. It cannot verify a physical count, an order, a return, simultaneous users or a saved inventory system. Reloading or leaving clears your local work; download or copy the visible result first if you need it.

Turn the rule into an Overskill build brief

Open the app brief builder. Describe your SKU and unit, the opening counts, permitted movements, inspection responsibility and what should happen when evidence is missing. Include the expected answers above. The internal-tools starting page offers the broader workflow entry; no stock template or connection is assumed here.

Require authorized staff to change movements and inspection holds. Test direct reads, edits and exports with an unauthorized account before using real records. A hidden button is not a permission check. If you need per-order reservations, multiple locations or partial receipts, add those requirements explicitly and test them separately.

Review the generated brief, edit its input fields and choose Start build. The link imports no ledger; supply your rules and fictional cases separately. Building uses normal account access and credits. Keep purchasing, prices, refunds, accounting and stock-value claims outside this quantity exercise.

Keep building

Specify your stock rules.

Review and edit the stock brief. Supply your ledger separately; the form imports no records.

Return to the stock rehearsal →