{
  "slug": "cnc-feeds-and-speeds",
  "title": "CNC Feeds and Speeds Calculator",
  "heading": "CNC Feeds and Speeds Calculator",
  "category": "other",
  "url": "https://www.revenuelab.fyi/toolbox/cnc-feeds-and-speeds",
  "summary": "Spindle RPM and feed rate from cutting speed, chip load, and tool diameter.",
  "description": "Feeds and speeds are the two settings that determine tool life, surface finish, and cycle time on every milling or drilling operation. Cutting speed (SFM or surface meters per minute) comes from the material/tool combination — a carbide end mill in aluminum runs far faster than the same tool in stainless. This calculator converts that surface speed into spindle RPM based on tool diameter, then computes the table feed rate from chip load per tooth and flute count. Running too slow wastes cycle time and can cause rubbing instead of cutting, which actually shortens tool life; running too fast burns tools and can shatter carbide inserts. Chip load numbers here are a good general starting point but always check your tool manufacturer's chart for the exact insert grade and coating, since modern coated carbide can often run faster than older uncoated data suggests.",
  "formula": "RPM = (SFM × 3.82) ÷ Diameter (in). Feed Rate (ipm) = RPM × Flutes × Chip Load per tooth.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=cnc-feeds-and-speeds",
  "inputs": [
    {
      "id": "sfm",
      "label": "Cutting speed (SFM)",
      "kind": "number",
      "hint": null,
      "default": 350,
      "unit": "ft/min",
      "min": 1,
      "max": null
    },
    {
      "id": "diameter",
      "label": "Tool diameter",
      "kind": "number",
      "hint": null,
      "default": 0.5,
      "unit": "in",
      "min": 0.01,
      "max": null
    },
    {
      "id": "flutes",
      "label": "Number of flutes",
      "kind": "number",
      "hint": null,
      "default": 4,
      "unit": null,
      "min": 1,
      "max": 12
    },
    {
      "id": "chipLoad",
      "label": "Chip load per tooth",
      "kind": "number",
      "hint": null,
      "default": 0.004,
      "unit": "in",
      "min": 0.0001,
      "max": null
    },
    {
      "id": "maxRpm",
      "label": "Machine max spindle RPM",
      "kind": "number",
      "hint": null,
      "default": 12000,
      "unit": null,
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "rpm",
      "label": "Spindle speed",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "feedRate",
      "label": "Feed rate",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "rpmRaw",
      "label": "Calculated RPM (uncapped)",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "capped",
      "label": "Limited by machine max RPM (1=yes)",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Cutting speed (SFM): 350 ft/min",
      "Tool diameter: 0.5 in",
      "Number of flutes: 4",
      "Chip load per tooth: 0.004 in",
      "Machine max spindle RPM: 12000"
    ],
    "outputs": [
      "Spindle speed: 2,674",
      "Feed rate: 42.8",
      "Calculated RPM (uncapped): 2,674",
      "Limited by machine max RPM (1=yes): 0"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter cutting speed (sfm) (ft/min).",
      "Enter tool diameter (in).",
      "Enter number of flutes.",
      "Enter chip load per tooth (in).",
      "Enter machine max spindle rpm.",
      "Read your spindle speed on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "sfm": 210,
        "diameter": 0.3,
        "flutes": 2,
        "chipLoad": 0.0024,
        "maxRpm": 7200
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "sfm": 350,
        "diameter": 0.5,
        "flutes": 4,
        "chipLoad": 0.004,
        "maxRpm": 12000
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "sfm": 560,
        "diameter": 0.8,
        "flutes": 6,
        "chipLoad": 0.0064,
        "maxRpm": 19200
      }
    }
  ],
  "limitations": [
    "Estimates assume standard, average conditions — local rules, pricing, and materials vary.",
    "Results are rounded for readability; add a buffer before ordering, booking, or committing.",
    "Double-check anything with a real cost attached against a local quote."
  ],
  "faq": [
    {
      "q": "Where do I find SFM and chip load values for my material?",
      "a": "Tool manufacturers (Harvey, Helical, Kennametal, Sandvik) publish free feeds-and-speeds charts by material and tool coating. As rough starting points: aluminum runs 300-1000 SFM, mild steel 100-350 SFM, stainless 100-250 SFM, and titanium 40-120 SFM with carbide tooling."
    },
    {
      "q": "What happens if my calculated RPM exceeds machine max?",
      "a": "The calculator caps it at your machine's max spindle speed and flags it. You're now running below optimal SFM, which is fine for finish passes but means you'll get shorter tool life for roughing at that reduced surface speed relative to a machine with a higher-RPM spindle."
    },
    {
      "q": "Should I trust the calculated feed rate exactly?",
      "a": "Use it as a starting point, then adjust by ear and by chip color. Bring feed down 20-30% for interrupted cuts or thin-wall parts prone to chatter, and increase it if chips come off blue (overheating) rather than golden/silver for steel."
    },
    {
      "q": "Does chip load change with depth of cut?",
      "a": "Not directly in this formula, but heavier radial or axial depth of cut generates more heat and tool deflection, so shops commonly reduce chip load 10-20% when running full-diameter slotting versus light finishing passes."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/chip-load-calculator",
    "https://www.revenuelab.fyi/toolbox/material-removal-rate"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — CNC Feeds and Speeds Calculator (https://www.revenuelab.fyi/toolbox/cnc-feeds-and-speeds)"
}