Factory Energy Audit With AI: Find Peak Loads and Idle Waste

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Factory Energy Audit With AI: Find Peak Loads and Idle Waste.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Factory Energy Audit With AI: Find Peak Loads and Idle Waste.

Export your half-hourly meter readings to a spreadsheet, add your tariff rates, and ask ChatGPT or Claude to find two things: the highest half-hour of each month (your peak load) and the lowest consumption outside working hours (your idle waste). Both come from one file. A qualified auditor should then confirm each saving before you spend money.

The idle floor is usually the larger prize for a small plant, and the peak is usually the quicker fix, because peak charges depend on one bad half-hour. The AI does the sorting and the sums; you supply the knowledge of what runs when, which no meter file contains.

Follow me on Instagram@sagnikteaches

What a half-hourly export holds and why it beats the monthly bill

A monthly bill gives you one total per month and, on many tariffs, one number for your highest demand. A half-hourly export gives you 48 readings a day, which is 17,520 a year. That is the difference between knowing your plant cost $11,400 last month and knowing that it cost $740 on a Sunday when nobody was in.

Connect on LinkedInSagnik Bhattacharya

Ask your supplier or meter operator for the interval data in CSV form. Many have a portal download; some will email it on request. If you are on a smart or advanced meter, the data already exists. Some meters record every 15 minutes instead of every 30. The method below is identical: there are 96 readings a day, and you multiply each kWh reading by four, not two, to get average kW. Check which interval your demand charge uses, because a 15-minute peak is sharper than a 30-minute one. If you only have monthly reads, this method will not work and the first job is to request interval data.

Subscribe on YouTube@sagnikteaches

Alongside the file, collect three further things before you open any AI tool:

  • The last three bills, showing the per-unit rate, any standing or capacity charge, and any charge based on your highest demand.
  • Your working pattern: shift start and end times, which days run, planned shutdowns.
  • A one-page list of the big electrical loads (compressors, ovens, extraction, chillers, welders, lighting) with their approximate rating in kilowatts, from the nameplates.

The first two are what the AI cannot guess. A file that shows 180 kW at 03:00 on a Saturday is either a fault or a scheduled oven soak, and only you know which.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Reading the bill first: three lines that matter

Tariffs differ wildly between suppliers, so do not assume your bill matches an example. Ask the AI to find the structure, then confirm it yourself against the paper. Paste the text of one bill (or a photo of it, on a plan that reads images) with names and account numbers removed.

Below is one electricity bill for a small factory. List every separate
charge and tell me for each one: the unit it is measured in (kWh, kW,
per day, per month), the rate, and whether it depends on (a) total
consumption, (b) my highest half-hour of demand, or (c) neither.
If something is unclear, say so rather than guessing. Do not
calculate anything yet.

[paste bill text]

A typical, illustrative reply identifies an energy charge of 15 cents per kWh, a capacity or demand charge of $9 per kW per month based on the highest half-hour, and a fixed daily charge. The third group never changes with behaviour, so ignore it. The first two drive everything below. If the demand charge turns out to be based on something other than your single highest half-hour, such as an average of your three highest, say so in later prompts, because it changes how much a single spike costs.

This step costs a few minutes and prevents the commonest error: assuming a peak costs you money when your tariff has no demand component at all. In that case the peak matters only for the size of your connection, and the idle floor is your whole opportunity.

Cleaning the file so the AI reads it correctly

Meter exports arrive in odd shapes. Before uploading, open the file and check four things.

  1. Units. Is each reading kWh used in that half-hour, or kW of demand? A reading of 19 kWh in a half-hour equals 38 kW average. Mixing the two doubles or halves every answer.
  2. Timestamps. Does a timestamp mark the start or the end of its half-hour? Pick one and tell the AI.
  3. Clock changes. On the days clocks move, you will see 46 or 50 readings, or duplicate times. Mark those two days and exclude them from the first pass.
  4. Estimates and blanks. Some exports flag estimated reads in a separate column. Keep that column.

