ForHosting KIT · Science

Speeds and feeds calculator

A 10 mm end mill cutting at 100 m/min must turn at just over three thousand rpm. Add the number of teeth and the chip load per tooth and you also get the table feed per minute, in metric or imperial units. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Cutting speed
100
Tool diameter
10
Teeth
4
Feed per tooth
0.05
You get
System
Metric
Rpm
3,183.0988618379
Feed per minute
636.6197723676
Rpm unit
rev/min

Speeds and feeds are the two numbers every milling, drilling, and turning program must set before a cutter meets metal: spindle speed in revolutions per minute, and table feed in millimetres or inches per minute. Machinists compute those numbers from a recommended cutting speed for the material, the tool diameter, the number of cutting teeth or flutes, and the chip load per tooth. This speeds and feeds calculator applies the shop identities n equals one thousand times cutting speed over pi times diameter when the inputs are metric, or twelve times surface feet per minute over pi times diameter when the inputs are imperial, then multiplies feed per tooth by teeth by RPM to obtain feed per minute.

How spindle speed follows from cutting speed and tool diameter

Cutting speed is the tangential speed of the work material past the cutting edge, quoted in metres per minute on metric data sheets and in surface feet per minute on North American charts. For a rotating tool the cutting edge traces a circle of diameter D, so that speed equals pi times D times revolutions per minute, with a unit factor that converts millimetres into metres or inches into feet.

Solving for the unknown spindle speed therefore yields the identity every apprentice memorizes: n equals one thousand times Vc over pi times D when Vc is in metres per minute and D is in millimetres, or n equals twelve times SFM over pi times D when SFM is in feet per minute and D is in inches. The factor one thousand is millimetres per metre; the factor twelve is inches per foot; pi converts diameter into circumference.

A ten millimetre end mill at one hundred metres per minute therefore wants about three thousand one hundred eighty-three revolutions per minute, because one hundred thousand divided by pi times ten is exactly 1000 times Vc over pi times D. Typical HSS on mild steel sits near twenty to forty metres per minute; uncoated carbide on aluminium often sits near two to six hundred metres per minute or several hundred surface feet.

Where a speeds and feeds calculator earns its keep

CNC programmers and shop-floor machinists use a speeds and feeds calculator before they lock a spindle override and a feed override, so a new end mill, drill, or turning insert starts near the surface speed the tool maker printed rather than at a guessed RPM that burns the corner or chatters the wall. Vocational classrooms auto-grade the factor of one thousand, the factor of twelve, and the chip-load product without standing up a spreadsheet that silently uses 3.14 and mixes millimetres into inches.

CAM post-processors and job-shop estimators convert a recommended metres-per-minute value and a known diameter into RPM, then multiply by flutes and chip load to quote cycle time. Failed validation does not consume balance. Keep piston-speed landings, angular-velocity converters, and flywheel rim-speed landings separate when those formulas are the search intent, so this page stays machining spindle RPM and table feed from cutting speed, diameter, teeth, and chip load.

Pin the rounded RPM in tests if you compare against a controller that displays whole revolutions per minute.

Setting CNC milling RPM and table feed

Convert a recommended cutting speed, end-mill diameter, flute count, and chip load into spindle RPM and millimetres or inches per minute before writing G-code.

Drill and tap spindle speed from SFM

Turn an imperial surface-feet chart and a drill diameter into revolutions per minute, then apply teeth and IPT for a peck-drill feed.

Classroom and CAM post-processor checks

Auto-grade the 1000·Vc/(π·D) and fz·Z·n identities against a deterministic oracle instead of a rounded shop-card spreadsheet.

How do I calculate spindle speed and feed rate?

Metric RPM is 1000 × Vc / (π × D) with D in millimetres; imperial RPM is 12 × SFM / (π × D) with D in inches. Feed per minute is feed per tooth times teeth times RPM.

What happens if the tool diameter is zero or negative?

A cutter with no positive diameter cannot define a surface speed, and the denominator π × D would not be positive. Those failures are not billed.

Which unit system should I use?

system is metric (default) or imperial. Metric uses m/min, mm, mm/tooth, and mm/min. Imperial uses SFM (ft/min), inches, in/tooth, and in/min. Spindle speed is always returned in revolutions per minute.

Why do I have to send feed per tooth?

Table feed is chip load times flutes times RPM. Zero chip load is allowed and yields a feed of zero.

Does the calculator suggest a cutting speed for my material?

No. You enter the cutting speed the tool maker recommends for your material. The calculator does not look up material charts or reduce the speed for interrupted cuts or a worn coating; it turns that speed into spindle RPM and feed.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/phys/speeds-and-feeds

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/phys/speeds-and-feeds \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"cutting_speed":100,"tool_diameter":10,"teeth":4,"feed_per_tooth":0.05}'
{
  "cutting_speed": 100,
  "tool_diameter": 10,
  "teeth": 4,
  "feed_per_tooth": 0.05
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "phys.speeds_and_feeds",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

A tool diameter that is zero or negative is rejected as invalid_input, because a cutter with no size cannot define a surface speed.

How spindle speed follows from cutting speed and tool diameter

This endpoint evaluates that kinematic identity only. It does not look up a recommended cutting speed from a material chart, it does not derate for interrupted cuts or a worn coating, and it does not convert flywheel rim speed or engine piston speed. Those belong on dedicated landings so this search intent stays the machining formula people type when they look for a speeds and feeds calculator.

Feed per minute, input contract, units, and error behaviour

Once spindle speed is known, table feed is chip load times the number of cutting teeth times RPM: Vf equals fz times Z times n. Feed per tooth is the chip thickness each flute is asked to take; teeth is the flute or insert count on the cutter; the product is millimetres per minute on a metric mill and inches per minute on an imperial mill. Optional system is an enum of metric (default: metres per minute, millimetres, millimetres per tooth, millimetres per minute) or imperial (surface feet per minute, inches, inches per tooth, inches per minute). If teeth is not a positive integer the task fails. A negative chip load is rejected; a zero chip load is valid and returns a feed of zero, which is a spindle turning with no table motion. Send four required finite numbers: cutting_speed, the recommended surface speed in the unit of the chosen system; tool_diameter, the cutter or workpiece diameter; teeth, a positive integer count of flutes or inserts; and feed_per_tooth, the chip load per tooth. Aliases are accepted: Vc, vc, surface_speed, and sfm for cutting speed; diameter, D, d, and cutter_diameter for the diameter; z, Z, flutes, and number_of_teeth for the tooth count; fz, chip_load, ipt, and feed_per_flute for the chip load. Each numeric field may arrive as a JSON number or as a numeric string. Missing fields, empty strings, NaN, and Infinity fail with invalid_input naming the field. If tool_diameter is not a positive number the task fails, because a zero or negative cutter cannot define a surface speed and the denominator pi times D would be non-positive. If cutting_speed is not positive the task fails. On success the body echoes the cleaned inputs, returns rpm as the primary spindle result in rev/min, returns feed_per_minute in mm/min or in/min, and returns formula and equation strings. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.

Where a speeds and feeds calculator earns its keep

The browser tool is free for interactive use; scripted API traffic uses prepaid KIT balance at the published rate without hidden per-field surcharges.

What does the speeds and feeds calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →