Pace chart builder

Your coefficients. Your whole roster. One grid.

Put every athlete's baseline time down the side, set the zone columns across the top with your own multipliers, and read the whole chart in mm:ss.00. Then copy it into your spreadsheet as text that stays text.

Precision
Coefficients

Roster grid

AthleteBase time
= 133%
= 120%
= 110%
= 100%
= 95%
example
read as 1:00.00
1:19.801:12.001:06.001:00.000:57.00
 
 
3 athletes · 5 zones

The top row is just an example so the columns have something to show. Nothing here is locked. Put your own time or your own name over it, or use the empty rows, and the example drops out.

One press puts the grid on your clipboard: one value per cell, and every time stays text, so 1:19.80 stays 1:19.80. The CSV is the same grid as a file, and a file gets re-read on import, so tell your importer to leave text alone. A link reopens the chart, so bookmarks still work next season. Rows and zones that cannot compute stay out of all three, and the line above says which.

Quick math · one time, one coefficient

Operation
--:--.--
Nothing to copy yet. Type a duration and a coefficient.

Type a time however you already write it. The last two digits are the seconds, so 150 reads as 1:50.00. One colon means mm:ss. Two colons mean h:mm:ss. Hundredths are optional, and seconds of 60 or more roll over, so 1:75 and 175 both read as 2:15.00. The line under each entry shows how it got read, so nothing gets misread quietly.

The columns are yours. Rename one to whatever your program calls it, set the coefficient your program uses, and press the operator square to switch that column between multiplying and dividing. Every cell in the column recomputes as you type.

The easy column at each precision

  • Sample swimmer
    • 1:19.80hundredths
    • 1:19.8tenths
    • 1:20whole seconds

One calculation and one formatter feed every surface here, so the grid, the quick-math answer, a clipboard copy and a downloaded file print the same characters. Rounding is half up and it happens once, at the precision shown, never again on a number that was already rounded. A column or a quick-math answer set to divide is genuinely divided, so a 1:00.00 base over 1.15 reads 0:52.17.

Pace grid format reference: time entry, coefficient notation and rounding

A duration is only unambiguous once you know how the digits are read and where the rounding happens. Both rules are enumerable, and between them they decide whether a pace chart survives the trip into a squad spreadsheet. The grammar, the notation, the rounding contract and the two Sheets formulas that reproduce it are below.

Why your sheet fights you

Google Sheets does not multiply durations. It multiplies datetimes.

A duration in a Sheets cell is not a count of seconds. It is a fraction of a day, rendered back through whatever number format Sheets guessed while you typed. One minute is 1/1440 of a day, so one minute times 1.33 is 0.00092361 of a day: arithmetically perfect, and unreadable on a pool deck. The two formulas below are the honest answer if you want to stay in the sheet, and the second one runs the same arithmetic this page runs for a whole roster.

The formula, both ways

The naive version
// A2 was typed straight in: 1:00.00
=A2 * 1.33

// A2 already holds a fraction of a day under a
// format Sheets picked for you, so the product
// comes back as a bare decimal, or as a clock
// reading with no hundredths left in it.
// Either way the .80 is gone.
The version that survives an edit
// A2 is TEXT: "1:00.00"
// The "0:" prefix forces an h:mm:ss reading,
// so 1:00.00 parses as one minute, not one hour.
=TEXT(
   ROUND( TIMEVALUE("0:" & A2) * 86400 * 1.33, 2 ) / 86400,
   "m:ss.00"
 )

// -> 1:19.80, and it is still 1:19.80 after the
// next edit. Swap * 1.33 for / 1.15 and the
// cell reads 0:52.17.

Three things are doing the work there. Multiplying by 86400 leaves the fraction behind and gets you a plain count of seconds. Rounding to two places pins the answer to hundredths once, in the same place and the same direction this page rounds, so a later edit cannot round an already rounded number a second time. And TEXT hands back a string, so the cell is text from that point on and no format guess can reinterpret it.

Entry grammar

How a typed time is read

The last two digits are seconds, colons fill in the rest, and the reading is echoed before it multiplies through a row.