A before-and-after shows what you are tidying. A raw export might arrive as a single column holding 2026-03-04 06:30:00 | 18.4 | E in every row. Split it into three columns, date-time, kWh and a status flag (E for estimated, A for actual), then add a fourth column that converts to kW by multiplying by two. Ask the AI to do this if you do not want to use Excel's Text to Columns: give it the first ten rows and the instruction, and have it write the formula for you to paste down. You can read more about spreadsheet clean-up in cleaning messy data with AI.

The worked example: a twelve-person metal fabrication shop

This is an illustration, not a real business. A twelve-person metal fabrication shop runs one shift from 06:00 to 14:30, Monday to Friday. It has a compressor, two curing ovens, a fume extraction system, a press brake, two welding bays, and general lighting. The owner pulls 90 days of half-hourly data: 4,320 readings, which sits comfortably inside any chat upload limit.

The owner uploads the cleaned file with this prompt.

This is 90 days of half-hourly electricity data (kWh per half-hour,
timestamp = start of the period) for a metal fabrication shop.
It works 06:00-14:30 Monday to Friday. No weekend or night work.
Clock-change days are removed.

Tasks:
1. Show average kW by half-hour of the day for working days and for
   weekends, as two tables.
2. Find the 5 highest half-hours and list date, day, time and kW.
3. Find the lowest typical consumption outside working hours on
   working nights and on weekends (the baseload), in kW.
4. State your assumptions. Do not recommend any equipment purchase.

An illustrative result: average demand during working hours is about 96 kW. The five highest half-hours are all between 06:00 and 07:30, the top one at 212 kW on a Tuesday. On weekends and weeknights the baseload sits around 30 kW and barely moves. Compare that baseload with the 96 kW working average and one conclusion is plain at once: the plant draws almost a third of its working-hours power while nobody is there.

Now the owner supplies what the AI cannot know. A walk round at 20:00 finds the compressor running unloaded, the extraction fan on a low setting, one oven left in standby and some bay lighting on. The owner decides that 14 kW is a fair necessary floor for the security system, the chiller for a sample fridge, the server cupboard and emergency lighting. The rest is excess.

Putting a dollar figure on the idle floor

Ask the AI to do the sum, and then do it yourself once so you trust the method.

  • Excess baseload: 30 kW minus the 14 kW necessary floor leaves 16 kW.
  • Hours outside production per week: four weeknights of 15.5 hours (14:30 to 06:00) is 62 hours, plus the weekend from Friday 14:30 to Monday 06:00 is 63.5 hours. Total 125.5 hours.
  • Weekly excess: 16 kW times 125.5 hours is 2,008 kWh.
  • Annual excess: 2,008 times 52 is about 104,400 kWh.
  • At 15 cents a kWh, that is roughly $15,660 a year.

That figure is the ceiling, not a promise. You will never remove every watt of the 16 kW, and shutting machines down has start-up costs. A sensible planning figure is a half to three quarters of it, until a measurement says otherwise. The prompt to get this right states the rate, the hours and the floor as inputs and asks the AI to show each multiplication on its own line, so you can spot a slip.

Naming the culprits: the idle register

The baseload is a total. To split it, build a short register: each load, its rating, whether it should be on out of hours, and what to check. Give the AI your load list and the baseload figure and ask it to propose a likely split, as a hypothesis only.

LoadRatingShould it run at night?Illustrative out-of-hours drawWhat to check
Air compressor15 kWNo6 kW unloadedLeaks, auto-stop setting, isolating valve
Fume extraction11 kWNo4 kW low speedTimer, interlock with the bays
Curing oven B18 kWNo3 kW standbyController keeps heating element warm?
Bay lighting3 kWNo2 kWSensor or switch-off routine
Security, server, fridge14 kWYes14 kWLeave alone

