About the project

What SpeedCharts is, and how it measures

SpeedCharts is a free app that times how quickly a motorcycle accelerates, using the GPS receiver in an ordinary phone, and a site where riders publish what they measured so the numbers can be compared. This page explains how that works and what the figures are worth.

Free
No price, no subscription, no paid tier
No account
No sign-up, no e-mail, no password
No ads
Nothing is sold and nothing is tracked for advertising
No names
A measurement belongs to a motorcycle, not to a rider

Why it exists

Every motorcycle has a quoted acceleration figure, and almost none of them tell you what you want to know. A manufacturer’s number comes from a pre-production machine in conditions arranged to flatter it. A magazine’s number is one example of the model, ridden once, by a professional, on a day that went well. Both are a single figure with no spread around it, and neither was taken by someone your weight on a bike with your mileage on it.

What is missing is not a more accurate number. It is many numbers for the same machine, taken by ordinary riders, published with enough context to tell why they differ. Twenty measurements of one model that disagree by a second tell you more than one measurement that claims a hundredth.

That needs a measuring tool cheap enough that anyone can have one. A dedicated GPS meter costs more than most riders will spend to settle an argument; the phone already in the tank bag does not.

How the measurement works

The whole measurement happens on the phone, with no network connection involved at any point.

  1. The phone reads speed from GPS

    Not from the motorcycle’s speedometer, which reads optimistically by design, and not by integrating the accelerometer, which drifts. Satellite positioning gives ground speed directly, several times a second. The position it used to work that out is discarded immediately and never stored.

  2. The timer arms itself and starts on movement

    There is nothing to tap at the moment you set off, because tapping at a phone is not what to be doing with a motorcycle about to accelerate. It keeps running with the screen off, in a foreground service, so the phone can sit in its mount.

  3. It times the ranges you asked for

    A range is a pair of speeds — 0 to 100, 60 to 140, 50 to 90 — and you can have up to six of them running at once. They are entered in whichever unit the app is set to, so a rider working in mph sets mph.

  4. It keeps the whole curve, not just the answer

    Speed, longitudinal g-force and height above sea level are sampled through the entire run. That is what makes a measurement checkable afterwards: a time on its own cannot tell you the road sloped away, and a curve can.

  5. Nothing leaves the phone unless you publish it

    Every run is saved on the phone and stays there. Publishing is a separate action, taken one measurement at a time, and you never have to take it. What it sends is listed field by field on the privacy page.

What the numbers mean

A phone is accurate enough to tell two motorcycles apart and not accurate enough to trust a tenth of a second. That is the honest summary, and everything below follows from it.

Half a second is a difference; a tenth is noise. The same model measured by different riders typically lands about a second apart. So a bike that is half a second quicker than another really is quicker, and a bike that is a tenth quicker is indistinguishable from it. Nothing here is worth reading to two decimal places, which is why nothing on the site is printed to two.

The spread is the measurement. Where a model has three or more published runs, the site shows the median rather than the quickest, and draws the band that covers all of them. The band is not an error bar — it is the range the machine has actually been recorded doing, with different riders, roads and starts in it. A model with one run has no spread, and its page says so instead of pretending otherwise.

Rider weight is published beside every time. Twenty kilos is worth a tenth or two on a small bike. A table of times with the riders’ weights left out would be comparing machines and people at once without saying which.

A roll-on is not an acceleration time. The 80–100 figure is how long the bike takes to go from 80 to 100 km/h already moving and in gear — no start off the line in it at all. It answers what happens when you open the throttle at a road speed, and it ranks motorcycles differently from 0–100, because getting away from a standstill is a different problem from pulling.

Height is recorded so a run can be checked. A slight downhill flatters a time enough to matter. The app records the change in height through the run — as a change, never as an absolute altitude — so a run that was helped can be told apart from one that was not.

Why 0–100 km/h, and no 0-60 mph

0–100 km/h is the figure manufacturers and magazines quote, which makes it the one a rider can hold a measurement up against. It is what the tables here sort by and what a model page leads with.

