Every number below comes from readings your own people logged and settings your own people chose. Nothing is estimated from other plants, and there’s no hidden model to take on trust. The same page is in the app, under Settings → How the numbers work, where it quotes the values your site uses.

The How the numbers work screen in the app, showing the average daily usage entry with what it uses and a worked example

The same thing, in the app

This page is also a screen in ChemLevel, under Settings → How the numbers work. Several figures have a ? beside them that opens it at the right entry. There, the app quotes the values your plant uses. If you’ve moved the forecast window off fourteen days, it shows your number.

When somebody asks where a figure came from, the answer is two taps away. The step-by-step guide shows where each figure sits on screen.

1. What you are using

Everything else is built on the usage rate, so start here.

Average daily usage

What the container used over the last 14 days, divided by only the time your readings cover in that window.

What it uses
  • Every level reading or cylinder weigh-in in the window
  • Logged usage amounts, on days that no two readings span (every day, on a tank logged by amount used)
  • The forecast window (14 days), set under Settings → Forecasts
Worked throughTwo readings 33 hours and 33 gal apart count as 33 hours of evidence, not whole days. That’s 24 gal a day.

Time after the last reading wasn’t measured, so it stays out of the divisor. The same goes for any stretch between two readings where a delivery landed. The level rose, so what was used across it can’t be read, and counting it would turn a truck into a day of using nothing. A rise of 2% of the tank or less is taken as a misread, and the reading after it shows which reading was off. Readings of 100, 100.3, 99.6, 99.4 and 99.2 gal, a day apart, work out to 0.2 gal a day. Treating the rise as a delivery would make it 0.37. A gap in logging leaves the rate where it was, so a chemical nobody is reading never looks safer than one somebody is. How old the last reading is shows separately, as a stale reading.

The level the forecast uses

Where the container is likely to be now. That’s the last measured level, drawn down at the current rate for the hours since it was measured. Any delivery logged since then that no measurement has shown yet is added on the day it arrived.

What it uses
  • The last reading and when it was taken
  • Deliveries logged since, until a measurement shows them
  • Amounts logged as used since, on a tank logged that way
  • Average daily usage
Worked throughA tank read at 300 gal twelve hours ago, using 20 gal a day, is forecast from 290 gal. Log a 200 gal delivery since then, and it’s forecast from 490 gal until the tank is read again.

A delivery counts until a reading is taken after it was logged, or until a reading shows the level rising by at least half of it. For a delivery logged late, that check looks back a few days before its date. This keeps a delivery the gauge already showed from being counted twice. A delivery fills only the room there was on the day it came, and whatever is used afterward comes off it. On a tank logged by amount used, which is never read, the amounts logged after a delivery count against it until they use it up. On a rack, delivered cylinders go onto the spare stack until a weigh-in counts the spares, and each swap since takes one back off. This estimate is also what the screen shows as the level now, for up to four days after the last reading or log. The reading it runs from is named under it, and so is any delivery it counts. A new reading replaces it. After a day and a half without one, a warning says it may be out of date. Past four days, it stops being drawn down, and the screen shows the last reading and how long ago it was taken. Physical facts come only from readings. An estimate that reaches the order-by level asks for a reading instead of saying there’s room. A spare cylinder comes off the count only when a swap is recorded. On a rack, each cylinder that was drawing at its last weigh-in comes down at its own rate while it pulls. A bank that pulls from several cylinders at once has them all come down together. A cylinder waiting its turn stays as weighed until weigh-ins show it drawing, and takes over if the one ahead of it runs out. One just swapped in is drawn down while it counts as on duty (see Duty, standby and empty). The estimate never goes below empty or above full.

Unusual usage

Compares the last 3 days' rate against the same three days of the week in each of the two weeks before. It’s flagged when it differs from both by more than 35%, in the same direction.

What it uses
  • Level readings across both periods
  • The threshold (35%), set under Settings → Forecasts
Worked through27 gal a day over the last three days, against 20 gal a day on the same days of the two weeks before, is 35% up. It’s flagged wherever the threshold is set below that, and not where it’s set above.

Because it uses the same days of the week, a plant that doses or logs only on weekdays is compared like with like. Its Mondays don’t read as a drop. Comparing against both weeks means one heavy or light day a week or two back does not echo as a change. It needs about 17 days of history before it flags anything. It flags a change in pace. How much is left is the status color’s job, and the two move independently.