The four out-of-hours figures add to 15 kW, close to the 16 kW excess the meter shows, so the hypothesis is plausible. Verify each with a plug-in logger or a clamp meter, or by switching one thing off at a time on a quiet Saturday and watching the next half-hour readings. The AI proposed the table; the walk round and the switch-off test make it true.

Finding the peak and what stacks into it

The top five half-hours were all at start-up. The AI cannot tell you why, but it can show you the shape. Ask it to chart the average profile from 05:30 to 09:00 on working days, and then ask what rise of kilowatts happens between consecutive half-hours.

For working days only, list the average kW for each half-hour from
05:30 to 09:00. Then list the three biggest half-hour-to-half-hour
increases. I will tell you what starts at those times.

The shop sees a jump of 70 kW between 05:30 and 06:00 and another of 55 kW between 06:00 and 06:30. In the first, the compressor, the extraction and both ovens start together. In the second, the two welding bays come on. On the worst Tuesday, a press brake test run lined up with all of it for a reading of 212 kW.

The fix is a sequence, not a purchase. Oven one at 05:45 on a timer, extraction at 06:00, compressor at 06:15, ovens two and welding after 06:30. The shop's demand charge is $9 per kW per month on its highest half-hour. If staggering brings the typical peak down from 212 kW to about 165 kW, a 47 kW reduction, the saving is 47 times $9 times 12, which is $5,076 a year. Again, illustrative, and again to be confirmed by the first month's bill after the change.

Weekday against weekend, and week against week

Once the two big questions are answered, the same file will answer cheaper ones. Ask for the Saturday and Sunday profile separately, because a plant that has weekend overtime or a cleaning crew shows it as a plateau. Ask for week-by-week totals and look for the odd one out. A week that uses 18 percent more than its neighbours with no extra production is a lead.

Here a furniture maker would learn something different from the metal shop. Imagine a furniture workshop with a dust extraction fan and a panel saw. Its profile may show tall, narrow spikes whenever the saw starts, which cost on a demand tariff, while the idle floor is tiny because the extraction stops with the saw. Its priority is the peak, not the baseload. A craft brewery supplier running cold rooms and a warehouse has the reverse: a high floor of refrigeration that never switches off, and a peak that is flat and uninteresting. The same file, a different answer, which is why you read your own data rather than copy a generic checklist.

A mistake that hid a real spike

In one version of the shop's first run, the AI reported a highest half-hour of only 128 kW, far below what the owner expected. The cause was the spreadsheet: the export marked some half-hours with an estimate flag, and when the owner removed flagged rows to be careful, the Tuesday spike was among them, because the meter had briefly lost its communication link and the supplier had filled the gap with an average. Removing estimated rows removed the spike.

The lesson is to ask the AI to count and list excluded rows each time, and to look at them yourself. A prompt line such as "Tell me how many rows you ignored and why, and list the dates" turns a silent edit into a visible one. If a gap lands on a day with a known event, ask the supplier for corrected data.

How to check the result before anyone acts on it

  1. Recalculate one number by hand. Pick any half-hour and confirm that the kW figure is twice the kWh reading.
  2. Sum the AI's weekly totals and compare them with the bill's consumption figure for the same period. They should agree within a couple of percent. If they differ by more, you probably have a units or date-range problem.
  3. Check the top five half-hours against your diary. Each should map to something you can name.
  4. Run a physical test. Switch off the suspected idle loads on a Friday afternoon and compare the weekend baseload with last weekend's.
  5. After any change, wait for a full billing month before you report a saving, and compare against the same period last year or against a weather-similar month where heating or cooling is a factor.

If steps two and four disagree with the AI, the AI is wrong or the data is, not the meter. Do not argue the figures into agreement; find the cause.

Where the AI helps and where a qualified auditor takes over

ChatGPT and Claude are good at reading a tidy file, calculating averages, sorting, noticing a pattern and drafting a plain-English summary. They are poor at knowing your equipment, judging electrical safety, or verifying that a control strategy will not damage a process. A cooling cycle that must not be interrupted, an oven that takes six hours to reach temperature, a compressor that is damaged by frequent starts: all need a person who knows the machine.

