| Lap | Time | Strokes | SWOLF | Pace /100 | Distance | Copy |
|---|---|---|---|---|---|---|
| {{ row.index }} | {{ row.timeDisplay }} | {{ row.strokesDisplay }} | {{ row.swolfDisplay }} | {{ row.paceDisplay }} | {{ row.distanceDisplay }} | |
| Add laps to see results. | ||||||
SWOLF scores are a simple way to describe how efficiently you swim a single pool length by combining how long it took and how many strokes you needed. Many swimmers treat it like a swimming SWOLF calculator for spotting technique drift when effort rises and for tracking changes across repeated sets. Lower values usually mean you covered the same distance with less time or fewer strokes under similar conditions.
Record a pool length and then list your laps as split times with stroke counts, and the tool returns per lap SWOLF, pacing, and session level averages that are easy to compare. A short summary calls out total distance, overall pace, and the best and worst laps so you can see both consistency and outliers at a glance. If your splits include extra standing time at the wall, you can subtract a fixed rest amount to make lap to lap comparisons cleaner.
For example, if four lengths stay close in both time and strokes, your SWOLF line should look steady and your spread between best and worst laps stays small. If later laps climb while strokes also rise, the score helps you notice fatigue before it becomes a full form collapse. When you repeat the same workout later, compare the average score and the spread rather than chasing a single perfect lap.
SWOLF is a blended score, so it can improve because you take fewer strokes while slowing down, or because you go faster while getting sloppy. Compare like with like, and keep drills, kick sets, and sprint work separate when you want fair comparisons. Treat the number as a clue for what to review next, not a verdict on your whole stroke.
Each lap is treated as one pool length with two measured quantities, split time and stroke count. SWOLF is computed per lap by adding those quantities after an optional rest deduction, which is useful when your recorded split includes time spent at the wall.
Alongside SWOLF, the tool computes pace per one hundred of the selected pool unit, plus session totals and averages. The lap table and chart both use the adjusted split time, which keeps the visual trend aligned with what the SWOLF math is using.
In interpretation terms, lower SWOLF values generally indicate better efficiency when pool length, stroke, and effort level are comparable. Values that differ by a point or two can be normal timing noise, but a steady rise across laps is often a clearer signal than any single spike.
Comparisons are most meaningful when pool length and unit are unchanged and when you keep the set type consistent. Use SWOLF to compare efficiency within a session and pace per one hundred to compare speed across sets, and always sanity check values that look implausible.
| Symbol | Meaning | Unit or Datatype | Source |
|---|---|---|---|
tlap |
Recorded split time for one length | seconds | Input |
r |
Rest deduction applied to every lap | seconds | Input |
tadj |
Adjusted swim time, never below zero | seconds | Derived |
s |
Stroke count for one length | count | Input |
Lm |
Pool length converted to meters for distance math | meters | Derived |
SWOLF |
Per lap efficiency score | points | Derived |
pace100 |
Time per one hundred based on the converted pool length | seconds per 100 m equivalent | Derived |
Suppose a 25 m pool, a rest deduction of 0.5 s, and a lap split of 26.2 s with 22 strokes.
If later laps climb into the mid 50s, you are either slowing down, taking more strokes, or both, and the trend matters more than any single lap.
| Parameter | Meaning | Unit or Datatype | Notes |
|---|---|---|---|
pool_ |
Pool length for one lap | number | Used with the selected unit |
pool_ |
Length unit | "m" or "yd" | Yards are converted to meters for distance math |
laps_ |
One lap per line as time and strokes | text | Comma separated, whitespace allowed |
rest_ |
Fixed rest removed from every lap time | seconds | Clamped to zero or above |
| Constant | Value | Unit | Notes |
|---|---|---|---|
| Yard to meter | 0.9144 | m per yd | Applied when pool unit is set to yards |
| JSON rounding | 3 | decimals | Totals and per lap numbers are rounded to 0.001 |
PSI_TO_BAR |
0.0689476 | bar per psi | Heads-up Present in the script but not used by this analyzer |
s suffix.| Field | Type | Min | Max | Step or Pattern | Error text |
|---|---|---|---|---|---|
| Pool length | number | 10 | — | Step 0.5 | Enter a valid pool length. |
| Lap entries | text | — | — | One per line, time,strokes |
Could not read lap N. Use "time,strokes" e.g., 25.8,21. |
| Lap time | number | > 0 | — | Seconds or minutes:seconds, decimals allowed | Could not read lap N. Use "time,strokes" e.g., 25.8,21. |
| Strokes | number | > 0 | — | Numeric | Could not read lap N. Use "time,strokes" e.g., 25.8,21. |
| Rest deduction | number | 0 | — | Step 0.1 | — |
| Laps present | count | 1 | — | At least one parsed lap | Add at least one lap. |
| Input | Accepted families | Output | Encoding or Precision | Rounding |
|---|---|---|---|---|
| Lap list | Newline separated time,strokes |
Lap table with SWOLF, pace, and distance | Seconds displayed as mm:ss.s or ss.s | Time 0 or 1 decimal, SWOLF 1 decimal |
| Pool length and unit | Meters or yards | Total distance summary and per lap distance | Distance math uses meters internally | Summary distance displayed as whole number |
| Computed session | Derived numbers | Structured JSON payload | Pretty printed, 2 space indentation | Numbers rounded to 3 decimals |
| Lap table | Derived rows | Tabular export file | File name swolf_ |
Uses displayed strings |
| Chart and chart data | Derived series | Image and data exports | Files named swolf_ with png, webp, jpg, or csv |
Chart data uses 1 decimal for SWOLF |
| Session report | Derived rows and summary | Document export | File name swolf_ |
Uses displayed strings |
s or unit words, will produce a parse failure.For background context, consult swim coaching guidance on stroke efficiency and pacing, facility standards for pool course lengths, and sport science literature on fatigue and technique drift.
Training splits can be personal, and processing is browser-based with no lap values transmitted by this script, though an external charting script may be downloaded when needed.
Swim lap splits become SWOLF and pace so you can compare efficiency across a set.
25.8,21
26.2,22
26.5,22
27.0,23
Pro tip: when your pace improves but SWOLF rises, you may be trading speed for extra strokes, so check both lines before changing your training plan.
Inputs are processed in memory and the script does not include upload calls for lap values. The chart view can load an external charting script if it is missing, but the lap numbers themselves are still computed locally. Some hosting shells add their own persistence, which is outside this package.
SWOLF is only as accurate as your timing and stroke counting, and small changes can be normal noise. It is most useful for comparisons within similar sets, and trends across laps are usually more meaningful than a one point difference. A fixed rest deduction can improve fairness, but it is still an approximation.
Enter seconds as a number, with an optional decimal, or enter minutes and seconds using a single colon. Add a comma and the stroke count after the time on the same line. Example format is time,strokes on each line.
You can select yards for the pool unit, and per lap distance displays in the selected unit. Internally, distance math uses a yard to meter conversion and the exported JSON reports meters. If values look inconsistent, treat pace and totals as meter normalized and rely on the lap table for per length context.
Once the page and its helpers are loaded, the core calculations run locally. The chart view may be unavailable if the external chart script cannot be loaded in your environment, but the lap table and JSON can still be generated.
This package does not present pricing, accounts, or license text in its interface. Treat usage terms as defined by the hosting site or the repository license if it is provided alongside the package.
Put one lap on each line as time,strokes with no extra words. Times can be seconds or minutes and seconds, and strokes must be a positive number. If a line fails, the tool reports the lap number to help you fix it quickly.
A borderline change is when SWOLF shifts slightly but your pace and strokes are otherwise stable. That can happen from timing precision, turn differences, or a single missed stroke count, so look for repeated movement across several laps before drawing conclusions.