Stale reading

A chemical is marked low-confidence once its last reading is more than 36 hours old.

What it uses
  • The time of the most recent reading
  • On a tank logged by amount used, the most recent amount logged instead

The forecast keeps running on the rate it already has. The flag tells you how much weight to put on the number. It doesn’t mean the number is wrong. Once a new reading is typed, it’s compared with where the tank was expected to be. The Log screen doesn’t show the expected figure beside the keypad, so it can’t steer what you type. If the reading is off by more than half a day’s use and two steps of the gauge, the confirmation points it out. If it’s off by more than two days’ use and more than a hundredth of the gauge, the app asks you to check the gauge before saving. That’s usually a slipped digit. A rise the size of a delivery is taken as a delivery while an order is out, and the app asks about it when none is.

2. When you will need more

Runway, the point where ordering can’t wait any longer, and the dates that follow from it.

Days until empty

The projected level now, divided by average daily usage.

What it uses
  • The level the forecast uses
  • Average daily usage
Worked through300 gal at 20 gal a day is 15 days.

It assumes today’s rate holds, so a process change moves it as soon as the next reading lands. An empty container reads zero, even if no usage has been recorded yet.

Days of storage

How long a full tank or rack lasts at average daily usage. That’s what it holds at the full reading, divided by what’s used in a day.

What it uses
  • What the tank holds at its full reading (for a rack, every cylinder in service and every spare slot full)
  • Average daily usage
  • The days this site is required to store, if one is set under Settings → Required days of storage
Worked throughA tank holding 18,600 gal at its full reading, using 680 gal a day, lasts 27 days. That clears a 15-day requirement.

It’s based on the use ChemLevel has recorded. States measure their requirement their own way. Texas, for one, sizes storage at the plant’s design capacity, so a plant running below design gets more days here than the state’s method gives. Days are whole and rounded down, so a tank is never shown meeting a requirement it falls short of.

Reorder point

How much runway you want left when the order goes out. It’s supplier lead time plus safety stock, unless a number of days has been set directly.

What it uses
  • Supplier lead time, on the chemical’s Ordering view
  • Safety stock days, likewise
  • Or a reorder point in days, which overrides both
Worked throughFive days of lead time and seven days of safety stock make a 12-day reorder point.

Days until reorder, and the order-by date

Days until the order has to go out. With an order-by level set on the gauge, the delivery is timed for the first day that begins with the level at or below it, less any delivery cushion. There’s room for a load all that day. The order goes out the reorder point before that. With no order-by level, the delivery is timed to land before the tank runs into its safety stock, and the order goes out one lead time before the delivery.

What it uses
  • An order-by level, if one is set
  • The level the forecast uses
  • Average daily usage
  • Supplier lead time and safety stock, or the reorder point
Worked throughA tank with no order-by level will be empty in 15 days. It has 7 days of safety stock and a 5-day lead time. The truck is planned for day 7, the last whole day before the safety stock would be touched, so the order goes out on day 2.

A physical order-by level wins wherever one is set, because it tracks the mark on the gauge itself. The order-by date then works back from the delivery day, so it can come earlier than the raw day count suggests. With no usage recorded yet, there’s no date to give, and the screen shows a dash. The exception is a level already at its order-by level, which makes the date today. With an order-by level, the delivery is never timed sooner than the supplier’s lead time allows. It’s also never timed after the last delivery day before the tank would run into its safety stock. If the order-by level is reached sooner than a vendor can come, the delivery moves to the first day one can, and the order is due today. If it’s reached too late, the delivery moves up to that last day. The order then goes out the lead time before it, or on the order-by level’s own date if that comes first. On a cylinder rack, the spares stand in for the level. With an order-by number of spares, the delivery is timed for the first day that begins with the stack down to that number. Without one, it lands before the last spare goes onto the rack, with the safety stock still in hand, so the rack always has a spare. For a rack that keeps no spares, it lands before the gas runs out.

Next delivery date

With an order-by level, it’s the first day that begins with the level projected at or below it, less any delivery cushion, or the first delivery day after that. With none, it’s the last day a truck can come before the tank would dig into its safety stock, because a late truck means running dry.

What it uses
  • The days deliveries are accepted, under Settings → Delivery info
  • Supplier lead time
  • Days until reorder
Worked throughSay deliveries are taken Monday, Wednesday and Friday. A tank with room from a Saturday gets Monday. A tank with no order-by level that needs its truck by a Saturday gets the Friday before.