You will not find a 0-60 mph figure anywhere on this site, and that is deliberate. 0–100 km/h is 0–62 mph. Printing it as 0-60 mph would be publishing two miles an hour that nothing here measured — a small lie, but the kind that makes every other number on the page worth less.

If you want a true 0-60 mph of your own, the app will take one: switch it to mph and add a 0–60 range. It times whatever range you give it. What it will not do is convert one range into another and call the result a measurement.

How the site handles what riders publish

A published measurement joins the set for its model and is visible to everyone. There is no rider name on it and no account it belongs to — the app identifies itself to the site with a random install ID built from nothing about you or your phone.

Most submissions are accepted automatically. Holding every one for a person to read would mean a queue a one-person project cannot clear, and the result would be a site permanently a week out of date. Instead a set of rules decides, and anything that trips one of them waits for a person. A submission is held back when:

It carries a written comment
Free text is the whole abuse surface on a site with no accounts, so every comment is read before it appears.
The road dropped away
A run that finished more than two metres below where it started was helped by gravity. It is not comparable with a flat one even when the time looks slow.
The g-force is not believable
A peak above 1.0 G is a bad trace far more often than it is a motorcycle, and one bad trace widens the whole model's band.
Most of it was not acceleration
Eighteen seconds of pottering to the junction followed by a five-second pull is a figure about the ride, not about the motorcycle. The timer counts from the start of the recording, so this shape has to be caught.
The engine size contradicts the name
A 650 reported as 65 cc is a dropped digit far more often than it is a rebuild, and on a model's first run there is nothing else to check it against.
It sits outside what the model has done
Once a model has runs to compare with, one that falls well outside their band is held back rather than allowed to redefine it.

A rider can withdraw their own measurement from the app at any time, and the curve and split times are then deleted outright rather than hidden. The six-character code printed on a share image is deliberately not enough to do that on its own — those images circulate, and seeing one should not let you take down somebody else’s run.

What it deliberately does not do

  • It does not measure a quarter mile, or any other distance. The app times speed ranges — from one speed to another — so there is no eighth, no quarter and no trap speed anywhere on the site.
  • It does not rank riders. There is no leaderboard, no profile and no name on a measurement. Published runs sit under the motorcycle, which is the thing you are choosing between.
  • It does not publish cornering. The app measures lean angle and lateral g-force and shows both to you while you ride, but neither is ever sent. A public cornering figure would turn a measuring tool into a dare.
  • It does not test motorcycles. Nothing here is a review, nobody is lent a bike, and no manufacturer has any part in it. Every figure on the site was taken by a rider on their own machine.
  • It does not belong on a public road. Measuring means a full-throttle run from a standstill. That belongs on a closed road, a private surface or a track day, and the app is not worth doing it anywhere else.

The app, the site, and the languages

The app runs on Android and iOS and is in beta — the store badges on this site lead to how to join it rather than to a store. It speaks seven languages: English, Polish, German, Spanish, French, Italian and Portuguese.

This site is in English only, for now. There is also a rider fit tool here that has nothing to do with acceleration: it places a figure your height on a photo of a motorcycle so you can see whether your feet reach the ground. It runs entirely in the browser and the photo is never uploaded.

Everything is hosted on Cloudflare. The site sets no cookies for visitors — the one cookie anywhere in the code belongs to the moderation login, and a reader never meets it. Visits are counted, in a way that cannot tell one visitor from another and leaves nothing on your device, which is also why nothing here asks you to dismiss a banner. The privacy page says exactly what is counted.

Who is behind it

SpeedCharts is an independent, non-commercial project, built and run by one person. There is no company behind it, no investor, no advertising and nothing for sale. It is not affiliated with any motorcycle manufacturer, and no manufacturer has any say in what appears here.

The server costs are paid out of pocket, which is also why the site is built the way it is: on infrastructure that costs almost nothing to run, it can stay up without ever needing to earn anything.

Anything at all — a bug, a motorcycle filed under the wrong name, a measurement that looks wrong, or a question this page did not answer: contact@speedcharts.app

Where to go next