Reflow profile analysis
Paste a thermocouple log: peak, time above liquidus, soak, ramp and cooling slopes and ΔT for every thermocouple, checked against a process window with the PWI.
Input
Paste, open a CSV, TSV, TXT or XLSX file (up to 20 MB), or drop it on the field. Files are read in this browser only.
Columns (9 possible, found by the header names)
Time (s) TC1 TC2 0 24.8 24.9 1 25.2 25.1
1 row = 1 sample time
Columns: tab, ; or ,
Decimals: 12,5 or 12.5
Paste measurements to start.
One row per sample time, one column per thermocouple, as a profiler exports it (delete any lines above the header). The time may be seconds, mm:ss, hh:mm:ss or a date and time; it must increase from row to row. An empty thermocouple cell leaves that sample out for that thermocouple only.
Runs in this browser. Data is not uploaded or stored.
Results
PWI below 100 % means every thermocouple is inside every window limit; the PWI is the largest share of a half window used (see the Method). The window values are unverified examples.
How the profile is analysed
A reflow profile is the temperature of thermocouples attached to a board as it passes through the oven. The tool reads the exported log (a time column and one column per thermocouple), measures the usual profile figures for every thermocouple and compares them with a process window. Between two samples the temperature is taken as a straight line.
Figures per thermocouple
- Peak: the highest recorded sample (no smoothing), and the time of its first occurrence. ΔT at peak = highest − lowest peak of all thermocouples: how evenly the board heats.
- Time above liquidus (TAL): the total time at or above the liquidus (217 °C for SAC305), with the crossing times interpolated between the samples. If the profile dips below the liquidus and comes back, every interval above it is added and the number of intervals is shown (with a note); a profile that never reaches the liquidus has a TAL of 0 s.
- Soak time (default 150 → 200 °C) and average ramp (default 150 → 217 °C, (to − from) / time): from the last upward crossing of the first temperature to the first time the second is reached. “Not reached” when the profile never gets to the second temperature, “starts above” when it is already there at the first sample.
- Slopes over a window w (default 10 s) ending at each sample t: (T(t) − T(t − w)) / w, only where t − w is inside the log. The maximum rising slope is the largest over the whole profile, the maximum cooling slope the largest fall over windows that start at or after the peak. With w equal to the sampling interval this is the point-to-point slope; profilers usually smooth over a few seconds, so use the same window as the figures you compare with.
- Time to peak from 25 °C: from the last upward crossing of 25 °C before the peak; a profile that starts at or above 25 °C is measured from its first sample (marked with *).
Process window and PWI
- Each criterion has an optional minimum and maximum; a value passes when min ≤ value ≤ max (an empty side is not checked; a value that cannot be measured fails).
- Process Window Index, as published by KIC (recalled from memory, not verified against their documents): for each thermocouple and criterion, index = |value − (min + max) / 2| / ((max − min) / 2) × 100 %; the PWI of a thermocouple is its largest index and the PWI of the profile the largest of all thermocouples. Below 100 % every value is inside its window; the lower, the closer to the centre. A criterion with only a maximum (a slope, a time) uses 0 as its minimum; one with only a minimum is checked but not part of the PWI.
- The default window (peak 235–250 °C, TAL 45–90 s, soak 60–120 s, rising slope ≤ 3 °C/s, cooling ≤ 6 °C/s, time to peak ≤ 480 s) is a set of typical example values for SAC305, unverified: they are not taken from a standard or from a datasheet. Use the window of your solder paste.
Worked example (the tool's example)
- The example is a synthetic profile of four thermocouples sampled every second for 360 s (board edge, a 0402 resistor, a QFN and the centre of a BGA), made by the reference script; it is not a measured oven.
- The board edge peaks at 252.4 °C at 226 s, the BGA centre at 238.7 °C: ΔT at peak = 252.4 − 238.7 = 13.7 °C.
- The board edge is above 217 °C for 62.9 s, the BGA for 45.7 s, just inside the 45–90 s window (index |45.7 − 67.5| / 22.5 = 97 %).
- The peak window is 235–250 °C: centre 242.5, half width 7.5. The board edge index is (252.4 − 242.5) / 7.5 = 132 %: above 100 %, so its peak fails and the PWI of the profile is 132 %. The other three thermocouples pass every criterion.
- The board edge's maximum rising slope over 10 s is 2.97 °C/s (at 32 s; index 2.97 / 3 = 99 % with 0 as the minimum), its cooling slope after the peak 4.79 °C/s.
Common mistakes
- Comparing slopes taken over different windows: a point-to-point slope of noisy data is much higher than the slope over 10 or 20 s.
- Using a SAC305 window for another alloy or paste: the liquidus, the peak and the TAL depend on both.
- Judging a profile by one thermocouple: put them on the largest and the smallest thermal masses (a BGA centre, a board edge, a small passive) and look at ΔT.
- A log in °F read as °C, or minutes read as seconds: choose the units under the data (a peak above 350 °C is flagged).
Input and files
- The time column is the first column or the one named Time (also Zeit, Laikas, Timestamp, Date, Clock). Times may be numbers (seconds or minutes), mm:ss or hh:mm:ss with a decimal fraction, or dates and times (2026-03-02 10:15:03, 02.03.2026 10:15:03, 3/2/2026 10:15:03). Clock times that go back by more than 12 hours are taken as passing midnight. A repeated or earlier time is an error that names the rows.
- Thermocouples are the number columns, by header (TC1, Probe 2, Channel 3, T4 …) or in order, up to eight. Headers become the names in the results. Temperatures may use a decimal comma; then the results do too.
- Files: CSV, TSV and TXT are read as if pasted (UTF-8, UTF-16, otherwise Windows-1257). XLSX: choose the sheet and the columns or a cell range; formula cells use the value Excel last saved, dates are kept as text. Files up to 20 MB are read in this browser only and never uploaded.
- XLSX files are read with SheetJS Community Edition 0.20.3, Apache License 2.0 (license text at the end of this file).
Questions
- What is time above liquidus (TAL)?
- The time a thermocouple spends at or above the liquidus temperature of the solder alloy (217 °C for SAC305). This tool adds up every interval above it; when a profile dips below the liquidus and comes back, it says how many intervals there were.
- How is the Process Window Index (PWI) calculated?
- For every thermocouple and every criterion with limits, the distance of the measured value from the middle of the window is divided by half the window width and given in percent; the PWI is the largest of these. 0 % is the centre of every window, 100 % the edge, above 100 % a value outside the window. A criterion with only a maximum uses 0 as its minimum.
- Why do the slopes depend on the slope window?
- Thermocouple data are noisy, so the slope between two neighbouring samples jumps around. The tool takes the change over a window, (T(t) − T(t − window)) / window: a longer window gives a smoother, lower maximum slope. Use the same window as your paste datasheet or profiler when you compare numbers.
- Where do the process window values come from?
- The defaults are typical example values for SAC305 written from general practice (peak 235 to 250 °C, TAL 45 to 90 s, soak 60 to 120 s from 150 to 200 °C, rising slope at most 3 °C/s, cooling at most 6 °C/s). They are not verified against a standard or a datasheet: always use the window your solder paste supplier gives.