With no delivery days set, every day counts as available. The delivery is never dated sooner than the supplier’s lead time allows. With an order-by level, it’s never dated after the day a tank without one would get. An order-by date already in the past shows as today, because the order needs placing now. The order-by date is also today when the delivery had to wait for the lead time. The same goes for a tank with no order-by level when no delivery day comes before it would dig into its safety stock. The delivery is then the first day there is.

3. The color on the card

One rule, applied the same way to every chemical and every rack.

Green, amber and red

Red once the order-by date is today. Amber when it is no more than half the reorder point away. Green before that.

What it uses
  • The order-by date
  • The reorder point
Worked throughWith a 12-day reorder point, amber starts six days before the order-by date and red on the day itself.

The amber band scales with the reorder point, so a chemical on a three-week lead time gets proportionally more warning than one that arrives next day. Red means the order can’t safely wait any longer. It doesn’t mean empty. The color follows the order-by date, so it always agrees with the date beside it. When that date moves onto a day deliveries are taken, the color moves with it.

4. What to order

The quantity proposed, and the orders still expected before the year is out.

Recommended order quantity

Your standard load, capped at the space there will be in the tank when it lands.

What it uses
  • The standard or full load size on the chemical. For a full load with no size set, the middle of the last five deliveries, once there are three.
  • Tank capacity
  • The level the tank will be at on the morning of the delivery day. That’s the level now, drawn down at average daily usage. For a delivery timed to an order-by level, it’s at or below that level, less any cushion, unless the delivery had to be brought forward to land before the safety stock.
Worked throughA 2,000 gal standard load, going into a 3,000 gal tank that will hold 1,400 gal when it lands, is capped at the 1,600 gal of headroom. The recommendation is 1,600 gal.

The cap means no proposed delivery can overflow the tank. With no load size on file and fewer than three deliveries to go on, the headroom is the recommendation. The figure is rounded to a sensible ordering quantity before it’s shown. On a cylinder rack, the space is the empty spare slots on the delivery day. They’re counted one whole swap at a time, the same way the orders projected to year end count them.

Orders projected to year end

The container is run forward at its current rate to the end of your budget year, with an order placed each time it reaches its reorder point. A cylinder rack is run forward one swap at a time, the same way as its spare trigger, so the spares on each row are whole cylinders. Where a year of past usage is on file, the rows past the next month follow last year’s pattern. An order already placed counts on its own delivery date. One placed as a full load counts at your full load size as it’s set now, so correcting that size corrects the orders already out.

What it uses
  • Average daily usage
  • The recommended order quantity
  • The reorder point
  • Your budget year start
  • Delivery days
  • Orders already placed

Where there isn’t enough on file to run the container forward, it falls back to how often deliveries have been arriving. Either way, the dates move with usage, and a hot week pulls every one of them in. No delivery is dated sooner than the supplier’s lead time allows. One needed sooner is shown on the first day the lead time allows, with what the container will be down to by then, or how long it would sit empty. With an order-by level, none is dated after the last delivery day before the tank would run into its safety stock either. An order due now whose first possible delivery falls after the budget year ends is still listed. It’s marked as next year’s and left out of this year’s count and spend.

Level by day

The tank is run forward one day at a time for the next 90 days, the same way the orders projected to year end run it. Those orders land on their dates, both the ones already placed and the ones projected. Each row is what the gauge should read that morning. Each delivery day is shaded and shows what the gauge reads once that delivery is in. A delivery adds what fits, so the level rises on a delivery day and then runs down again.

What it uses
  • Average daily usage
  • The orders projected to year end
  • Orders already placed
  • Your order-by level
  • How the tank is read

The first row is now, not this morning. The shaded days are the same dates as the orders projected to year end, and they continue past the end of the budget year where the 90 days do. A delivery that comes before the tank is down to its order-by level is marked Above order-by. Either the schedule brought it forward to the last delivery day before the safety stock, or an order was placed for that day. An order already placed that won’t all go in says Won’t fit, with how much would be left on the truck. Where a year of past usage is on file, the rows past the next month follow last year’s pattern.

5. Cylinders

Racks are counted in bottles and swaps, so several figures work differently from a tank’s.

Duty, standby and empty