TypedRead asRule
1501:50.00No colon: last two digits are seconds.
2:07,452:07.45One colon: mm:ss. A comma reads as a decimal point.
1:23:451:23:45.00Two colons: h:mm:ss.
:45.50:45.50Leading colon: no minutes.
1:752:15.00Sixty or more seconds carry into minutes.
0.9990:01.00A third decimal rounds half up and carries.
TypedWhat it says
lane 4letters and symbols don't read as a time
1.2.3two dots isn't a time we can read
1:2:3:4that's more colons than a time has
24:00:0024 hours is as far as this goes

A rejection names itself. The row keeps the characters you typed and sits out of the chart and both exports until the time reads.

Notation

Coefficient notation, and what a divide column really does

Two notations, one stored integer. 1.20 and 120% are the same coefficient, so switching display mode moves nothing, and a trailing % reads as a percentage in either mode.

TypedActive modeReads back as
1.33multiplier= 133%
1.0725multiplier= 107.25%
95percent= 0.95
112.5%multiplier= 112.5%
RejectedWhat it says
1.000054 decimal places is as fine as a coefficient gets
123.456%2 decimal places is as fine as a percentage gets
101100 is as high as a coefficient goes
ColumnBase 1:00.00Base 20:00.00
÷ 1.050:57.1419:02.86
× 0.95240:57.1419:02.88
÷ 1.100:54.5518:10.91
× 0.90910:54.5518:10.92
÷ 1.150:52.1717:23.48
× 0.86960:52.1817:23.52
÷ 1.200:50.0016:40.00
× 0.83330:50.0016:39.96
÷ 1.250:48.0016:00.00
× 0.80:48.0016:00.00

A divide column divides. It is not a multiply column carrying an inverted coefficient, and at four stored decimal places the inverted version does not always land on the same time.

Only 1.25 has an exact reciprocal at four places, and it is the one pair that agrees at both bases. The others drift, further as the base grows, so the operator belongs on the column rather than folded into the number.

Rounding

Precision, and the one place rounding happens

Rounding is half up, taken from the exact value, applied once, at the unit you are looking at. Formatting truncates to that unit and never rounds again, so nothing rounds an already rounded number a second time.

PrecisionUnitShape
Hundredths0.01 smm:ss.00
Tenths0.1 smm:ss.0
Whole seconds1 smm:ss
CellHundredthsTenthsWhole seconds
1:00.00 × 1.331:19.801:19.81:20
1:00.00 ÷ 1.150:52.170:52.20:52
1:00.00 × 1.0751:04.501:04.51:05
1:00.00 × 1.00751:00.451:00.51:00

Each reading is the same exact value rounded once at its own unit, not the hundredths reading rounded twice.

Ties go up: 64.50 seconds reads 1:05 at whole seconds, 60.45 seconds reads 1:00.5 at tenths. Entry stops at twenty-four hours but the readout does not, so 12:00:00 × 2 reads 24:00:00.00, and a cell holding 23:59:59.60 reads 24:00:00 at whole seconds.

Clipboard and file

Paste behaviour, stated honestly

TargetWhat happens
Google SheetsCopy for Google Sheets is the button built for this target. Every value lands in its own cell and carries a text hint beside it, so 1:19.80 reads back the way it reads here.
ExcelThe clipboard still lands cell per cell. The hint that keeps a value text in Sheets is Sheets specific, so Excel applies its own column formatting to a block of times instead. The file is the route you can steer: pick Text for the time columns in the import dialog.
NumbersNumbers is stricter about a text marker on paste and can show one literally in the cell. The CSV import is the cleaner route there.
CSV, any appA file is re-parsed at import time, not at paste time. In Sheets that decision is the Convert text to numbers, dates, and formulas setting, which you want switched off.

The difference is when the reinterpretation happens. A paste is decided by the receiving app the moment the clipboard lands, which is why the clipboard payload carries its own type information and, if the browser refuses the rich flavour, falls back to a leading marker on the time cells only. A file is decided later, by an importer reading plain characters off disk, where the only reliable control is the importer setting itself.

So the clipboard and the file are two different problems with two different fixes, and this page is not going to pretend one button solves both. The file writes exactly what the chart holds, as text, down to a name someone typed to look like a formula, so with that setting off it arrives on the other side as text too.

Nearby tools

Learn more about coefficient pace charts