Free tool · no sign-up
Heat input from a welding data log (CSV)
Your power source, your robot controller or your data logger already writes current and voltage against time. This page turns that file into the number a welding procedure is written against: arc energy and heat input for each pass, in kJ/mm and kJ/in, with every arc-on row checked against the current, voltage and heat input window your own WPS imposes.
Paste the rows, or drop the file onto the box. Everything is parsed by JavaScript in this tab — the log is never uploaded, and nothing about it is stored.
One division, done once per pass
Mean power of a pass P = (1/n) · Σ (Ui · Ii) over the n arc-on rows
Arc energy E = P / v in J/mm, with v the travel speed in mm/s
Heat input HI = k · E / 1000 in kJ/mm
Imperial kJ/in = kJ/mm · 25.4
U = arc voltage · I = welding current · v = travel speed · k = thermal efficiency factor of the process
Nothing here is proprietary and nothing is looked up. The relation is the textbook definition of energy per unit length of weld. The factor k is the convention EN 1011-1 and ISO/TR 17671-1 use to separate arc energy, the electrical energy delivered per millimetre, from heat input, the share of it that enters the joint — and this page defaults to k = 1.00, which reports arc energy unchanged, so an untouched setting can never flatter the result. ASME Section IX and AWS D1.1 work in J/in without that factor, which is why two documents can both say “heat input” about the same weld and differ by twenty to forty percent. State the convention next to the number.
The averaging is deliberate: power is summed as the row-by-row product of current and voltage, not as the product of the two column averages. The two differ by the covariance of the signals, so on a pulsed or modulated arc the product of the averages reads low while looking entirely plausible. Averaging instantaneous power is the method ISO/TR 18491 sets out for measuring welding energy; the mean current and mean voltage in the table are there to be read, not to be multiplied.
How to calculate heat input per pass from a CSV data log
From an export off your welding equipment or data logger to a per-pass table you can read against the procedure.
- Paste or drop the log. Any CSV, semicolon or tab file with a current and a voltage column. Comma decimal separators are handled. The file is read in your browser and is not uploaded.
- Confirm how the file is read. Check the time unit the tool reports and set the travel speed column unit. Reading a mm/min column as mm/s is the one mistake that changes the answer by a factor of 60 without looking wrong.
- Set the arc-on threshold and the pass gap. The threshold decides which rows count as welding; the gap decides where one pass ends. A file with its own pass column ignores the gap.
- Choose arc energy or heat input. Leave the process on None and the tool reports arc energy exactly as the log gives it. Select a process, or type your own factor, and the same numbers are multiplied by k.
- Type the window the procedure imposes. Minimum and maximum current, voltage and heat input, from your own qualified WPS. Rows and passes outside those bounds are flagged and counted; nothing is assumed when a field is left empty.
- Read the per-pass table and export it. One row per pass with arc energy and heat input in kJ/mm and kJ/in. The CSV export carries every pass, the travel speed source for each one, and the factor that was applied.
- The units of the travel speed column decide the answer. A column of mm/min read as mm/s makes every heat input sixty times too small, and nothing on screen looks wrong. The tool reads the unit from the header when the header declares one, falls back to mm/min when it does not, and says which it used — but the selector above it is the authority.
- Wire feed speed is not travel speed. Any column whose name mentions wire, feed or WFS is refused as a travel speed source. They are different quantities with similar units, and swapping them produces a number that is wrong by roughly an order of magnitude while remaining perfectly believable.
- Passes come from the arc, or from the file. With a pass, bead, run, layer or weld number column, that column groups the rows. Without one, a pass ends after the arc-off gap you set. Neither is a property of welding, so both are yours to set — and the split is where a per-pass figure is most easily wrong.
- No limit is built in. Every bound on this page starts empty and is typed from your own qualified procedure. Where a heat input window comes from — the range qualified under EN ISO 15614 or under ASME Section IX — is a question about your PQR, not about this calculator.
- An export is a snapshot, not a record. The file is whatever somebody saved, from an instrument whose calibration this page cannot see. For what has to sit around a heat input figure before it counts as evidence, see welding parameter monitoring and ISO 17662 on calibration and validation of welding equipment.
- Cooling rate is the reason anyone measures this. Heat input sets how fast the joint cools, and the cooling time is what decides hardness and toughness in the heat-affected zone — carry the figure into the t8/5 cooling time calculator and the heat input, cooling rate and microstructure guide.
For what a heat input figure has to carry to survive an audit, read digital welding quality records: WPS, PQR and traceability.
Questions engineers ask about this calculation
How do I get heat input per pass out of a welding data logger export?
Three steps, and the tool on this page does all three in the browser. Split the log into passes, which means finding the rows where the arc was on and cutting wherever it stayed off long enough to be a pass boundary — or grouping by the pass column if the file has one. Average the electrical power over the arc-on rows of each pass. Divide that power by the travel speed of the pass to get energy per unit length, and multiply by the thermal efficiency factor if your procedure works in heat input rather than arc energy. A spreadsheet can do the same arithmetic; what takes the time by hand is the pass split and keeping the units straight, which is where a log of tens of thousands of rows usually goes wrong.
How does the tool decide where one pass ends and the next one begins?
By the arc, not by the clock. Every row whose current is below the arc-on threshold you set is treated as arc off and dropped from the averages; a pass ends when the time between two consecutive arc-on rows reaches the gap you set, which catches both a log that keeps recording through the interpass wait and a log that only writes rows while the arc burns. When the file carries a pass, bead, run, layer or weld number column, that column wins and the gap rule is not used at all. Neither rule is a physical fact about welding, so both are inputs: a short-circuiting arc that drops out for a quarter of a second must not start a new pass, and a robot that indexes in two seconds must.
Which column names does the CSV reader recognise?
It matches the words in the header rather than the exact string, so time, t, timestamp and elapsed all find the time column, and current, I, amps, voltage, U and volts find the electrical ones. Travel speed is found from travel, speed or ipm, and a column whose name mentions wire, feed or WFS is never taken as travel speed — wire feed speed and travel speed are different quantities and confusing them is the classic way to get a heat input that is wrong by roughly an order of magnitude. A pass, bead, run, layer or weld number column groups the rows; a column called seq is left alone, because a row counter read as a pass number turns one pass into as many passes as it has rows; a position, x or distance column lets travel speed be derived from distance over time. If no header is recognised at all, the columns are read as time, current, voltage, travel speed in that order and the tool says so.
Why is averaging current and voltage separately the wrong way to get the power of a pulsed arc?
Because the average of a product is not the product of the averages: they differ by the covariance of the two signals. In a pulsed or modulated arc the current and the voltage rise and fall together, so that covariance is positive and the product of the two averages reads low. This tool therefore multiplies current by voltage row by row and averages the result, which is the method ISO/TR 18491 describes for measuring welding energy, and it reports the mean current and mean voltage separately as reference figures only. For a steady DC weld the two routes agree to within the noise, which is why the error hides until somebody switches to a pulsed programme.
What travel speed does the calculation use when the log has no speed column?
It looks in three places, in order. A travel speed column is used first, converted from whatever unit the header declares or the unit you select. Failing that, a position or distance column gives speed as the distance covered divided by the duration of the pass, reading positions in millimetres. Failing both, the fixed travel speed you type is applied to every pass. If none of the three is available the tool reports the electrical figures for that pass and leaves its heat input blank rather than guessing, because a guessed travel speed is indistinguishable from a measured one once it is written into a number.
Does the CSV get uploaded anywhere when I use this tool?
No. The file is read and parsed by JavaScript running in your own browser tab, and no part of it is transmitted. Nothing is stored on our side either: closing the tab discards it. The only thing that ever reaches our server from this page is the email address you type into the export gate, if you choose to export the per-pass table, and the file that then downloads is built in the browser from what is already on the screen.
Can a browser calculation from an exported log stand as the heat input record for a qualified procedure?
Treat it as a working aid, not as the record. It is arithmetic on a file whose provenance nobody can check afterwards: the export could have been trimmed, resampled or produced by an instrument whose calibration is unknown, and the browser adds no evidence of any of that. A record that carries weight names the equipment and its calibration status, the acquisition rate, the weld and the pass it belongs to, and it is produced by a system nobody can edit between the arc and the file. What this page is genuinely good for is the check before that: reading the log you already have, seeing which passes sit outside the qualified window, and knowing which question to ask before the joint is buried under three more layers.
What happens to the rows recorded while the arc was off?
They are dropped from every average and from the arc time, and they are used only to find pass boundaries. That matters more than it sounds: a logger that records continuously through a two-minute interpass wait puts thousands of near-zero rows into the file, and averaging current over all of them drags the mean of a 250 A pass down to a small fraction of the real value. The arc-on threshold is the field that controls this, and it is a setting rather than a standard value — raise it above whatever idle or open-circuit reading your equipment writes when nothing is being welded.
A file you export by hand is a snapshot. A monitored cell records every pass.
This page reads whatever your equipment already writes. WeldTrace records current, voltage and wire feed speed at 25 kHz on every pass, with shielding gas flow alongside, so the per-pass heat input is produced by the cell itself rather than reconstructed afterwards from a spreadsheet somebody remembered to save.