A position reads empty at or below 5% of a full cylinder once nothing more is coming out of it. Above that, it’s on duty if the cylinder in it has lost more than 1% of a full one over the last 3 days, and on standby if it hasn’t. A cylinder just swapped in has nothing of its own to go on until it is weighed again, so it goes by what its position has been giving up. The exception is a bank that runs one cylinder at a time with another already on duty. There, the new cylinder is on standby, waiting its turn.

What it uses
  • The latest weigh-in for each position
  • The full weight of a cylinder
  • Consumption over the last few days
  • The other cylinders in its bank

Empty is checked first. A cylinder at or below 5% stays on duty, with a countdown, if its last weigh-in found it lighter than one 12 or more hours before. On a ton container, 5% is 100 lb, which can be most of a day’s gas. Within 1% of empty, it reads empty either way. Between weigh-ins, a cylinder on duty also reads empty once its weight now, drawn down at its own rate, is within 1% of empty. The countdown then moves on to the next one. Duty is judged over 3 days, so a quiet night at a plant that batch-doses doesn’t flip a working cylinder to standby and back. Once the cylinder now in the position has weigh-ins of its own, only those count. What came out of the cylinder swapped off says nothing about the one swapped on. A swap recorded without weighing takes the full weight, so the first weigh-in after it has nothing to compare with. A bank runs one cylinder at a time unless two of its other cylinders are on duty. It also counts as running more than one if, over the forecast window, more than half of its weigh-ins that found any cylinder lighter found two or more lighter. Where nothing else in the bank shows as on duty, there’s no telling which cylinder is feeding, and the position’s own record stands.

Days until changeover

When the cylinder now on duty reaches empty, worked out from its own weigh-ins and the rate it’s being drawn at.

What it uses
  • Weigh-ins for the duty position
  • The rack’s usage rate
  • The full weight of a cylinder

Each position is forecast from its own history, so a rack part-way through a bottle doesn’t get the whole rack’s average applied to it. Its speed leaves out the weigh-in interval a cylinder ran out or came off in, since it drew for only part of that interval. A cylinder changed early with no heel entered is counted as run empty, as the swap sheet says. Its speed doesn’t count that gas as drawn in the hours before the swap. On a cylinder that draws many times a scale’s error a day, the speed also leaves out any interval that lost no more than that error. That’s a waiting cylinder weighed twice. On a bank that runs one cylinder at a time, the interval a cylinder took over in counts as both cylinders’ drops together over the whole interval. The one it took over from stopped partway through, so between them they drew what the process did. If the old one was changed early with no heel entered, and couldn’t have run out by then, the new one took over when the old one came off. The new one is then measured from the swap. This combined count is used only where the changeover is clear. That means the new cylinder had waited two weigh-ins, nothing else in the bank drew, and the result comes close to the old one’s own speed. The old one also has to have run out or come off. Coming off early with no heel entered counts only if the swap was recorded at the time. A pair with no purposes set is taken as one process. A bigger rack with none set is left as weighed.

Changing a cylinder before a day off

When a cylinder is due to run out on a day nobody changes cylinders, it’s the last changeover day before then. That’s the day the cylinder has to come off.

What it uses
  • The days cylinders are changed, set on the rack
  • When each cylinder on duty is due to run out
Worked throughWith changeovers Monday to Friday, a cylinder due to run out on Saturday has to be changed by Friday. On Friday that’s an alert as well as a line on the Dashboard.

It’s worked out to the day. The forecast is an average of weigh-ins, so a cylinder due at 2 a.m. on Monday counts as a Monday one. A rack with no days set, or all seven, is never flagged.

Usage across a swap

What the old cylinder gave up before it came off, plus what the new one has given up since.

What it uses
  • The old cylinder’s last weigh-in
  • What was left in it when it came off, when that was recorded
  • The new cylinder’s weigh-in
  • The full weight of a cylinder
Worked throughA cylinder weighed 260 lb in the morning and came off that afternoon with 250 lb still in it. The next morning its replacement weighs 1,860 lb. The swap counts 10 lb from the old cylinder and 140 lb from the new one, 150 lb in all. Counting the 250 lb that went back as used would make it 400 lb.

With nothing recorded, the old cylinder is taken to have run empty, and all of its last weigh-in counts as used. That’s right for a cylinder run down before it was changed. For one changed early, say ahead of a weekend, it’s too high by whatever was left in it.

Days until the spares run low

How long until the spare stack falls to the number you said to order at, counted one swap at a time.