A qualified energy auditor can measure power factor, harmonics, individual circuits and real run times with calibrated instruments, and can sign off figures that a lender, a grant scheme or a customer's supply-chain questionnaire may demand. Use your AI-prepared work to shorten the visit: arrive with the profile, the idle register, the load list and the bill structure, and the auditor can spend the day measuring instead of asking basic questions. If you want to see how an audit's findings become a written report, the home energy audit report tutorial shows the same step on a smaller scale.

Connecting the energy file to downtime and production

Energy per unit is a better measure than energy per month. If your production log records units made per shift, add it as a second sheet and ask the AI to calculate kWh per unit by week. A week with high energy and low output suggests long idle periods or rework. Your downtime log analysis will show the repeat stops that leave machines running while nothing is produced, and an OEE calculation will tell you what share of powered time was productive. Joined to the meter data, they let you say that a machine drew 11 kW for 40 minutes during a changeover, which is easier to act on than a total.

The same habit helps planning. If the staggered start works, the plant has spare capacity at the busy half-hour, which matters when you check whether you can take a larger order.

Keeping the privacy of your data in view

Consumption data reveals when a site is empty and when it is busy. Before uploading, strip the account number, meter serial, site address and any supplier-assigned identifiers. Use a business plan if your supplier contract or customer agreements restrict sharing. On a personal ChatGPT plan, data sharing is on by default, so turn off "Improve the model for everyone" under Data controls; on a personal Claude plan, check the model-improvement choice in its privacy settings. One safe alternative is to summarise first in a spreadsheet, using a pivot table of average kW by half-hour, and paste only the summary. The AI loses nothing it needs, and the raw file stays on your computer.

A monthly routine that takes thirty minutes

An audit is one event; waste returns. Set up a monthly repeat and keep the prompts in a saved project so the instructions do not change. A simple version:

  • Download the latest month's interval file on the second working day.
  • Run the same three prompts: profile, top five half-hours, baseload.
  • Paste the results in one summary table, month by month.
  • Flag any month where baseload rises by more than 10 percent or a new top-five peak appears.
  • Walk the floor within the week of any flag.

After six months you have a trend line and a record of what each change did. That record is also what an auditor, a lender or a customer asking about your energy use will want to see. If you would prefer to build the monthly routine with someone alongside, that is something a 1:1 call can cover.

Questions before you upload meter data

Can I upload my half-hourly meter file to ChatGPT or Claude?

Usually yes. ChatGPT accepts spreadsheets and CSV files up to about 50 MB and Claude accepts chat uploads up to 500 MB, while a year of half-hourly readings is about 17,520 rows, a small fraction of either. Remove account numbers and site addresses first, and use a business plan if your contract bars sharing consumption data with third parties.

Do I need sub-meters to find idle waste?

No. The whole-site meter already shows what the building draws when nobody is working, and that overnight and weekend floor is the idle waste. Sub-meters help later, when you need to know which machine is responsible, but the first pass works on one meter and a list of when each machine runs.

How accurate are the savings the AI estimates?

Treat them as a ranked list of leads, not a forecast. The arithmetic is only as good as your tariff figures and your assumptions about what must stay on. An energy auditor with the right instruments should confirm each figure before you spend money on controls or equipment.

What if my meter data has gaps or estimated reads?

Ask for the file again from your supplier or meter operator, or flag the gaps in the prompt so the AI excludes those days. Estimated readings are smoothed guesses and hide exactly the spikes you are hunting. A week of missing data is usually fine; a month is worth chasing.

Further reads

Sources: general energy-auditing practice, the OpenAI file-uploads FAQ and Data Controls FAQ, and Anthropic's upload-files help article (checked November 2026); all figures in the worked examples are illustrative.

Want your meter data turned into a short action list?

On a 1:1 call we can go through your bills and meter export, pick the two or three checks worth doing first, and set up a repeatable monthly review your team can run.

Book a 1:1 call with me