Today
Nothing waiting
Stock
| SKU | Description | Type | On hand | Website | Drift | State |
|---|
Website stock
Sync log
Reconciliation
What is being compared, and against what
The sources
| System | Compared against | How it arrived | Captured | Rows | State |
|---|
Load what a system says
Matches waiting on a person
| System | They call it | Proposed part | They say | We say | Decide |
|---|
In one system and nowhere else
| System | Code | Description | They say | Why it did not match | Say which part |
|---|
Every part, biggest money first
| System | Part | They call it | Matched | Compared on | We say | They say | Gap | Worth | State | Decide |
|---|
Decide
Is the gap closing
| Run | When | Differs | Only there | Only here | Ambiguous | Money apart |
|---|
Movements
| When | SKU | Change | Why | Bin | Recorded by |
|---|
Bins and shelves
| Location | Bin | Assigned part | On hand | Parts in it | Change |
|---|
Labels
Build
Start a build
Open a work order
Shop load
Open orders and when they are due
| Order | Part | Left to make | Minutes | Due | Priority | Set by | Change |
|---|
What we make
| Part | Description | Components | Operations | Unit cost | At a run of | On hand |
|---|
Unit Register
| Serial | Part | State | Write-up | Where | Marked | By |
|---|
Marking setup
Lots and Heats
A vendor says a heat is bad. What did we ship out of it?
How much has a heat behind it
| Part | Description | On hand | With a heat | No heat on record | Heats |
|---|
Record a heat
Every lot
| Heat | Part | Kind | Cert | Vendor | Received | On hand | Where |
|---|
Transfers and counts
Move stock to another building
Transfers
| Transfer | From | To | Reference | State | Shipped | Received | On the truck | Value | Age |
|---|
Counts waiting for review
Count variance
| Counter | Counts | With a variance | Units out | Value out |
|---|
| Part | Description | Counts | Units out | Value moved |
|---|
Corrections
| When | Reason | Note | Part | Bin | Change | Posted by |
|---|
Material plan
What to buy
| Part | Description | Buy | By | Vendor | Last price | Roughly |
|---|
The arithmetic
| Have | Wants it | Coming | Leaves | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Part | State | Description | On hand | Work | Sales | All of it | Ordered | Making | Transit | Vendor | Projected | Reorder | Needed by |
Outside processing
Steps somebody else does
| Part | Op | What they do | Vendor | Standard | Per unit made | Turnaround | Out now |
|---|
Send parts out
Jobs
| Job | Part | Vendor | What they do | State | Sent | Back | Still out | Value out | Age |
|---|
Standard against actual
| Job | Part | Vendor | Processed | Standard | Actual | Difference | A piece |
|---|
Sales
Raise an order
Orders
| Order | Customer | How they buy | Their ref | State | Ordered | Reserved | Shipped | Value | Invoiced |
|---|
Free to promise
| Part | Description | List | On the shelf | Reserved | Free to promise | Numbered cans free |
|---|
Customers
Add or correct an account
| Code | Name | How they buy | Level | Terms | Orders | Open | Invoiced |
|---|
Invoices
| Invoice | Order | Customer | Terms | Dated | Due | Amount | State |
|---|
Web orders
Reports
Purchasing
Purchase orders
| Order | Vendor | Their ref | Ordered | Lines | Value | Status |
|---|
Costing
What a part costs, and why
Inventory value
| Part | Description | Type | On hand | Unit cost | At a run of | Source | Value |
|---|
Did the rates come back?
Record what the shop actually spent
Open a period
The machinery behind those numbers
Overhead: the two pools, and the line between them
Margin or markup, and which of them this is
This box is margin. Margin is measured against the price; markup is measured against the cost. A part costing 100 sold at 150 is a 50% markup and a 33.3% margin — same transaction, two numbers, and they are never equal.
Type a markup in here and the list price comes out low, every time, by more the higher the number: intending 40% markup and typing 40 gives a price of 166.67 instead of 140. Nothing on any screen will look wrong. You will simply be about 16% cheaper than you meant to be, on everything, until somebody works out why the year was flat.
If you think in markup, convert once: margin = markup ÷ (1 + markup). A 40% markup is a 28.6% margin. A 100% markup — doubling the cost — is a 50% margin.
It drives ONE number: the list price. Dealers and distributors buy at a discount off that list, so what they pay and what you really earn on them is different again, and it is printed per channel on the part panel above rather than implied by this one percentage.
What each machine's pool covers
Machine rates
| Work centre | Machine | Annual pool | Basis hrs | Variable/hr | Labour/hr | Attend. | Machine rate | All-in |
|---|
New machine rate
How the five numbers become an hour rate
Machine rate = pool ÷ basis hours + variable per hour. That is what one hour of this machine costs to own and run, before anybody is stood at it. The table above prints it back as Machine rate so you can check it against the number in your head.
All-in rate = machine rate + labour per hour × attendance factor. Attendance is the one that is usually left at 1 by accident. A shop where one person runs three machines that are all cutting is paying one wage across three rates — put 1 in all three and every quote carries three wages for one person, and the shop looks unprofitable on paper while the bank account says otherwise.
Where to find basis hours if nobody has ever counted them. Most controls keep a lifetime and a since-reset spindle-run counter; read it, reset it, read it again in a month, multiply. Failing that, take the weeks you actually run, the hours a week the machine has work in front of it, and knock off holidays, maintenance and the weeks it sat waiting on material. A machine available 2,080 hours a year and cutting 1,400 is normal, not bad.
A rate is never edited. Recording one closes the rate it replaces from the date forward and keeps it, so re-costing March still uses March's rate. That is why this is a form and not an editable cell.
Freight and duty
Not sure what belongs in a box?
How costing works
What this is
This carries one part all the way through. A 7.62 titanium can: one tube, seven baffles, an end cap and a QD mount, cut on four machines. Every figure is printed as the product computes it, to four decimals, so you can check any line against the number in your head.
It is a worked example, not a reading of your catalogue. The rates below belong to one shop and were typed in once. Your own machines will produce different money. The arithmetic does not change, and every step names the box on the Costing screen the number comes from.
The run size used throughout is 10, with a run of 200 beside it. Setup is charged once per run, so the run size is most of the answer. Step 7 is where that shows up.
The machine hour rate, one per machine
What one hour of one machine costs to own and run, before anybody is stood at it. It is entered on Costing → New machine rate.
The annual fixed pool is a year of what this one machine costs whether it cuts or not. The finance payment or its depreciation, its service contract, the floor space it stands on, insurance carried on the machine itself. Cost that belongs to one machine goes in that machine's pool and nowhere else.
Annual basis hours are the hours it actually cuts. Not 2,080, and not the hours it is available. A machine open 2,080 hours a year and cutting 1,400 has a basis of 1,400. Use 2,080 and the pool is recovered over 49% more hours than the shop ever bills, so every quote off that rate is quietly too cheap.
Variable per hour is only what stops when the spindle stops. Power, air, coolant. Last year's spend on it, divided by the basis hours above.
| Machine | Annual pool | Basis hours | Variable /hr | Machine rate /hr |
|---|---|---|---|---|
| Doosan Lynx 2100 turning centre | 48,000.00 | 1,400 | 6.00 | 40.285714 |
| Haas VF-2 machining centre | 61,000.00 | 1,500 | 7.25 | 47.916667 |
| Rotary welding cell | 22,000.00 | 1,100 | 4.10 | 24.100000 |
| Finishing and assembly bench | 9,000.00 | 1,600 | 1.20 | 6.825000 |
The rate is held to six decimals and the screen prints it back in the Machine rate column, so you can check it the moment you save. The dearest hour on this list is seven times the cheapest. That gap is not an accounting curiosity, and step 9 is what it costs a shop that ignores it.
Labour is charged separately, not inside the rate. Each rate carries a labour per hour and an attendance factor beside it. Labour per hour is what the hour costs the company, wage plus payroll tax plus insurance and benefits, not what lands in the pay packet. Attendance is how much of an operator the machine needs while it runs: one person tending two machines is 0.5, one machine with somebody stood at it is 1.
The plantwide rate, for everything no machine can be blamed for
The front office. The bookkeeper and the accountant's fee. Quality control that is not a routed operation. Shipping boxes and foam. The building rent left over after each machine's own footprint. Software. The owner's own hours spent running the business rather than cutting metal. All of it is real, all of it has to be recovered, and none of it can be traced to a machine.
The basis is set on Costing → Overhead. Machine hours is the default and is right where the machines do the work. Labour hours suits a shop that is mostly hand assembly. Material cost turns the rate into a multiplier of material, which suits a shop that mostly buys and resells. Pick whichever one moves when the shop gets busier.
This shop is on machine hours at 14.00 an hour. Its four rated machines carry 5,600 basis hours between them, so:
If the pool is bigger than 78,400 the rate is too low and the year ends short. That is not a guess you have to live with: step 10 shows where the product measures it.
Material
Entered on the part itself, under What a part costs, and why, on the components table. Quantity per is for one finished unit, never for the run: seven baffles a can is 7, whether the order is for one or a hundred.
Scrap is what you expect to lose forever, not what went wrong last month. It is typed as a percentage and the model holds it as a fraction, so 5 on the screen means five per cent. At 5% on the baffles the cost carries 73.68 blanks to get 70 good ones out of a run of ten cans.
| Component | Qty per | Scrap | Blanks for 10 | Unit cost | Cost for 10 |
|---|---|---|---|---|---|
| Titanium tube stock, 7.62 | 1 | 2% | 10.204082 | 11.125654 | 113.5271 |
| Baffle blank, 7.62 | 7 | 5% | 73.684211 | 6.200000 | 456.8421 |
| End cap | 1 | 0% | 10.000000 | 8.750000 | 87.5000 |
| QD mount | 1 | 0% | 31.000000 | 31.000000 | 310.0000 |
| Material for a run of 10 | 967.8692 |
The unit cost of a bought part is the moving average of what you actually paid, weighted by what is on the shelf. That is why the tube is 11.125654 and not a round number. It moves when a receipt lands at a new price, and a freight invoice that turns up two weeks later moves it again without adding a single unit to stock.
Material per unit does not care about the run size. 96.7869 at a run of 10, and 96.7869 at a run of 200. Hold that thought for step 7, because everything else on this part moves.
Machine time, labour and tooling
The three numbers the shop enters per operation, on the same panel as the components, under How it is made.
Setup minutes are per run and they are the clock on the wall. From the last good part of the last job to the first good part of this one. Tearing down, fixturing, tool changes, touching off, the first article, and the walk to the crib for the tool that was not on the cart. Time the person, not the spindle.
Cycle minutes are one part, door close to door open, and they are charged on every part. Take it off the control if it shows a cycle timer, or run three parts and divide. Then decide once, for the whole shop, whether load and unload sit inside that number, and hold to it on every operation of every part.
Tooling per unit is the consumable, over the parts it survives. An insert at 18.00 with four usable edges, each edge good for 30 parts, is 18.00 / 120 = 0.15 a part. Not the machine, not the fixture, not the holder. Count the edges you actually get rather than the ones on the box.
| Op | Operation | Setup | Cycle | Minutes for 10 | Machine | Labour | Tooling |
|---|---|---|---|---|---|---|---|
| 10 | Turn tube, thread both ends | 45 | 22 | 265 | 177.9286 | 60.7292 | 18.5000 |
| 20 | Profile and port baffles | 60 | 41 | 470 | 375.3472 | 107.7083 | 24.0000 |
| 30 | Stack and weld | 20 | 35 | 370 | 148.6167 | 191.1667 | 0.0000 |
| 40 | Finish and assemble | 10 | 18 | 190 | 21.6125 | 76.0000 | 0.0000 |
| For a run of 10 | 135 | 1,295 | 723.5050 | 435.6042 | 42.5000 |
1,295 minutes is 21.5833 machine hours for the run. That figure is about to be used again, so it is worth reading twice.
Overhead, the second tier only
Tier one is already paid. Every machine minute above was charged at that machine's own hour rate, so the Doosan's finance payment and the Haas's service contract are inside the 723.5050 of machine cost. Nothing more is owed on them.
Tier two is applied here, once, on the whole run:
On a labour hours basis it would be the attended hours instead, which for this run is 15.4583 rather than 21.5833. On a material cost basis it is a multiplier of the 967.8692. Same pool, three ways of spreading it, and the one to pick is the measure that actually moves when the shop gets busier.
The total
| Bucket | For a run of 10 | Per unit |
|---|---|---|
| Material | 967.8692 | 96.7869 |
| Machine time | 723.5050 | 72.3505 |
| Labour | 435.6042 | 43.5604 |
| Tooling | 42.5000 | 4.2500 |
| Overhead, plantwide | 302.1667 | 30.2167 |
| Cost | 2,471.6450 | 247.1645 |
That is the whole model. Five buckets, one lot size, and a stored unit cost that always has the run it was costed at printed beside it. A unit cost with no run size next to it cannot be reproduced by anybody, which is why the screen never shows one on its own.
Why ten cost more each than two hundred
The same part, the same rates, the same day. Only the run size changed.
| Per unit | Run of 10 | Run of 200 | Cheaper by |
|---|---|---|---|
| Material | 96.7869 | 96.7869 | 0.0000 |
| Machine time | 72.3505 | 64.0568 | 8.2937 |
| Labour | 43.5604 | 39.9128 | 3.6476 |
| Tooling | 4.2500 | 4.2500 | 0.0000 |
| Overhead | 30.2167 | 27.2242 | 2.9925 |
| Cost a unit | 247.1645 | 232.2307 | 14.9338 |
Material did not move, because every can eats the same metal. Tooling did not move, because every part indexes the same insert. What moved is the setup, and here is the whole of it:
| Op | Machine | Setup min | Machine | Labour | Overhead | Cost of the changeover |
|---|---|---|---|---|---|---|
| 10 | Doosan Lynx 2100 | 45 | 30.2143 | 10.3125 | 10.5000 | 51.0268 |
| 20 | Haas VF-2 | 60 | 47.9167 | 13.7500 | 14.0000 | 75.6667 |
| 30 | Rotary welding cell | 20 | 8.0333 | 10.3333 | 4.6667 | 23.0333 |
| 40 | Finishing bench | 10 | 1.1375 | 4.0000 | 2.3333 | 7.4708 |
| Setup, once per run | 135 | 87.3018 | 38.3958 | 31.5000 | 157.1976 |
Nothing else moved. The entire difference between a can costing 247.16 and the same can costing 232.23 is one changeover, spread over twenty times as many parts. That is what setup minutes are, and it is why they are the number worth getting right before any other on the screen.
Margin, and the price
The Target margin box is margin. It is not markup. Margin is measured against the price you charge. Markup is measured against the cost you paid. They are never equal and the gap grows with the number.
Type 40 into that box meaning markup and every price leaves 26.67 on the table on a hundred dollars of cost. Nothing on any screen looks wrong. The year is simply flat.
If you think in markup, convert once: margin = markup / (1 + markup). A 40% markup is a 28.6% margin. Doubling the cost is a 100% markup and a 50% margin.
This shop is set to 38%, so the can works back to:
The target margin does exactly one job: it sets the list price. What a dealer or a distributor pays is a discount off that list, and what the shop actually earns from them is a different number again. The Costing screen prints it per channel rather than implying it from one percentage. With the list price on file at 1,249.00 and a cost of 247.1645:
| Channel | Discount off list | Pays | Margin actually earned |
|---|---|---|---|
| Retail, direct and web | 0% | 1,249.00 | 80.2% |
| Dealer | 25% | 936.75 | 73.6% |
| Distributor | 40% | 749.40 | 67.0% |
The list price on file here is well above the 398.65 a 38% target implies. That is normal and it is not a fault: the target sets a floor to work back from, and what the market pays is a decision the shop makes. The screen prints both figures side by side so nobody mistakes one for the other, and it marks any channel whose price has fallen to or below cost.
Why there are two tiers instead of one rate
Most small shops carry a single blended overhead rate. One number an hour, applied to everything. It is simpler and it is wrong in a way that never shows up on a screen, so it is worth seeing what it would do to the part above.
Roll this shop into one rate. 140,000 of machine pools, 25,705 of variable spend at those machines, 78,400 of plantwide cost, over the 5,600 hours the machines actually cut:
| Op | Machine | Minutes | Two tiers | One blended rate | Error |
|---|---|---|---|---|---|
| 10 | Doosan Lynx 2100 | 265 | 239.7619 | 192.5233 | 47.2386 light |
| 20 | Haas VF-2 | 470 | 485.0139 | 341.4564 | 143.5575 light |
| 30 | Rotary welding cell | 370 | 234.9500 | 268.8061 | 33.8561 heavy |
| 40 | Finishing bench | 190 | 65.9458 | 138.0356 | 72.0897 heavy |
| Machine plus overhead, run of 10 | 1,295 | 1,025.6716 | 940.8214 | 84.8502 light |
The Haas hour costs 47.92 to own and the bench hour costs 6.83. One blended rate charges both of them 43.59. So the Haas work comes out 29.6% light and the bench work comes out at 2.09 times what it really costs. The machine-heavy part is being subsidised by the hand work, inside a single number, with nothing on any screen to show it happening.
On this can the two errors partly cancel and it prices 8.49 a unit cheap, which is bad enough. On a part that never leaves the bench nothing cancels at all. Sixty minutes of setup and thirty a piece on the finishing bench, at a run of 10:
The shop would quote that part at more than double its cost, lose the work to somebody who costs properly, and conclude that hand assembly is unprofitable. It is not. The rate was.
The order to fill it in, and the one check that keeps it honest
- A machine rate for every work centre. Pool, basis hours, variable, labour, attendance. An operation routed through a machine with no rate stops the whole part from being costed, on purpose, because time with no rate would otherwise cost nothing while still pulling overhead.
- Tick what each pool covers. One list per machine, one for the plant. A category ticked in both tiers is refused.
- The plantwide basis and rate.
- The target margin. Margin, not markup. Step 8.
- Per part: the components. Quantity for one finished unit, and the scrap you actually expect.
- Per part: the operations. Setup, cycle, tooling. Step 4.
- Press Show me the cost at the run sizes the shop really builds at. Quote everything at a run of one and the shop looks expensive on volume work. Re-cost the catalogue at a run of 1,000 and the value of the stock on the shelf drops for no physical reason.
Then, at the end of a month or a quarter, open a period and record what was actually spent. The Did the rates come back? panel compares what the rates collected into everything that was built against what the shop really paid out.
Absorb 180,000 and spend 220,000 and every quote that came off those rates was 18% too cheap, and the panel says so, per machine, so the fix lands on the rate that was wrong rather than on all of them. That is the difference between a costing system and a costing spreadsheet: the spreadsheet never tells you it was wrong.
Accounting
Vendor bills from receipts
| Bill | Order | Vendor | Terms | Raised | Due | Amount | In the queue |
|---|
Postings
| Reference | Type | Date | Amount | Status | QuickBooks id | Note |
|---|
Sync log
| Started | Trigger | Mode | Queued | Posted | Failed | Note |
|---|
Setup
Load your parts from a spreadsheet
Add or correct a part
| Part | Description | Type | Unit | Tracking | Reorder at | Cost | On hand | Change |
|---|
Buildings and bins
Add a building
| Code | Name | Kind | Bins | On hand | Status | Change |
|---|
Add or re-label a bin
| Building | Bin | Assigned part | On hand | Status | Change |
|---|
Vendors
Add or correct a vendor
| Name | Contact | Phone | Terms | Status | Change |
|---|
Adjustable settings
What changed, and who changed it
| When | Setting | From | To | Who |
|---|
System
People
| Username | Name | Role | Status | Sessions | Last seen | Change |
|---|
Reset a password, set a PIN, change a role
Floor devices
| Device | Log id | Handset | Issued | Expires | Last seen | Status | Change |
|---|
Open sessions
| Username | Log id | From | Signed in | Last seen | Expires | Change |
|---|