What it uses
  • Spare cylinders on hand, with any delivered since they were last counted
  • The order-by number of spares
  • When each cylinder on the rack is due to be swapped
  • The rack’s usage rate
Worked throughEight spares with an order-by of three is five swaps away. The forecast is the date the fifth of those swaps falls due.

Swaps the weigh-ins can date are used as measured. Past those, the rack is running on bottles that arrived full, so the rest are spaced one cylinder’s worth of gas apart. Spares are one shared stack, and the reorder math doesn’t split them by what they’re for.

6. Money

Spend so far, where it should be by now, and where it will end the year.

Spend so far

What the deliveries logged inside the current budget year cost, plus anything recorded as spent before tracking began.

What it uses
  • Logged deliveries and their costs
  • Your budget year start
  • Spend from before the app was tracking, typed in or read off pasted invoices

It counts deliveries, so a load that’s ordered but hasn’t arrived isn’t spend. That keeps the figure reconcilable against your invoices. The earlier spend is the figure typed in. With none typed, it can come from past deliveries you pasted in. Every load that budget year before ChemLevel’s own delivery record for that chemical begins needs a cost. The figure is then read off those invoices instead. ChemLevel’s record begins with its first delivery on or after the day it started measuring the chemical, so an older delivery logged afterward does not move it. A pasted load on the same day as one ChemLevel logged is the same delivery, counted once. A partial set of costs gives no figure, since a figure from only some of them would read short.

Expected by now

The annual budget spread evenly across the budget year and taken up to today.

What it uses
  • The annual budget for the chemical
  • Your budget year start
  • Today’s date
Worked throughA $60,000 budget on day 90 of a 365-day year expects $14,795.

It’s a straight line. It describes the past and nothing else. A chemical whose deliveries cluster early will read over it and can still finish the year comfortably under budget.

Projected year end

Spend so far, plus what the orders still expected this year are likely to cost.

What it uses
  • Spend so far
  • Orders projected to year end
  • What this chemical’s recent deliveries have cost
  • The unit cost on the chemical, until a delivery this budget year or last has a cost to go on
  • Last year’s pattern, where there is one

Prices come from your own invoices, weighted toward recent ones so a price rise shows up in the projection. Until a delivery logged this budget year or last has a cost, the orders are priced from the unit cost set on the chemical instead. With no more orders due this year, spend so far is the projection, price or no price. With orders still to come and neither price, there’s nothing to price them from. The figure is then spend so far, labeled not enough yet to project. It tells you whether you’ve already gone over, but not whether you’re heading over.

Following last year’s pattern

Past the next month, usage follows how last year moved from this time of year on, at this year’s level. A busy summer and a quiet winter both show up in the projection.

What it uses
  • Past deliveries, pasted in under Settings → Budget year
  • ChemLevel’s own readings, once they reach back a year
  • Average daily usage
Worked throughA chemical used at 7,300 lb a day now fell last year from about 7,300 a day in September to 4,400 in December. It’s projected to fall the same way, to about 4,400 a day by December.

The next month always runs at today’s rate, and last year eases in over the month after that. Each past delivery is spread across the days since the one before it, because a truck replaces what went out since the last one. Where too little of last year is known, the projection stays at today’s usage. When the two year-end figures differ by 10% or more, both are shown.

The color on a budget

It’s based on the projected year end. Green is under budget, amber is in a narrow band just over, and red is clearly over.

What it uses
  • Projected year end
  • The annual budget

That’s why a chemical can be running ahead of pace and still be green. Pace describes the past. The color is about the end of the year, which is the question a budget asks.

The lab’s year end

This year’s lab spend so far, plus the rest of the year at the lab’s pace. The pace is what its orders came to over the last 12 months, as a daily rate.

What it uses
  • Lab orders placed this budget year, shipping included
  • Lab orders over the last 12 months
  • Anything carried in from before ChemLevel
  • The lab budget, where one is set
Worked throughA lab that spent $11,220 this year, in the 327 days since its first order, spends about $34 a day. With 38 days left, it ends the year near $12,524.

The pace is taken over a year, not the budget year so far, because a lab orders in lumps about once a month. Early in a year, one order or none would set it. Under two months of orders, there’s no projection. Spend carried in from before ChemLevel counts in the year but not in the pace, because it has no dates.

The forecast window and the unusual-usage threshold are set per site. If your plant has changed them, the app quotes your values. Everything else above works the same everywhere.