{"id":9482,"date":"2026-09-07T09:06:34","date_gmt":"2026-09-07T09:06:34","guid":{"rendered":"https:\/\/veperpins.com\/?p=9482"},"modified":"2026-09-08T03:41:34","modified_gmt":"2026-09-08T03:41:34","slug":"how-much-do-custom-patches-cost","status":"publish","type":"post","link":"https:\/\/veperpins.com\/how-much-do-custom-patches-cost\/","title":{"rendered":"How Much Do Custom Patches Cost? Size, Type and Quantity Explained"},"content":{"rendered":"\n<div class=\"wp-block-columns alignwide vp-blog-layout has-medium-font-size is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\" style=\"border-style:none;border-width:0px;border-top-left-radius:58px;border-top-right-radius:58px;border-bottom-left-radius:58px;border-bottom-right-radius:58px\">\n<div class=\"wp-block-column vp-blog-toc-wrap is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:20%\">\n<style data-wp-block-html=\"css\">\n[data-vp-article-toc] a.vp-current {\n  color: #1f5eff !important;\n  font-weight: 700 !important;\n}\n\n[data-vp-article-toc] a.vp-current::before {\n  content: \"\";\n  display: inline-block;\n  width: 6px;\n  height: 6px;\n  margin-right: 7px;\n  border-radius: 50%;\n  background: #1f5eff;\n  vertical-align: middle;\n}\n\n#what-affects-the-cost-of-custom-patches,\n#how-patch-size-affects-the-price,\n#how-different-patch-types-affect-the-price,\n#what-other-options-can-increase-the-cost,\n#how-to-lower-your-costs,\n#get-the-right-custom-patch-without-overpaying {\n  scroll-margin-top: 130px;\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(function () {\n  function initVpTocSpy() {\n    var links = Array.prototype.slice.call(\n      document.querySelectorAll('[data-vp-article-toc] a[href^=\"#\"]')\n    );\n\n    if (!links.length) return;\n\n    var sections = [];\n    var added = {};\n\n    links.forEach(function (link) {\n      var id = link.getAttribute(\"href\").slice(1);\n      var target = document.getElementById(id);\n\n      if (target && !added[id]) {\n        sections.push({\n          id: id,\n          target: target\n        });\n        added[id] = true;\n      }\n    });\n\n    if (!sections.length) return;\n\n    var ticking = false;\n    var lastId = \"\";   \n\n    function getOffset() {\n      return Math.min(Math.max(window.innerHeight * 0.55, 220), 520);\n    }\n\n    function scrollTocItemIntoView(link) {\n      var tocBox = link.closest(\"[data-vp-article-toc]\");\n      if (!tocBox) return;\n\n      var scrollBox = tocBox;\n\n      if (tocBox.classList.contains(\"vp-toc-mobile\")) {\n        var nav = tocBox.querySelector(\"nav\");\n        if (nav) scrollBox = nav;\n      }\n\n      if (!scrollBox || scrollBox.scrollHeight <= scrollBox.clientHeight) return;\n\n      var linkTop = link.offsetTop;\n      var linkHeight = link.offsetHeight;\n      var boxHeight = scrollBox.clientHeight;\n\n      scrollBox.scrollTo({\n        top: linkTop - boxHeight \/ 2 + linkHeight \/ 2,\n        behavior: \"smooth\"\n      });\n    }\n\n    function updateActive() {\n      var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n      var currentId = sections[0].id;\n      var offset = getOffset();\n\n      sections.forEach(function (section) {\n        var top = section.target.getBoundingClientRect().top + scrollTop;\n\n        if (scrollTop + offset >= top) {\n          currentId = section.id;\n        }\n      });\n\n      links.forEach(function (link) {\n        link.classList.toggle(\n          \"vp-current\",\n          link.getAttribute(\"href\") === \"#\" + currentId\n        );\n      });\n\n      if (currentId !== lastId) {\n        links.forEach(function (link) {\n          if (link.getAttribute(\"href\") === \"#\" + currentId) {\n            scrollTocItemIntoView(link);\n          }\n        });\n\n        lastId = currentId;\n      }\n\n      ticking = false;\n    }\n\n    function onScroll() {\n      if (!ticking) {\n        window.requestAnimationFrame(updateActive);\n        ticking = true;\n      }\n    }\n\n    updateActive();\n    window.addEventListener(\"scroll\", onScroll, { passive: true });\n    window.addEventListener(\"resize\", updateActive);\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initVpTocSpy);\n  } else {\n    initVpTocSpy();\n  }\n})();\n<\/script>\n\n<!-- Desktop TOC -->\n<div class=\"vp-toc vp-toc-desktop\" data-vp-article-toc=\"\">\n  <div class=\"vp-toc-title\">Table of Contents<\/div>\n  <nav aria-label=\"Table of Contents\">\n    <ul>\n      <li>\n        <a href=\"#what-affects-the-cost-of-custom-patches\">\n          What Affects the Cost of Custom Patches?\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#how-patch-size-affects-the-price\">\n          How Patch Size Affects the Price\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#how-different-patch-types-affect-the-price\">\n          How Different Patch Types Affect the Price\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#what-other-options-can-increase-the-cost\">\n          What Other Options Can Increase the Cost?\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#how-to-lower-your-costs\">\n          How to Lower Your Costs\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#get-the-right-custom-patch-without-overpaying\">\n          Get the Right Custom Patch Without Overpaying\n        <\/a>\n      <\/li>\n    <\/ul>\n  <\/nav>\n<\/div>\n\n<!-- Mobile \/ Tablet TOC -->\n<details class=\"vp-toc vp-toc-mobile\" data-vp-article-toc=\"\">\n  <summary>Table of Contents<\/summary>\n  <nav aria-label=\"Mobile Table of Contents\">\n    <ul>\n      <li>\n        <a href=\"#what-affects-the-cost-of-custom-patches\">\n          What Affects the Cost of Custom Patches?\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#how-patch-size-affects-the-price\">\n          How Patch Size Affects the Price\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#how-different-patch-types-affect-the-price\">\n          How Different Patch Types Affect the Price\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#what-other-options-can-increase-the-cost\">\n          What Other Options Can Increase the Cost?\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#how-to-lower-your-costs\">\n          How to Lower Your Costs\n        <\/a>\n      <\/li>\n      <li>\n        <a href=\"#get-the-right-custom-patch-without-overpaying\">\n          Get the Right Custom Patch Without Overpaying\n        <\/a>\n      <\/li>\n    <\/ul>\n  <\/nav>\n<\/details>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"900\" height=\"675\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/How-Much-Do-Custom-Patches-Cost.webp\" alt=\"How Much Do Custom Patches Cost\" class=\"wp-image-9492\" srcset=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/How-Much-Do-Custom-Patches-Cost.webp 900w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/How-Much-Do-Custom-Patches-Cost-300x225.webp 300w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/How-Much-Do-Custom-Patches-Cost-768x576.webp 768w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/How-Much-Do-Custom-Patches-Cost-600x450.webp 600w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/veperpins.com\/custom-patches\/\" data-type=\"page\" data-id=\"613\">Custom-made patches<\/a> don\u2019t have one set price. The cost mainly depends on the size, quantity, and type you choose.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, 100 embroidered patches at 3 inches may cost around $3 each, while ordering 1,000 can bring the price down to about $0.63 each. PVC options are priced differently\u2014a 3-inch order of 100 pieces may cost around $4.11 each.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So even at the same size, the price can vary quite a bit depending on the style and order quantity. If you just want a general idea of pricing by size and quantity, you can check our pricing page. If you already have a design ready, you can also contact us for an exact quote.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this article, we\u2019ll explain what affects the final price and where you may be able to save money without sacrificing the final result.<\/p>\n\n\n\n<h2 id=\"what-affects-the-cost-of-custom-patches\" class=\"wp-block-heading has-large-font-size\">What Affects the Cost of Custom Patches?<\/h2>\n\n\n\n<style data-wp-block-html=\"css\">\n.patch-price-factors {\n  max-width: 960px;\n  margin: 0 auto;\n  padding: 10px 0;\n}\n\n.patch-price-intro {\n  margin: 0 0 22px;\n  color: #333;\n  font-size: 17px;\n  line-height: 1.7;\n}\n\n.patch-price-grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 14px;\n}\n\n.patch-price-item {\n  display: flex;\n  align-items: center;\n  gap: 16px;\n  min-height: 72px;\n  padding: 16px 20px;\n  background: #fff;\n  border: 1px solid #e8e8e8;\n  border-radius: 10px;\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n\n.patch-price-item:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);\n}\n\n.patch-price-number {\n  flex: 0 0 auto;\n  font-size: 14px;\n  font-weight: 700;\n  color: #999;\n  letter-spacing: 0.04em;\n}\n\n.patch-price-text,\n.patch-price-link {\n  color: #222;\n  font-size: 16px;\n  font-weight: 600;\n  line-height: 1.4;\n}\n\n.patch-price-link {\n  text-decoration: none;\n  transition: color 0.2s ease;\n}\n\n.patch-price-link:hover {\n  color: #2f6fa7;\n  text-decoration: underline;\n  text-underline-offset: 3px;\n}\n\n.patch-price-link:focus-visible {\n  outline: 2px solid #2f6fa7;\n  outline-offset: 3px;\n  border-radius: 3px;\n}\n\n@media (max-width: 640px) {\n  .patch-price-grid {\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n\n  .patch-price-item {\n    min-height: 62px;\n    padding: 14px 16px;\n  }\n\n  .patch-price-intro {\n    margin-bottom: 16px;\n    font-size: 16px;\n  }\n\n  .patch-price-text,\n  .patch-price-link {\n    font-size: 15.5px;\n  }\n}\n<\/style>\n\n<section class=\"patch-price-factors\" aria-label=\"Factors that affect custom patch pricing\">\n  <p class=\"patch-price-intro\">\n    Several factors can affect the price of custom patches, including:\n  <\/p>\n\n  <div class=\"patch-price-grid\">\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">01<\/span>\n      <a\n        class=\"patch-price-link\"\n        href=\"https:\/\/veperpins.com\/what-size-should-my-custom-patch-be\/\"\n      >\n        Patch Size\n      <\/a>\n    <\/div>\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">02<\/span>\n      <span class=\"patch-price-text\">Patch Type<\/span>\n    <\/div>\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">03<\/span>\n      <span class=\"patch-price-text\">Order Quantity<\/span>\n    <\/div>\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">04<\/span>\n      <a\n        class=\"patch-price-link\"\n        href=\"https:\/\/veperpins.com\/custom-patch-backing-options\/\"\n      >\n        Backing Option\n      <\/a>\n    <\/div>\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">05<\/span>\n      <a\n        class=\"patch-price-link\"\n        href=\"https:\/\/veperpins.com\/how-to-pick-the-right-patch-border\/\"\n      >\n        Border Style\n      <\/a>\n    <\/div>\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">06<\/span>\n      <span class=\"patch-price-text\">Design Complexity<\/span>\n    <\/div>\n\n    <div class=\"patch-price-item\">\n      <span class=\"patch-price-number\">07<\/span>\n      <span class=\"patch-price-text\">Rush Production<\/span>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<h2 id=\"how-patch-size-affects-the-price\" class=\"wp-block-heading has-large-font-size\">How Patch Size Affects the Price<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Larger patches usually cost more. The reason is pretty simple: they use more material and take longer to produce.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"900\" height=\"675\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-with-logo.webp\" alt=\"custom patches with logo\" class=\"wp-image-9493\" srcset=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-with-logo.webp 900w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-with-logo-300x225.webp 300w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-with-logo-768x576.webp 768w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-with-logo-600x450.webp 600w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Material use:<\/strong> As the size goes up, so does the amount of fabric, thread, leather, or PVC needed. The exact difference also depends on the shape and the type you choose.<\/li>\n\n\n\n<li><strong>Production time:<\/strong> With embroidered designs, a larger area usually means more stitches and longer machine time. Woven and PVC styles are made differently, but increasing the size still adds to material and production costs.<\/li>\n\n\n\n<li><strong>Weight and structure:<\/strong> Very large pieces may need a thicker backing to help them hold their shape, and the finished product will naturally weigh more. If they\u2019re going on jackets, uniforms, or bags, the fabric also needs to support that extra weight. Since much of this type of production is handled overseas, including in China and Vietnam, heavier orders can also cost more to ship. That can affect the total amount you pay.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common Sizes and Price Ranges<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Small (2\u20133 inches):<\/strong> A common choice for hats, shirts, and bags. For larger orders, some styles can start at around $1.20 each.<\/li>\n\n\n\n<li><strong>Medium (4\u20137 inches):<\/strong> Often used on jackets, uniform sleeves, and larger logos. These usually cost more than smaller sizes because they require more material and production time.<\/li>\n\n\n\n<li><strong>Large (10\u201312 inches):<\/strong> Common for motorcycle club back patches, team designs, and large jacket pieces. Because of the larger surface area, some styles can still cost $11 or more per piece even at higher quantities.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Round and square designs are usually easy to measure. For custom shapes, the size is generally based on the <strong>longest side<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, if a custom-shaped design is listed as 4 inches, that usually means its widest or tallest point measures 4 inches. It does not mean the entire piece is 4 inches in every direction. That\u2019s why two designs can both be listed as 4 inches but still use different amounts of material and end up with slightly different prices.<\/p>\n\n\n\n<h2 id=\"how-different-patch-types-affect-the-price\" class=\"wp-block-heading has-large-font-size\">How Different Patch Types Affect the Price<\/h2>\n\n\n\n<style data-wp-block-html=\"css\">\n.vp-type-price {\n  width: 100%;\n  padding: 20px 0;\n  color: #222;\n}\n\n.vp-type-price__inner {\n  width: min(100%, 960px);\n  margin: 0 auto;\n}\n\n.vp-type-price__intro,\n.vp-type-price__summary {\n  max-width: 820px;\n  margin: 0 0 14px;\n  color: #444;\n  font-size: 17px;\n  line-height: 1.75;\n}\n\n.vp-type-price__table-wrap {\n  margin: 24px 0;\n  overflow: hidden;\n  background: #fff;\n  border: 1px solid #e5e8ec;\n  border-radius: 14px;\n  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.05);\n}\n\n.vp-type-price__table {\n  width: 100%;\n  border-collapse: collapse;\n  border-spacing: 0;\n  font-size: 16px;\n}\n\n.vp-type-price__table thead {\n  background: #f4f8fc;\n}\n\n.vp-type-price__table th,\n.vp-type-price__table td {\n  padding: 17px 20px;\n  border-bottom: 1px solid #e8ebef;\n  text-align: center;\n  vertical-align: middle;\n}\n\n.vp-type-price__table thead th {\n  color: #222;\n  font-size: 15px;\n  font-weight: 700;\n  white-space: nowrap;\n}\n\n.vp-type-price__table thead th:first-child,\n.vp-type-price__table tbody th {\n  text-align: left;\n}\n\n.vp-type-price__table tbody th {\n  width: 34%;\n  font-weight: 600;\n}\n\n.vp-type-price__table tbody tr:last-child th,\n.vp-type-price__table tbody tr:last-child td {\n  border-bottom: 0;\n}\n\n.vp-type-price__table tbody tr {\n  transition: background-color 0.2s ease;\n}\n\n.vp-type-price__table tbody tr:hover {\n  background: #fafcff;\n}\n\n.vp-type-price__table a {\n  color: #1769aa;\n  font-weight: 650;\n  text-decoration: none;\n  text-underline-offset: 3px;\n}\n\n.vp-type-price__table a:hover {\n  text-decoration: underline;\n}\n\n.vp-type-price__table a:focus-visible {\n  outline: 2px solid currentColor;\n  outline-offset: 3px;\n  border-radius: 3px;\n}\n\n.vp-type-price__summary {\n  margin-bottom: 0;\n}\n\n.vp-type-price__summary strong {\n  color: #222;\n  font-weight: 700;\n}\n\n.vp-sr-only {\n  position: absolute !important;\n  width: 1px !important;\n  height: 1px !important;\n  padding: 0 !important;\n  margin: -1px !important;\n  overflow: hidden !important;\n  clip: rect(0, 0, 0, 0) !important;\n  white-space: nowrap !important;\n  border: 0 !important;\n}\n\n@media (max-width: 680px) {\n  .vp-type-price {\n    padding: 16px 0;\n  }\n\n  .vp-type-price__intro,\n  .vp-type-price__summary {\n    font-size: 16px;\n    line-height: 1.7;\n  }\n\n  .vp-type-price__table-wrap {\n    margin: 20px 0;\n    overflow: visible;\n    background: transparent;\n    border: 0;\n    border-radius: 0;\n    box-shadow: none;\n  }\n\n  .vp-type-price__table,\n  .vp-type-price__table tbody,\n  .vp-type-price__table tr,\n  .vp-type-price__table th,\n  .vp-type-price__table td {\n    display: block;\n    width: 100%;\n  }\n\n  .vp-type-price__table thead {\n    position: absolute;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    clip: rect(0 0 0 0);\n    white-space: nowrap;\n  }\n\n  .vp-type-price__table tbody {\n    display: grid;\n    gap: 12px;\n  }\n\n  .vp-type-price__table tbody tr {\n    overflow: hidden;\n    background: #fff;\n    border: 1px solid #e4e8ed;\n    border-radius: 12px;\n    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.035);\n  }\n\n  .vp-type-price__table tbody th {\n    width: 100%;\n    padding: 15px 16px;\n    background: #f4f8fc;\n    border-bottom: 1px solid #e4e8ed;\n  }\n\n  .vp-type-price__table tbody td {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 11px 16px;\n    border-bottom: 1px solid #eef0f3;\n    text-align: right;\n    font-size: 15px;\n    font-weight: 600;\n  }\n\n  .vp-type-price__table tbody td::before {\n    content: attr(data-label);\n    color: #666;\n    font-size: 14px;\n    font-weight: 500;\n  }\n\n  .vp-type-price__table tbody tr td:last-child {\n    border-bottom: 0;\n  }\n}\n<\/style>\n\n<section class=\"vp-type-price\" aria-label=\"Custom patch type price comparison\">\n  <div class=\"vp-type-price__inner\">\n\n    <p class=\"vp-type-price__intro\">\n      Even at the same size and order quantity, the price can change quite a bit depending on the type you choose.\n    <\/p>\n\n    <p class=\"vp-type-price__intro\">\n      Here\u2019s a quick comparison based on <strong>100-piece orders from VeperPins<\/strong>:\n    <\/p>\n\n    <div class=\"vp-type-price__table-wrap\">\n      <table class=\"vp-type-price__table\">\n        <caption class=\"vp-sr-only\">\n          Per-piece pricing for 100-piece custom patch orders by type and size.\n        <\/caption>\n\n        <thead>\n          <tr>\n            <th scope=\"col\">Type<\/th>\n            <th scope=\"col\">2 inch<\/th>\n            <th scope=\"col\">3 inch<\/th>\n            <th scope=\"col\">4 inch<\/th>\n          <\/tr>\n        <\/thead>\n\n        <tbody>\n          <tr>\n            <th scope=\"row\">\n              <a href=\"https:\/\/veperpins.com\/custom-patches\/custom-embroidered-patches\/\">\n                75% Embroidered\n              <\/a>\n            <\/th>\n            <td data-label=\"2 inch\">$1.52\/pc<\/td>\n            <td data-label=\"3 inch\">$2.06\/pc<\/td>\n            <td data-label=\"4 inch\">$2.70\/pc<\/td>\n          <\/tr>\n\n          <tr>\n            <th scope=\"row\">\n              <a href=\"https:\/\/veperpins.com\/custom-patches\/custom-woven-patches\/\">\n                Woven\n              <\/a>\n            <\/th>\n            <td data-label=\"2 inch\">$2.21\/pc<\/td>\n            <td data-label=\"3 inch\">$2.82\/pc<\/td>\n            <td data-label=\"4 inch\">$3.52\/pc<\/td>\n          <\/tr>\n\n          <tr>\n            <th scope=\"row\">\n              <a href=\"https:\/\/veperpins.com\/custom-patches\/custom-chenille-patches\/\">\n                Chenille\n              <\/a>\n            <\/th>\n            <td data-label=\"2 inch\">$3.26\/pc<\/td>\n            <td data-label=\"3 inch\">$4.20\/pc<\/td>\n            <td data-label=\"4 inch\">$6.00\/pc<\/td>\n          <\/tr>\n\n          <tr>\n            <th scope=\"row\">\n              <a href=\"https:\/\/veperpins.com\/custom-patches\/custom-printed-patches\/\">\n                Printed\n              <\/a>\n            <\/th>\n            <td data-label=\"2 inch\">$2.31\/pc<\/td>\n            <td data-label=\"3 inch\">$2.94\/pc<\/td>\n            <td data-label=\"4 inch\">$3.63\/pc<\/td>\n          <\/tr>\n\n          <tr>\n            <th scope=\"row\">\n              <a href=\"https:\/\/veperpins.com\/custom-patches\/custom-leather-patches\/\">\n                PU Leather\n              <\/a>\n            <\/th>\n            <td data-label=\"2 inch\">$2.38\/pc<\/td>\n            <td data-label=\"3 inch\">$2.99\/pc<\/td>\n            <td data-label=\"4 inch\">$3.69\/pc<\/td>\n          <\/tr>\n\n          <tr>\n            <th scope=\"row\">\n              <a href=\"https:\/\/veperpins.com\/custom-pvc-patches\/\">\n                PVC\n              <\/a>\n            <\/th>\n            <td data-label=\"2 inch\">$3.17\/pc<\/td>\n            <td data-label=\"3 inch\">$4.11\/pc<\/td>\n            <td data-label=\"4 inch\">$5.91\/pc<\/td>\n          <\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <p class=\"vp-type-price__summary\">\n      The difference mainly comes down to the materials and how each style is made.\n      For example, at <strong>2 inches and 100 pieces<\/strong>, 75% embroidery costs\n      <strong>$1.52 each<\/strong>, chenille costs <strong>$3.26 each<\/strong>, and PVC costs\n      <strong>$3.17 each<\/strong>.\n    <\/p>\n\n  <\/div>\n<\/section>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"900\" height=\"675\" src=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-for-uniforms.webp\" alt=\"custom patches for uniforms\" class=\"wp-image-9494\" srcset=\"https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-for-uniforms.webp 900w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-for-uniforms-300x225.webp 300w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-for-uniforms-768x576.webp 768w, https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/custom-patches-for-uniforms-600x450.webp 600w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<h2 id=\"what-other-options-can-increase-the-cost\" class=\"wp-block-heading has-large-font-size\">What Other Options Can Increase the Cost?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Backing and border choices can also affect the final price.<\/p>\n\n\n\n<style data-wp-block-html=\"css\">\n.vp-extra-costs {\n  width: 100%;\n  margin: 24px 0;\n}\n\n.vp-extra-costs__grid {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 14px;\n}\n\n.vp-extra-costs__item {\n  padding: 20px 22px;\n  background: #fff;\n  border: 1px solid #e5e9ee;\n  border-radius: 12px;\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n\n.vp-extra-costs__item:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 7px 22px rgba(0, 0, 0, 0.05);\n}\n\n.vp-extra-costs__item h3 {\n  margin: 0 0 8px;\n  color: #202020;\n  font-size: 17px;\n  font-weight: 700;\n  line-height: 1.4;\n}\n\n.vp-extra-costs__item p {\n  margin: 0;\n  color: #555;\n  font-size: 15.5px;\n  line-height: 1.65;\n}\n\n.vp-extra-costs__item strong {\n  color: #1769aa;\n  font-weight: 700;\n}\n\n@media (max-width: 700px) {\n  .vp-extra-costs {\n    margin: 20px 0;\n  }\n\n  .vp-extra-costs__grid {\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n\n  .vp-extra-costs__item {\n    padding: 16px 17px;\n    border-radius: 10px;\n  }\n\n  .vp-extra-costs__item h3 {\n    font-size: 16px;\n    margin-bottom: 6px;\n  }\n\n  .vp-extra-costs__item p {\n    font-size: 15px;\n    line-height: 1.6;\n  }\n}\n<\/style>\n\n<section class=\"vp-extra-costs\" aria-label=\"Additional custom patch costs\">\n  <div class=\"vp-extra-costs__grid\">\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Iron-On Backing<\/h3>\n      <p>About <strong>+$0.12\/pc<\/strong>.<\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Velcro \/ Hook &amp; Loop<\/h3>\n      <p>\n        Hook only is around <strong>+$0.38\/pc<\/strong>;\n        Hook + Loop is about <strong>+$0.58\/pc<\/strong>.\n      <\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Adhesive Backing<\/h3>\n      <p>About <strong>+$0.12\/pc<\/strong>.<\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Merrowed Border<\/h3>\n      <p>Around <strong>+$0.16\/pc<\/strong>.<\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Laser Cut \/ Heat Cut Border<\/h3>\n      <p>\n        Usually around <strong>+$0.10\u2013$0.15\/pc<\/strong>, though more detailed shapes can cost a little more.\n      <\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Complex Shapes<\/h3>\n      <p>\n        Most designs don\u2019t have a separate custom-shape fee, but extra cutting work may add roughly\n        <strong>+$0.10\u2013$0.20\/pc<\/strong>.\n      <\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Rush Production<\/h3>\n      <p>\n        Usually around <strong>15%\u201325%<\/strong> of the order.\n        On a $2.00 piece, that works out to about <strong>+$0.30\u2013$0.50\/pc<\/strong>.\n      <\/p>\n    <\/div>\n\n    <div class=\"vp-extra-costs__item\">\n      <h3>Special Packaging<\/h3>\n      <p>\n        Backing cards or individual packaging may add around\n        <strong>+$0.20\u2013$0.35\/pc<\/strong>.\n        Boxes can be closer to <strong>+$0.60\u2013$1.00+\/pc<\/strong>.\n      <\/p>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<h2 id=\"how-to-lower-your-costs\" class=\"wp-block-heading has-large-font-size\">How to Lower Your Costs<\/h2>\n\n\n\n<style data-wp-block-html=\"css\">\n.vp-save-tips {\n  width: 100%;\n  margin: 26px 0;\n}\n\n.vp-save-tips__list {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 14px;\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n\n.vp-save-tips__item {\n  display: flex;\n  align-items: flex-start;\n  gap: 16px;\n  padding: 20px 22px;\n  background: #fff;\n  border: 1px solid #e4e9ef;\n  border-radius: 12px;\n  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.035);\n  transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n\n.vp-save-tips__item:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.055);\n}\n\n.vp-save-tips__item:last-child {\n  grid-column: 1 \/ -1;\n}\n\n.vp-save-tips__number {\n  flex: 0 0 42px;\n  width: 42px;\n  height: 42px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: #f1f7fc;\n  border-radius: 9px;\n  color: #1769aa;\n  font-size: 13px;\n  font-weight: 700;\n  line-height: 1;\n}\n\n.vp-save-tips__item p {\n  margin: 0;\n  color: #4a4a4a;\n  font-size: 15.5px;\n  line-height: 1.7;\n}\n\n@media (max-width: 760px) {\n  .vp-save-tips__list {\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n\n  .vp-save-tips__item:last-child {\n    grid-column: auto;\n  }\n}\n\n@media (max-width: 520px) {\n  .vp-save-tips {\n    margin: 20px 0;\n  }\n\n  .vp-save-tips__item {\n    gap: 12px;\n    padding: 16px;\n    border-radius: 10px;\n  }\n\n  .vp-save-tips__number {\n    flex-basis: 36px;\n    width: 36px;\n    height: 36px;\n    font-size: 12px;\n  }\n\n  .vp-save-tips__item p {\n    font-size: 15px;\n    line-height: 1.65;\n  }\n}\n<\/style>\n\n<section class=\"vp-save-tips\" aria-label=\"Ways to reduce custom patch costs\">\n  <ol class=\"vp-save-tips__list\">\n\n    <li class=\"vp-save-tips__item\">\n      <span class=\"vp-save-tips__number\" aria-hidden=\"true\">01<\/span>\n      <p>\n        Keep the design simple. Smaller sizes, cleaner shapes, and fewer complicated details\n        are usually easier and cheaper to produce.\n      <\/p>\n    <\/li>\n\n    <li class=\"vp-save-tips__item\">\n      <span class=\"vp-save-tips__number\" aria-hidden=\"true\">02<\/span>\n      <p>\n        Use the right process for the artwork. Not every design needs full embroidery.\n        Woven or printed patches can be a better fit for small details, fine text, or gradients.\n      <\/p>\n    <\/li>\n\n    <li class=\"vp-save-tips__item\">\n      <span class=\"vp-save-tips__number\" aria-hidden=\"true\">03<\/span>\n      <p>\n        Check different quantity breaks. Compare 100, 300, and 500 pieces before ordering.\n        Sometimes a slightly larger order only adds a little to the total but brings the unit price down a lot.\n      <\/p>\n    <\/li>\n\n    <li class=\"vp-save-tips__item\">\n      <span class=\"vp-save-tips__number\" aria-hidden=\"true\">04<\/span>\n      <p>\n        Approve the artwork carefully before sampling. Make sure the size, colors, and layout\n        are right first so you don\u2019t pay for unnecessary revisions or extra samples.\n      <\/p>\n    <\/li>\n\n    <li class=\"vp-save-tips__item\">\n      <span class=\"vp-save-tips__number\" aria-hidden=\"true\">05<\/span>\n      <p>\n        Skip extras you don\u2019t need. Velcro, specialty threads, 3D embroidery, rush production,\n        and custom packaging can all raise the price. Standard options are usually enough for most orders.\n      <\/p>\n    <\/li>\n\n  <\/ol>\n<\/section>\n\n\n\n<style data-wp-block-html=\"css\">\n\/* =========================================\n   VeperPins Custom Patches Calculator\n   ========================================= *\/\n\n.vp-patch-calculator,\n.vp-patch-calculator * {\n  box-sizing: border-box;\n}\n\n.vp-patch-calculator {\n  width: 100%;\n  margin: 30px 0;\n}\n\n.vp-patch-calculator__inner {\n  width: 100%;\n  max-width: 980px;\n  margin: 0 auto;\n  padding: 34px;\n\n  background: #101010;\n  border: 1px solid #2c2c2c;\n  border-radius: 18px;\n}\n\n\n\/* Header *\/\n\n.vp-patch-calculator__header {\n  margin-bottom: 26px;\n}\n\n.vp-patch-calculator__header h3 {\n  margin: 0 0 9px;\n\n  color: #fff;\n  font-size: 26px;\n  font-weight: 700;\n  line-height: 1.3;\n}\n\n.vp-patch-calculator__header p {\n  margin: 0;\n\n  color: #b5b5b5;\n  font-size: 16px;\n  line-height: 1.65;\n}\n\n\n\/* Fields *\/\n\n.vp-patch-calculator__fields {\n  display: grid;\n  grid-template-columns: 1.4fr 1fr 1fr;\n  gap: 15px;\n}\n\n.vp-patch-calculator__field {\n  min-width: 0;\n}\n\n.vp-patch-calculator__field label {\n  display: block;\n\n  margin: 0 0 8px;\n\n  color: #eee;\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.4;\n}\n\n.vp-patch-calculator__field select {\n  display: block;\n\n  width: 100%;\n  height: 52px;\n\n  padding: 0 42px 0 15px;\n\n  color: #fff;\n  font-family: inherit;\n  font-size: 16px;\n\n  background: #1d1d1d;\n\n  border: 1px solid #3d3d3d;\n  border-radius: 9px;\n\n  cursor: pointer;\n\n  transition:\n    border-color 0.2s ease,\n    background-color 0.2s ease,\n    box-shadow 0.2s ease;\n}\n\n.vp-patch-calculator__field select:hover {\n  background: #222;\n  border-color: #666;\n}\n\n.vp-patch-calculator__field select:focus {\n  outline: none;\n\n  border-color: #999;\n\n  box-shadow:\n    0 0 0 3px rgba(255, 255, 255, 0.07);\n}\n\n.vp-patch-calculator__field select option {\n  color: #fff;\n  background: #1d1d1d;\n}\n\n\n\/* Results *\/\n\n.vp-patch-calculator__results {\n  display: grid;\n  grid-template-columns: 1fr auto 1fr;\n  align-items: center;\n\n  margin-top: 25px;\n  padding: 25px 28px;\n\n  background: #191919;\n  border: 1px solid #333;\n  border-radius: 13px;\n}\n\n.vp-patch-calculator__result {\n  display: flex;\n  flex-direction: column;\n  gap: 6px;\n}\n\n.vp-patch-calculator__result:last-child {\n  text-align: right;\n}\n\n.vp-patch-calculator__result span {\n  color: #969696;\n  font-size: 13px;\n  font-weight: 600;\n  line-height: 1.4;\n}\n\n.vp-patch-calculator__result strong {\n  color: #fff;\n  font-size: 30px;\n  font-weight: 750;\n  line-height: 1.2;\n}\n\n.vp-patch-calculator__divider {\n  width: 1px;\n  height: 48px;\n\n  margin: 0 38px;\n\n  background: #3c3c3c;\n}\n\n\n\/* Note *\/\n\n.vp-patch-calculator__note {\n  margin: 15px 0 0;\n\n  color: #8e8e8e;\n  font-size: 13px;\n  line-height: 1.65;\n}\n\n\n\/* CTA *\/\n\n.vp-patch-calculator__cta {\n  display: flex;\n  justify-content: center;\n\n  width: 100%;\n  margin-top: 26px;\n}\n\n.vp-patch-calculator__button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n\n  min-width: 190px;\n  min-height: 50px;\n\n  padding: 0 30px;\n\n  color: #111 !important;\n  font-size: 16px;\n  font-weight: 700;\n\n  text-decoration: none !important;\n\n  background: #fff;\n\n  border: 1px solid #fff;\n  border-radius: 9px;\n\n  transition:\n    background-color 0.2s ease,\n    transform 0.2s ease;\n}\n\n.vp-patch-calculator__button:hover {\n  color: #111 !important;\n\n  background: #e9e9e9;\n\n  text-decoration: none !important;\n\n  transform: translateY(-1px);\n}\n\n.vp-patch-calculator__button:focus-visible {\n  outline: 3px solid rgba(255, 255, 255, 0.25);\n  outline-offset: 4px;\n}\n\n\n\/* Tablet *\/\n\n@media (max-width: 760px) {\n\n  .vp-patch-calculator__inner {\n    padding: 26px;\n  }\n\n  .vp-patch-calculator__fields {\n    grid-template-columns: 1fr 1fr;\n  }\n\n  .vp-patch-calculator__field:first-child {\n    grid-column: 1 \/ -1;\n  }\n}\n\n\n\/* Mobile *\/\n\n@media (max-width: 520px) {\n\n  .vp-patch-calculator {\n    margin: 22px 0;\n  }\n\n  .vp-patch-calculator__inner {\n    padding: 20px 16px;\n\n    border-radius: 13px;\n  }\n\n  .vp-patch-calculator__header {\n    margin-bottom: 21px;\n  }\n\n  .vp-patch-calculator__header h3 {\n    font-size: 22px;\n  }\n\n  .vp-patch-calculator__header p {\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .vp-patch-calculator__fields {\n    grid-template-columns: 1fr;\n    gap: 14px;\n  }\n\n  .vp-patch-calculator__field:first-child {\n    grid-column: auto;\n  }\n\n  .vp-patch-calculator__field select {\n    height: 52px;\n    font-size: 16px;\n  }\n\n  .vp-patch-calculator__results {\n    grid-template-columns: 1fr;\n    gap: 18px;\n\n    margin-top: 22px;\n    padding: 20px;\n  }\n\n  .vp-patch-calculator__divider {\n    width: 100%;\n    height: 1px;\n\n    margin: 0;\n  }\n\n  .vp-patch-calculator__result:last-child {\n    text-align: left;\n  }\n\n  .vp-patch-calculator__result strong {\n    font-size: 27px;\n  }\n\n  .vp-patch-calculator__button {\n    width: 100%;\n    max-width: 280px;\n    min-height: 52px;\n  }\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(function () {\n\n  const patchPricing = {\n\n    \/* ========================================\n       50% EMBROIDERED\n       Minimum quantity: 100 pcs\n       ======================================== *\/\n\n    emb50: {\n      quantities: [100, 200, 300, 500, 1000, 2000],\n\n      prices: {\n        \"1\":   [1.48, 0.86, 0.75, 0.60, 0.50, 0.47],\n        \"1.5\": [1.48, 0.86, 0.75, 0.60, 0.50, 0.47],\n        \"2\":   [1.48, 0.86, 0.75, 0.60, 0.50, 0.47],\n        \"2.5\": [1.70, 1.13, 0.96, 0.79, 0.65, 0.61],\n        \"3\":   [1.99, 1.29, 1.21, 0.98, 0.66, 0.63],\n        \"3.5\": [2.25, 1.64, 1.54, 1.21, 0.86, 0.80],\n        \"4\":   [2.55, 1.81, 1.66, 1.41, 1.09, 1.03],\n        \"4.5\": [3.07, 2.09, 2.00, 1.62, 1.25, 1.17],\n        \"5\":   [3.39, 2.67, 2.32, 1.75, 1.48, 1.36],\n        \"5.5\": [4.12, 2.98, 2.51, 2.10, 1.81, 1.70],\n        \"6\":   [4.71, 3.75, 3.27, 2.79, 2.60, 2.48],\n        \"6.5\": [5.31, 4.30, 3.90, 2.98, 2.80, 2.68],\n        \"7\":   [6.49, 5.24, 4.81, 4.04, 3.64, 3.43]\n      }\n    },\n\n\n    \/* ========================================\n       75% EMBROIDERED\n       ======================================== *\/\n\n    emb75: {\n      quantities: [100, 200, 300, 500, 1000, 2000],\n\n      prices: {\n        \"2\":   [1.52, 0.85, 0.72, 0.57, 0.46, 0.40],\n        \"2.5\": [1.74, 1.16, 0.96, 0.78, 0.62, 0.58],\n        \"3\":   [2.06, 1.34, 1.24, 0.98, 0.63, 0.60],\n        \"3.5\": [2.38, 1.73, 1.62, 1.25, 0.86, 0.82],\n        \"4\":   [2.70, 1.91, 1.74, 1.47, 1.12, 1.06],\n        \"4.5\": [3.17, 2.25, 2.12, 1.71, 1.29, 1.20],\n        \"5\":   [3.63, 2.88, 2.50, 1.86, 1.54, 1.43],\n        \"5.5\": [4.46, 3.26, 2.49, 2.29, 1.96, 1.85],\n        \"6\":   [5.12, 4.10, 3.57, 3.03, 2.84, 2.72],\n        \"6.5\": [5.80, 4.74, 4.28, 3.26, 3.06, 2.94],\n        \"7\":   [7.23, 5.78, 5.28, 4.46, 3.99, 3.75]\n      }\n    },\n\n\n    \/* ========================================\n       100% EMBROIDERED\n       ======================================== *\/\n\n    emb100: {\n      quantities: [100, 200, 300, 500, 1000, 2000],\n\n      prices: {\n        \"2\":   [1.65, 0.92, 0.81, 0.62, 0.50, 0.45],\n        \"2.5\": [1.93, 1.29, 1.07, 0.89, 0.69, 0.64],\n        \"3\":   [2.26, 1.50, 1.39, 1.11, 0.71, 0.68],\n        \"3.5\": [2.59, 1.93, 1.80, 1.40, 0.96, 0.91],\n        \"4\":   [2.96, 2.14, 1.95, 1.65, 1.25, 1.18],\n        \"4.5\": [3.59, 2.50, 2.34, 1.90, 1.44, 1.34],\n        \"5\":   [4.04, 3.17, 2.77, 2.06, 1.71, 1.59],\n        \"5.5\": [4.89, 3.56, 2.97, 2.52, 2.15, 2.02],\n        \"6\":   [5.58, 4.53, 3.95, 3.35, 3.15, 3.01],\n        \"6.5\": [6.35, 5.19, 4.70, 3.58, 3.36, 3.24],\n        \"7\":   [7.84, 6.36, 5.81, 4.90, 4.39, 4.12]\n      }\n    },\n\n\n    \/* ========================================\n       WOVEN\n       ======================================== *\/\n\n    woven: {\n      quantities: [25, 50, 100, 200, 300, 500, 1000, 2000],\n\n      prices: {\n        \"1.5\": [4.79, 3.28, 2.01, 1.38, 1.29, 1.09, 1.00, 0.95],\n        \"2\":   [6.96, 3.70, 2.21, 1.48, 1.37, 1.18, 1.07, 1.01],\n        \"2.5\": [8.13, 4.12, 2.49, 1.86, 1.63, 1.45, 1.25, 1.20],\n        \"3\":   [9.27, 4.63, 2.82, 2.06, 1.95, 1.67, 1.27, 1.24],\n        \"3.5\": [10.77, 5.13, 3.16, 2.49, 2.37, 1.96, 1.52, 1.47],\n        \"4\":   [12.19, 5.67, 3.52, 2.70, 2.51, 2.21, 1.81, 1.74],\n        \"4.5\": [13.73, 6.63, 4.15, 3.06, 2.91, 2.46, 2.00, 1.90],\n        \"5\":   [15.74, 7.30, 4.60, 3.73, 3.33, 2.63, 2.27, 2.15],\n        \"5.5\": [17.89, 8.57, 5.45, 4.12, 3.53, 3.08, 2.71, 2.58],\n        \"6\":   [22.09, 9.60, 6.14, 5.09, 4.51, 3.92, 3.71, 3.57],\n        \"6.5\": [24.27, 10.77, 6.91, 5.76, 5.26, 4.14, 3.93, 3.80],\n        \"7\":   [26.75, 12.98, 8.40, 6.92, 6.37, 5.46, 4.96, 4.68]\n      }\n    },\n\n\n    \/* ========================================\n       CHENILLE\n       ======================================== *\/\n\n    chenille: {\n      quantities: [50, 100, 200, 300, 500, 1000, 3000],\n\n      prices: {\n        \"2\":   [4.96, 3.26, 2.06, 1.66, 1.28, 1.02, 0.86],\n        \"2.5\": [6.07, 4.00, 2.49, 2.24, 1.54, 1.22, 1.00],\n        \"3\":   [6.35, 4.20, 2.69, 2.43, 1.74, 1.41, 1.19],\n        \"3.5\": [7.56, 4.99, 3.19, 2.58, 2.04, 1.67, 1.41],\n        \"4\":   [9.05, 6.00, 4.56, 3.19, 2.56, 2.11, 1.81],\n        \"4.5\": [12.55, 7.20, 5.32, 4.31, 3.48, 2.83, 2.34]\n      }\n    },\n\n\n    \/* ========================================\n       PRINTED\n       ======================================== *\/\n\n    printed: {\n      quantities: [25, 50, 100, 200, 300, 500, 1000, 2000],\n\n      prices: {\n        \"2\":   [7.08, 3.81, 2.31, 1.60, 1.47, 1.29, 1.18, 1.13],\n        \"2.5\": [8.24, 4.24, 2.59, 1.97, 1.74, 1.56, 1.37, 1.32],\n        \"3\":   [9.39, 4.75, 2.94, 2.17, 2.06, 1.78, 1.39, 1.35],\n        \"3.5\": [10.87, 5.25, 3.27, 2.59, 2.47, 2.07, 1.73, 1.69],\n        \"4\":   [12.30, 5.79, 3.63, 2.81, 2.63, 2.31, 2.03, 1.86],\n        \"4.5\": [13.84, 6.74, 5.39, 4.29, 3.01, 2.57, 2.12, 2.01],\n        \"5\":   [15.85, 7.41, 5.83, 3.84, 3.44, 2.73, 2.49, 2.26]\n      }\n    },\n\n\n    \/* ========================================\n       SYNTHETIC LEATHER\n       ======================================== *\/\n\n    leather: {\n      quantities: [100, 200, 300, 500, 1000, 2000],\n\n      prices: {\n        \"2\":   [2.38, 1.54, 1.42, 1.24, 1.13, 1.07],\n        \"2.5\": [2.66, 1.91, 1.69, 1.51, 1.30, 1.26],\n        \"3\":   [2.99, 2.12, 2.00, 1.72, 1.33, 1.29],\n        \"3.5\": [3.33, 2.54, 2.42, 2.01, 1.58, 1.53],\n        \"4\":   [3.69, 2.75, 2.56, 2.26, 1.87, 1.80],\n        \"4.5\": [4.33, 3.11, 2.96, 2.52, 2.06, 1.97],\n        \"5\":   [4.77, 3.79, 3.38, 2.68, 2.32, 2.21],\n        \"5.5\": [5.66, 4.19, 3.58, 3.14, 2.77, 2.65],\n        \"6\":   [6.31, 5.15, 4.56, 3.97, 3.77, 3.63],\n        \"6.5\": [7.08, 5.81, 5.32, 4.21, 3.98, 3.85],\n        \"7\":   [8.45, 6.98, 6.43, 5.55, 5.02, 4.75]\n      }\n    },\n\n\n    \/* ========================================\n       PVC\n       ======================================== *\/\n\n    pvc: {\n      quantities: [50, 100, 200, 300, 500, 1000, 3000],\n\n      prices: {\n        \"2\":   [4.87, 3.17, 1.97, 1.57, 1.19, 0.93, 0.77],\n        \"2.5\": [5.98, 3.91, 2.40, 2.15, 1.45, 1.13, 0.91],\n        \"3\":   [6.26, 4.11, 2.60, 2.34, 1.65, 1.32, 1.10],\n        \"3.5\": [7.47, 4.90, 3.10, 2.49, 1.95, 1.58, 1.32],\n        \"4\":   [8.96, 5.91, 4.47, 3.10, 2.47, 2.02, 1.72],\n        \"4.5\": [12.46, 7.11, 5.23, 4.22, 3.39, 2.74, 2.25]\n      }\n    }\n\n  };\n\n\n  function initVeperPatchCalculator() {\n\n    const root = document.getElementById(\"vpPatchCalculator\");\n\n    if (!root) {\n      return;\n    }\n\n    const typeSelect =\n      root.querySelector(\"#vpPatchType\");\n\n    const sizeSelect =\n      root.querySelector(\"#vpPatchSize\");\n\n    const quantitySelect =\n      root.querySelector(\"#vpPatchQuantity\");\n\n    const unitPriceElement =\n      root.querySelector(\"#vpPatchUnitPrice\");\n\n    const totalPriceElement =\n      root.querySelector(\"#vpPatchTotalPrice\");\n\n\n    function formatSize(size) {\n\n      const number = Number(size);\n\n      if (Number.isInteger(number)) {\n        return number + \" Inch\";\n      }\n\n      return number.toFixed(1) + \" Inch\";\n    }\n\n\n    function formatQuantity(quantity) {\n\n      return (\n        Number(quantity).toLocaleString(\"en-US\") +\n        \" pcs\"\n      );\n    }\n\n\n    function populateSizes() {\n\n      const data =\n        patchPricing[typeSelect.value];\n\n      sizeSelect.innerHTML = \"\";\n\n\n      Object.keys(data.prices)\n        .map(Number)\n        .sort(function (a, b) {\n          return a - b;\n        })\n        .forEach(function (size) {\n\n          const option =\n            document.createElement(\"option\");\n\n          option.value =\n            String(size);\n\n          option.textContent =\n            formatSize(size);\n\n          sizeSelect.appendChild(option);\n\n        });\n\n    }\n\n\n    function populateQuantities() {\n\n      const data =\n        patchPricing[typeSelect.value];\n\n      quantitySelect.innerHTML = \"\";\n\n\n      data.quantities.forEach(function (quantity) {\n\n        const option =\n          document.createElement(\"option\");\n\n        option.value =\n          String(quantity);\n\n        option.textContent =\n          formatQuantity(quantity);\n\n        quantitySelect.appendChild(option);\n\n      });\n\n    }\n\n\n    function calculatePrice() {\n\n      const data =\n        patchPricing[typeSelect.value];\n\n      const size =\n        sizeSelect.value;\n\n      const quantity =\n        Number(quantitySelect.value);\n\n\n      if (!data || !data.prices[size]) {\n\n        unitPriceElement.textContent = \"\u2014\";\n        totalPriceElement.textContent = \"\u2014\";\n\n        return;\n      }\n\n\n      const quantityIndex =\n        data.quantities.indexOf(quantity);\n\n\n      if (quantityIndex === -1) {\n\n        unitPriceElement.textContent = \"\u2014\";\n        totalPriceElement.textContent = \"\u2014\";\n\n        return;\n      }\n\n\n      const unitPrice =\n        data.prices[size][quantityIndex];\n\n\n      if (\n        typeof unitPrice !== \"number\" ||\n        !Number.isFinite(unitPrice)\n      ) {\n\n        unitPriceElement.textContent = \"\u2014\";\n        totalPriceElement.textContent = \"\u2014\";\n\n        return;\n      }\n\n\n      const totalPrice =\n        unitPrice * quantity;\n\n\n      unitPriceElement.textContent =\n        \"$\" +\n        unitPrice.toFixed(2) +\n        \"\/pc\";\n\n\n      totalPriceElement.textContent =\n        \"$\" +\n        totalPrice.toLocaleString(\n          \"en-US\",\n          {\n            minimumFractionDigits: 2,\n            maximumFractionDigits: 2\n          }\n        );\n\n    }\n\n\n    function updateType() {\n\n      populateSizes();\n      populateQuantities();\n      calculatePrice();\n\n    }\n\n\n    typeSelect.addEventListener(\n      \"change\",\n      updateType\n    );\n\n    sizeSelect.addEventListener(\n      \"change\",\n      calculatePrice\n    );\n\n    quantitySelect.addEventListener(\n      \"change\",\n      calculatePrice\n    );\n\n\n    \/* Default:\n       50% Embroidered\n       1 Inch\n       100 pcs\n    *\/\n\n    typeSelect.value = \"emb50\";\n\n    populateSizes();\n    populateQuantities();\n\n    sizeSelect.value = \"1\";\n    quantitySelect.value = \"100\";\n\n    calculatePrice();\n\n  }\n\n\n  if (document.readyState === \"loading\") {\n\n    document.addEventListener(\n      \"DOMContentLoaded\",\n      initVeperPatchCalculator,\n      { once: true }\n    );\n\n  } else {\n\n    initVeperPatchCalculator();\n\n  }\n\n})();\n<\/script>\n\n<section\n  class=\"vp-patch-calculator\"\n  id=\"vpPatchCalculator\"\n  aria-labelledby=\"vpPatchCalculatorTitle\"\n>\n  <div class=\"vp-patch-calculator__inner\">\n\n    <div class=\"vp-patch-calculator__header\">\n      <h3 id=\"vpPatchCalculatorTitle\">Custom Patches Calculator<\/h3>\n\n      <p>\n        Use VeperPins\u2019 online calculator to calculate your patch price!\n      <\/p>\n    <\/div>\n\n\n    <div class=\"vp-patch-calculator__fields\">\n\n      <div class=\"vp-patch-calculator__field\">\n        <label for=\"vpPatchType\">Patch Type<\/label>\n\n        <select id=\"vpPatchType\">\n          <option value=\"emb50\">50% Embroidered<\/option>\n          <option value=\"emb75\">75% Embroidered<\/option>\n          <option value=\"emb100\">100% Embroidered<\/option>\n          <option value=\"woven\">Woven<\/option>\n          <option value=\"chenille\">Chenille<\/option>\n          <option value=\"printed\">Printed<\/option>\n          <option value=\"leather\">Synthetic Leather<\/option>\n          <option value=\"pvc\">PVC<\/option>\n        <\/select>\n      <\/div>\n\n\n      <div class=\"vp-patch-calculator__field\">\n        <label for=\"vpPatchSize\">Size<\/label>\n\n        <select id=\"vpPatchSize\">\n          <option>Loading&#8230;<\/option>\n        <\/select>\n      <\/div>\n\n\n      <div class=\"vp-patch-calculator__field\">\n        <label for=\"vpPatchQuantity\">Quantity<\/label>\n\n        <select id=\"vpPatchQuantity\">\n          <option>Loading&#8230;<\/option>\n        <\/select>\n      <\/div>\n\n    <\/div>\n\n\n    <div\n      class=\"vp-patch-calculator__results\"\n      aria-live=\"polite\"\n      aria-atomic=\"true\"\n    >\n\n      <div class=\"vp-patch-calculator__result\">\n        <span>Price Per Piece<\/span>\n        <strong id=\"vpPatchUnitPrice\">\u2014<\/strong>\n      <\/div>\n\n      <div\n        class=\"vp-patch-calculator__divider\"\n        aria-hidden=\"true\"\n      ><\/div>\n\n      <div class=\"vp-patch-calculator__result\">\n        <span>Estimated Total<\/span>\n        <strong id=\"vpPatchTotalPrice\">\u2014<\/strong>\n      <\/div>\n\n    <\/div>\n\n\n    <p class=\"vp-patch-calculator__note\">\n      Prices are estimates based on the selected patch type, size, and quantity.\n      Backing, borders, rush production, packaging, and other options may affect the final quote.\n    <\/p>\n\n\n    <div class=\"vp-patch-calculator__cta\">\n      <a\n        href=\"https:\/\/veperpins.com\/custom-patches-quote\/\"\n        class=\"vp-patch-calculator__button\"\n      >\n        Get a Quote\n      <\/a>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n\n<h2 id=\"get-the-right-custom-patch-without-overpaying\" class=\"wp-block-heading has-large-font-size\">Get the Right Custom Patch Without Overpaying<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No matter what type of custom patch you choose, we look at two things first: your budget and how the finished patch needs to look and perform. At VeperPins, we won\u2019t push extra finishes, backing options, or production methods you don\u2019t actually need just to raise the price.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With more than 20 years of production experience, we know where it makes sense to spend a little more and where you can save without hurting the final result. If you already have your artwork and quantity, send them over. We\u2019ll help you choose the right setup for how the patch will actually be used and give you an accurate quote.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column vp-blog-sidebar-wrap is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:344px\">\n<aside class=\"vp-sidebar\" aria-label=\"Article Sidebar\">\n  <section class=\"vp-side-box vp-side-cta\">\n    <h3>Need a Custom Quote?<\/h3>\n    <p>\n      Get factory-direct pricing, free design support, and fast production for custom promotional products.\n    <\/p>\n    <a href=\"https:\/\/veperpins.com\/get-quote\/\" class=\"vp-side-btn\">Get Free Quote<\/a>\n  <\/section>\n\n  <section class=\"vp-side-box\">\n    <h3>Why Work With Us<\/h3>\n    <ul class=\"vp-side-list\">\n      <li>Low Minimum Order Quantity<\/li>\n      <li>Free Artwork Support<\/li>\n      <li>Fast Turnaround<\/li>\n      <li>Worldwide Shipping<\/li>\n    <\/ul>\n  <\/section>\n\n  <section class=\"vp-side-box\">\n    <h3>View Pricing<\/h3>\n    <div class=\"vp-side-tags\">\n      <a href=\"https:\/\/veperpins.com\/custom-pins-pricing\/\">Custom Pins Pricing<\/a>\n      <a href=\"https:\/\/veperpins.com\/custom-coins-pricing\/\">Challenge Coins Pricing<\/a>\n      <a href=\"https:\/\/veperpins.com\/custom-medals-pricing\/\">Medals Pricing<\/a>\n      <a href=\"https:\/\/veperpins.com\/custom-keychains-pricing\/\">Keychains Pricing<\/a>\n      <a href=\"https:\/\/veperpins.com\/custom-patches-pricing\/\">Patches Pricing<\/a>\n    <\/div>\n  <\/section>\n\n  <section class=\"vp-side-box\">\n    <h3>Share This Article<\/h3>\n    <div class=\"vp-side-share\">\n      <a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/veperpins.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Facebook<\/a>\n      <a href=\"https:\/\/twitter.com\/intent\/tweet?url=https:\/\/veperpins.com\/&#038;text=Check%20this%20out\" target=\"_blank\" rel=\"noopener noreferrer\">X<\/a>\n      <a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https:\/\/veperpins.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn<\/a>\n    <\/div>\n  <\/section>\n<\/aside>\n<\/div>\n<\/div>\n\n\n\n<style data-wp-block-html=\"css\">\n\/* =========================\n   VeperPins Patch Pricing FAQ\n   ========================= *\/\n\n.vp-patch-faq {\n  width: calc(100% - 40px);\n  max-width: 1180px;\n  margin: 50px auto;\n  padding: 70px 28px;\n  background: #f5f8fc;\n  border-radius: 30px;\n  box-sizing: border-box;\n  overflow: hidden;\n}\n\n.vp-patch-faq *,\n.vp-patch-faq *::before,\n.vp-patch-faq *::after {\n  box-sizing: border-box;\n}\n\n.vp-patch-faq__wrap {\n  width: 100%;\n  max-width: 980px;\n  margin: 0 auto;\n}\n\n\n\/* =========================\n   Header\n   ========================= *\/\n\n.vp-patch-faq__header {\n  max-width: 760px;\n  margin: 0 auto 34px;\n  text-align: center;\n}\n\n.vp-patch-faq__label {\n  display: inline-block;\n  margin-bottom: 10px;\n  font-size: 13px;\n  font-weight: 700;\n  line-height: 1.4;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  color: #356fa8;\n}\n\n.vp-patch-faq__header h2 {\n  margin: 0;\n  font-size: clamp(30px, 4vw, 44px);\n  line-height: 1.15;\n  font-weight: 750;\n  color: #17202a;\n}\n\n.vp-patch-faq__header p {\n  max-width: 680px;\n  margin: 14px auto 0;\n  font-size: 16px;\n  line-height: 1.7;\n  color: #5b6774;\n}\n\n\n\/* =========================\n   FAQ List\n   ========================= *\/\n\n.vp-patch-faq__list {\n  display: flex;\n  flex-direction: column;\n  gap: 12px;\n}\n\n\n\/* =========================\n   Individual FAQ\n   ========================= *\/\n\n.vp-patch-faq__item {\n  margin: 0;\n  overflow: hidden;\n  background: #ffffff;\n  border: 1px solid #dfe7ef;\n  border-radius: 14px;\n  transition:\n    border-color 0.2s ease,\n    box-shadow 0.2s ease,\n    transform 0.2s ease;\n}\n\n.vp-patch-faq__item:hover {\n  border-color: #c8d8e7;\n}\n\n.vp-patch-faq__item[open] {\n  border-color: #c6d8e9;\n  box-shadow: 0 10px 30px rgba(34, 62, 90, 0.07);\n}\n\n\n\/* =========================\n   Summary\n   ========================= *\/\n\n.vp-patch-faq__item summary {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 24px;\n  width: 100%;\n  padding: 22px 24px;\n  cursor: pointer;\n  list-style: none;\n  font-size: 17px;\n  font-weight: 700;\n  line-height: 1.45;\n  color: #1b2632;\n}\n\n.vp-patch-faq__item summary::-webkit-details-marker {\n  display: none;\n}\n\n.vp-patch-faq__item summary::marker {\n  display: none;\n}\n\n.vp-patch-faq__item summary:hover {\n  color: #245f96;\n}\n\n\n\/* =========================\n   Plus \/ Minus Icon\n   ========================= *\/\n\n.vp-patch-faq__icon {\n  position: relative;\n  flex: 0 0 30px;\n  width: 30px;\n  height: 30px;\n  border-radius: 50%;\n  background: #eef5fb;\n}\n\n.vp-patch-faq__icon::before,\n.vp-patch-faq__icon::after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  width: 12px;\n  height: 2px;\n  border-radius: 2px;\n  background: #356fa8;\n  transform: translate(-50%, -50%);\n  transition: transform 0.2s ease;\n}\n\n.vp-patch-faq__icon::after {\n  transform: translate(-50%, -50%) rotate(90deg);\n}\n\n.vp-patch-faq__item[open] .vp-patch-faq__icon::after {\n  transform: translate(-50%, -50%) rotate(0deg);\n}\n\n\n\/* =========================\n   Answer\n   ========================= *\/\n\n.vp-patch-faq__answer {\n  padding: 0 24px 24px;\n  border-top: 1px solid #edf1f5;\n}\n\n.vp-patch-faq__answer p {\n  margin: 16px 0 0;\n  font-size: 15.5px;\n  line-height: 1.75;\n  color: #4c5966;\n}\n\n.vp-patch-faq__answer strong {\n  font-weight: 700;\n  color: #182532;\n}\n\n\n\/* =========================\n   Backing Price List\n   ========================= *\/\n\n.vp-patch-faq__price-list {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  gap: 8px 12px;\n  margin: 18px 0 4px;\n  padding: 0;\n  list-style: none;\n}\n\n.vp-patch-faq__price-list li {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 15px;\n  padding: 11px 14px;\n  background: #f7fafc;\n  border: 1px solid #e5edf4;\n  border-radius: 9px;\n  font-size: 14px;\n  line-height: 1.4;\n  color: #455361;\n}\n\n.vp-patch-faq__price-list strong {\n  white-space: nowrap;\n  color: #245f96;\n}\n\n\n\/* =========================\n   Quote Checklist\n   ========================= *\/\n\n.vp-patch-faq__check-list {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin: 18px 0 4px;\n  padding: 0;\n  list-style: none;\n}\n\n.vp-patch-faq__check-list li {\n  position: relative;\n  padding: 8px 13px 8px 30px;\n  background: #f7fafc;\n  border: 1px solid #e4ebf2;\n  border-radius: 999px;\n  font-size: 14px;\n  line-height: 1.4;\n  color: #455361;\n}\n\n.vp-patch-faq__check-list li::before {\n  content: \"\u2713\";\n  position: absolute;\n  left: 11px;\n  top: 50%;\n  transform: translateY(-50%);\n  font-size: 13px;\n  font-weight: 700;\n  color: #356fa8;\n}\n\n\n\/* =========================\n   Tablet\n   ========================= *\/\n\n@media (max-width: 768px) {\n\n  .vp-patch-faq {\n    width: calc(100% - 28px);\n    margin: 36px auto;\n    padding: 52px 20px;\n    border-radius: 24px;\n  }\n\n  .vp-patch-faq__header {\n    margin-bottom: 26px;\n  }\n\n  .vp-patch-faq__header p {\n    font-size: 15px;\n  }\n\n  .vp-patch-faq__item summary {\n    padding: 19px 18px;\n    gap: 16px;\n    font-size: 16px;\n  }\n\n  .vp-patch-faq__answer {\n    padding: 0 18px 20px;\n  }\n\n  .vp-patch-faq__answer p {\n    font-size: 15px;\n  }\n\n}\n\n\n\/* =========================\n   Mobile\n   ========================= *\/\n\n@media (max-width: 560px) {\n\n  .vp-patch-faq {\n    width: calc(100% - 20px);\n    margin: 28px auto;\n    padding: 42px 14px;\n    border-radius: 20px;\n  }\n\n  .vp-patch-faq__header {\n    text-align: left;\n    margin-bottom: 24px;\n  }\n\n  .vp-patch-faq__label {\n    font-size: 12px;\n  }\n\n  .vp-patch-faq__header h2 {\n    font-size: 30px;\n  }\n\n  .vp-patch-faq__header p {\n    margin-left: 0;\n    font-size: 15px;\n  }\n\n  .vp-patch-faq__item {\n    border-radius: 12px;\n  }\n\n  .vp-patch-faq__item summary {\n    padding: 18px 16px;\n    font-size: 15.5px;\n    gap: 14px;\n  }\n\n  .vp-patch-faq__icon {\n    flex: 0 0 28px;\n    width: 28px;\n    height: 28px;\n  }\n\n  .vp-patch-faq__answer {\n    padding: 0 16px 18px;\n  }\n\n  .vp-patch-faq__answer p {\n    font-size: 15px;\n    line-height: 1.7;\n  }\n\n  .vp-patch-faq__price-list {\n    grid-template-columns: 1fr;\n  }\n\n  .vp-patch-faq__check-list {\n    gap: 7px;\n  }\n\n}\n<\/style>\n\n<section class=\"vp-patch-faq\" aria-labelledby=\"vp-patch-faq-title\">\n  <div class=\"vp-patch-faq__wrap\">\n\n    <div class=\"vp-patch-faq__header\">\n      <span class=\"vp-patch-faq__label\">Patch Pricing Help<\/span>\n      <h2 id=\"vp-patch-faq-title\">Custom Patch Pricing FAQ<\/h2>\n      <p>\n        Real answers about patch pricing, backing, borders, embroidery coverage,\n        quantities, and getting an accurate quote.\n      <\/p>\n    <\/div>\n\n    <div class=\"vp-patch-faq__list\">\n\n      <details class=\"vp-patch-faq__item\" open>\n        <summary>\n          <span>How much do 100 custom patches cost?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            That depends on the type of patch you\u2019re making.\n          <\/p>\n\n          <p>\n            For a 3-inch patch, 100 embroidered patches are around\n            <strong>$3 each<\/strong>, while 100 PVC patches are around\n            <strong>$4.11 each<\/strong>. Woven, printed, leather, and chenille\n            patches are priced differently.\n          <\/p>\n\n          <p>\n            So quantity alone isn\u2019t enough to give you a useful price. The size\n            and patch type matter too.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>Is the online price the final price I\u2019ll pay?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Not always. Our pricing table and online calculator are great for\n            getting a budget estimate.\n          <\/p>\n\n          <p>\n            Before production, we also look at your artwork, size, backing,\n            border, and any special requests. A standard 3-inch embroidered\n            patch won\u2019t cost the same as one with Hook &amp; Loop and a\n            specialty border.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>Do Iron-On and Velcro backings cost extra?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Some backing options do cost extra. Our current add-on pricing is:\n          <\/p>\n\n          <ul class=\"vp-patch-faq__price-list\">\n            <li>\n              <span>Iron-On<\/span>\n              <strong>+$0.12\/pc<\/strong>\n            <\/li>\n            <li>\n              <span>Adhesive<\/span>\n              <strong>+$0.12\/pc<\/strong>\n            <\/li>\n            <li>\n              <span>Hook<\/span>\n              <strong>+$0.38\/pc<\/strong>\n            <\/li>\n            <li>\n              <span>Loop<\/span>\n              <strong>+$0.38\/pc<\/strong>\n            <\/li>\n            <li>\n              <span>Hook &amp; Loop<\/span>\n              <strong>+$0.58\/pc<\/strong>\n            <\/li>\n            <li>\n              <span>Safety Pin<\/span>\n              <strong>+$0.38\/pc<\/strong>\n            <\/li>\n          <\/ul>\n\n          <p>\n            If the patch is going to be permanently sewn onto clothing, there\u2019s\n            usually no reason to pay extra for Velcro just to have another\n            feature.\n          <\/p>\n\n          <p>\n            For tactical gear, backpacks, uniforms, or name patches that need to\n            be removed and replaced, Hook &amp; Loop can be worth the extra cost.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>How much extra is a Merrowed Border?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Our Merrowed Border is currently\n            <strong>+$0.16 per patch<\/strong>.\n          <\/p>\n\n          <p>\n            But not every design needs one. Round, square, and other simple\n            shapes work well with a merrowed edge. If the outline has a lot of\n            corners, curves, or cut-in areas, a stitched border, laser cut, or\n            another finishing method may work better.\n          <\/p>\n\n          <p>\n            We\u2019d rather look at the shape first and recommend the right border\n            than add a more expensive option you don\u2019t need.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>Should I choose 75% or 100% embroidery coverage?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Don\u2019t assume 100% embroidery is automatically better.\n          <\/p>\n\n          <p>\n            If your design has areas where the background fabric can show,\n            75% coverage may already be enough and can keep the price down.\n          <\/p>\n\n          <p>\n            With 100% embroidery, most or all of the front is covered with\n            thread, giving the patch a fuller and heavier embroidered look.\n          <\/p>\n\n          <p>\n            We can look at your artwork and tell you whether 100% coverage will\n            actually improve the design or just add cost.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>How do you quote a custom-shaped patch?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Send us the width, height, and your artwork.\n          <\/p>\n\n          <p>\n            Stars, shields, animals, logos, and other custom outlines are all\n            possible. For irregular shapes, we need to look at the overall\n            dimensions, the outline, and the border or cutting method before\n            giving you an accurate price.\n          <\/p>\n\n          <p>\n            That\u2019s why simply saying \u201cI need a 3-inch patch\u201d may not be enough\n            for a custom shape.\n          <\/p>\n\n          <p>\n            You can also select <strong>Custom Shaped<\/strong> in the VeperPins\n            quote form and enter both the width and height.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>I only have a logo. Can you quote it before I choose the patch type?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Absolutely. You don\u2019t need to figure out every production detail\n            before asking for a quote.\n          <\/p>\n\n          <p>\n            Send us your logo, sketch, reference image, or even a basic idea.\n            We\u2019ll look at things like small text, gradients, line thickness,\n            colors, and the finished size.\n          <\/p>\n\n          <p>\n            From there, we can tell you whether embroidery, woven, printed, or\n            another patch style makes the most sense for the artwork.\n          <\/p>\n\n          <p>\n            You\u2019ll also see a digital proof before we move into production.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>Can I order a small quantity?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            Yes. VeperPins works with small runs as well as orders in the\n            hundreds or thousands.\n          <\/p>\n\n          <p>\n            Just keep in mind that small orders usually have a higher\n            per-piece price because artwork setup, machine preparation, and\n            other production work are spread across fewer patches.\n          <\/p>\n\n          <p>\n            If you\u2019re deciding between 100, 300, or 500 pieces, compare all\n            three price breaks. Sometimes adding a few more patches doesn\u2019t\n            increase the total by much, but it can bring the unit price down\n            quite a bit.\n          <\/p>\n        <\/div>\n      <\/details>\n\n\n      <details class=\"vp-patch-faq__item\">\n        <summary>\n          <span>What do you need to give me an accurate quote?<\/span>\n          <span class=\"vp-patch-faq__icon\" aria-hidden=\"true\"><\/span>\n        <\/summary>\n\n        <div class=\"vp-patch-faq__answer\">\n          <p>\n            The more complete the information, the more accurate the quote.\n            Ideally, send us:\n          <\/p>\n\n          <ul class=\"vp-patch-faq__check-list\">\n            <li>Patch type<\/li>\n            <li>Width and height<\/li>\n            <li>Quantity<\/li>\n            <li>Backing<\/li>\n            <li>Border style<\/li>\n            <li>Your logo or artwork<\/li>\n          <\/ul>\n\n          <p>\n            If you have an event date or a deadline, send that too.\n          <\/p>\n\n          <p>\n            That lets us tell you what actually adds to the price, what you can\n            skip, and what makes sense for the design instead of starting with\n            a low number and adding surprise charges later.\n          <\/p>\n        <\/div>\n      <\/details>\n\n    <\/div>\n\n  <\/div>\n<\/section>\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"inLanguage\": \"en-US\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How much do 100 custom patches cost?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"That depends on the type of patch you're making. For a 3-inch patch, 100 embroidered patches are around $3 each, while 100 PVC patches are around $4.11 each. Woven, printed, leather, and chenille patches are priced differently. Quantity alone isn't enough to give you a useful price because the size and patch type matter too.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Is the online price the final price I'll pay?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Not always. Our pricing table and online calculator are useful for getting a budget estimate. Before production, we also look at your artwork, size, backing, border, and any special requests.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Do Iron-On and Velcro backings cost extra?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Some backing options do cost extra. Iron-On is +$0.12 per piece, Adhesive is +$0.12 per piece, Hook is +$0.38 per piece, Loop is +$0.38 per piece, Hook & Loop is +$0.58 per piece, and Safety Pin is +$0.38 per piece.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How much extra is a Merrowed Border?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Our Merrowed Border is currently +$0.16 per patch. Simple round, square, and similar shapes work well with a merrowed edge, while irregular shapes may need stitched, laser-cut, or other finishing methods.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Should I choose 75% or 100% embroidery coverage?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"100% embroidery is not automatically better. If your design allows some background fabric to show, 75% coverage may be enough and can keep the price down. 100% coverage gives the patch a fuller embroidered surface.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do you quote a custom-shaped patch?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Send us the width, height, and your artwork. For irregular shapes, we look at the overall dimensions, outline, and border or cutting method before giving an accurate price.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"I only have a logo. Can you quote it before I choose the patch type?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. Send us your logo, sketch, reference image, or basic idea. We review details such as small text, gradients, line thickness, colors, and finished size, then recommend embroidery, woven, printed, or another suitable patch style.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can I order a small quantity?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. VeperPins works with small runs as well as orders in the hundreds or thousands. Small orders usually have a higher per-piece price because setup and production preparation are spread across fewer patches.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What do you need to give me an accurate quote?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Ideally, send us the patch type, width and height, quantity, backing, border style, and your logo or artwork. If you have a deadline or event date, include that too.\"\n      }\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Table of Contents What Affects the Cost of Custom Patches? How Patch Size Affects the Price How Different Patch Types Affect the Price What Other Options Can Increase the Cost? How to Lower Your Costs Get the Right Custom Patch Without Overpaying Table of Contents What Affects the Cost of Custom Patches? How Patch Size&#8230;<\/p>\n","protected":false},"author":1,"featured_media":9492,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[70],"tags":[],"class_list":["post-9482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-patches-guide"],"taxonomy_info":{"category":[{"value":70,"label":"Patches Guide"}]},"featured_image_src_large":["https:\/\/veperpins.com\/wp-content\/uploads\/2026\/09\/How-Much-Do-Custom-Patches-Cost.webp",900,675,false],"author_info":{"display_name":"Shirya","author_link":"https:\/\/veperpins.com\/author\/boom\/"},"comment_info":0,"category_info":[{"term_id":70,"name":"Patches Guide","slug":"patches-guide","term_group":0,"term_taxonomy_id":70,"taxonomy":"category","description":"Explore custom patches including embroidered, woven, and PVC patches. Learn design tips and production methods for your brand or uniforms.","parent":0,"count":18,"filter":"raw","cat_ID":70,"category_count":18,"category_description":"Explore custom patches including embroidered, woven, and PVC patches. Learn design tips and production methods for your brand or uniforms.","cat_name":"Patches Guide","category_nicename":"patches-guide","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/posts\/9482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/comments?post=9482"}],"version-history":[{"count":14,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/posts\/9482\/revisions"}],"predecessor-version":[{"id":9580,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/posts\/9482\/revisions\/9580"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/media\/9492"}],"wp:attachment":[{"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/media?parent=9482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/categories?post=9482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/veperpins.com\/wp-json\/wp\/v2\/tags?post=9482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}