Finished Hole Size vs Drill Size: What Your PCB Drill File Actually Specifies

The email you get back three days after sending the package
You export Gerbers, you export an Excellon drill file, you attach a BOM, you send the RFQ. Three
days later the reply is not a price. It is a question:
> "Please confirm: are the hole sizes in the drill file finished sizes or drilled sizes? And confirm
> which holes are non-plated."
That question costs you the three days. It is also entirely avoidable, because it is not a question
about your board. It is a question about which of two different numbers your file contains, and
only you can answer it.
Here is the asymmetry that makes this the single most common RFQ clarification on drilled boards:
| What it is | Who owns it | When it exists | |
|---|---|---|---|
| Drill size | The diameter of the tool that enters the laminate | The fabricator's tooling list | Before plating |
| Finished hole size (FHS) | The diameter of the hole a part lead or press-fit pin has to pass through | You, in the specification | After plating and surface finish |
Both are legitimate ways to dimension a hole. Neither is wrong. But a CAM engineer who receives a
number with no label has to pick one, and the default in most CAM flows is to read the drill file as
tool diameter, because that is literally what an Excellon file was designed to describe: a tool
list and coordinates for that tool.
If you meant finished size and did not say so, the board is drilled at your number, plated inward,
and arrives smaller than you need. Nothing was violated. The file said what it said.
What sits between the two numbers
The gap is not arbitrary. Three things consume hole diameter after the drill, and each one is a
separate process:
1. Barrel copper. A plated through hole gets electroless copper followed by electroplated
copper on the barrel wall. That plating grows inward from both sides of the hole, so the diameter
loses roughly twice the copper thickness. This is why the finished hole is always smaller than the
drill — never larger.
2. Surface finish. The finish listed on the PCB168 manufacturing capabilities
page — HASL, ENIG, OSP, immersion tin or immersion silver — is deposited on exposed copper,
including the barrel land area and, depending on the finish, into the hole. A thick fused finish
consumes more clearance than a thin immersion one. If your hole has a tight mechanical fit
requirement, the finish is part of the fit stack, not a cosmetic choice.
3. Fill or cap, if specified. The /en/capabilities/ HDI row states via-in-pad is **filled and
capped**. A via that is resin-filled and cap-plated has no usable hole left at all — it is a solid
feature by design. That is correct behaviour for a via under a pad, and catastrophic if the same
hole was supposed to accept a component lead. Which holes get filled is therefore a declaration
that must live next to your hole table, not a process detail you leave downstream. We cover the
fill-versus-cap distinction on its own in
via-in-pad: filled and capped are two declarations.
The practical consequence: **you cannot derive one number from the other without knowing the
fabricator's plating allowance.** You do not have that number, and you should not guess it. What you
can do is state which number you are giving and let the fabricator apply their own compensation.
That is the entire fix.
The one line that closes the question
Put this in the fabrication notes, in the drill file header comment, and in the specification sheet
you attach to the RFQ:
```
ALL HOLE SIZES IN THE DRILL FILE ARE FINISHED (POST-PLATING) SIZES.
FABRICATOR TO APPLY PLATING COMPENSATION.
NPTH HOLES ARE IN A SEPARATE LAYER/TOOL AND ARE TO BE HELD AT THE STATED SIZE, UNPLATED.
```
Three sentences. If your numbers are drilled sizes instead, invert the first line and say so
explicitly. The point is not which convention you pick — it is that the convention is stated by the
party who knows the design intent.
PTH and NPTH in one file: separation is not optional
The second half of that clarification email is about plating, and it is a harder problem than hole
size because a number cannot express it. A 3.2mm mounting hole and a 3.2mm plated hole are
identical in an Excellon tool list. Nothing in the coordinate data distinguishes them.
There are three workable ways to separate them, in descending order of how reliably they survive a
CAM handoff:
Separate drill files. Export two files with unmistakable names —
board-PTH.drl and board-NPTH.drl. This is the most robust method because the distinction
survives even if all documentation is lost. Every ECAD tool can do it.
Separate tools within one file, documented in a hole table. One file, but NPTH sizes are
assigned to their own tool numbers, and your fabrication drawing carries a table mapping each tool
to size, quantity, and PTH/NPTH status. Works well, depends on the drawing being read.
One file plus a note. "Holes at 3.2mm are non-plated." This is the weakest option. It relies on
prose being matched to geometry by a human under time pressure. It is what most RFQs actually do.
Why it matters commercially, not just technically: an NPTH that gets plated may still fit, and may
still pass electrical test, and may fail your assembly because the barrel is now electrically
connected to an internal plane it was supposed to clear. That failure surfaces after you have paid
for the boards. There is no inspection step that catches "this hole should not have been plated"
unless the acceptance documentation says which holes those are — which loops back to whether you
declared them.
A related case worth naming: holes that clear internal copper. If an NPTH passes through a
layer with a plane, the plane needs a clearance keepout around it. That clearance is a design
obligation, not a fabrication one. Sending an NPTH with no keepout and expecting the fabricator to
add one is asking someone else to make an electrical decision about your board.
Where hole tolerance is binding, and where it is decoration
You can write a hole tolerance in three places. They do not carry equal weight.
In the drill file header or as a CAD annotation. Lowest authority. CAM imports geometry;
comments in a drill file are frequently stripped or ignored by the import step. Treat anything here
as a convenience note, never as the contractual statement.
On the fabrication drawing / specification sheet. This is where tolerance belongs. A hole table
with tool, nominal size, tolerance, plating status and quantity is the document CAM actually works
from, and it is the document that gets quoted against. If a spec sheet says one thing and the drill
file implies another, the spec sheet wins — but only if it is attached to the RFQ rather than sent
later. We go through which spec-sheet fields become binding at quote time in
the fabrication specification sheet that binds your quote.
On the purchase order. Highest authority, narrowest scope. The PO is what an incoming inspection
plan is written against. A tolerance that exists on the drawing but not in the PO's acceptance
criteria is a design intent, not an acceptance criterion. If a hole dimension is genuinely
critical — press-fit, bearing fit, a connector with a locating boss — it should appear in both
places.
One thing to be careful about: **do not invent a tolerance number and put it on the drawing as if it
were a capability you were told about.** The PCB168 capabilities page publishes minimum drill sizes,
0.1mm mechanical and 0.075mm laser, and it publishes layer-to-layer registration of ±25μm. It does
not publish a hole diameter tolerance. If your fit needs a specific tolerance, the correct move is
to state the requirement and ask for confirmation before the PO, not to copy a number from a
generic table and assume it was agreed. A tolerance that was never confirmed is a dispute waiting
for a first article.
For general dimensional practice, IPC-2221 covers hole and land relationships, and IPC-6012
describes performance classes for rigid boards including plated hole requirements. Cite them by
name in your spec sheet if you want a class-level baseline. What they cannot do is tell the
fabricator whether *your* numbers are drilled or finished.
Holes that need more than a diameter
Three categories where diameter alone under-specifies the hole, and the RFQ needs an extra field:
Press-fit. The fit is to the pin, not to a nominal. State the connector part number and let the
fabricator work to the connector's published hole recommendation, including plating. A press-fit
hole quoted as a generic PTH at the same diameter is being quoted against a different requirement
than the one you have.
Countersunk and counterbored holes. These need a depth and an angle, and they need to say
whether the counterbore is plated. A diameter in a drill file cannot carry any of that; it belongs
on the drawing with a section view.
Slots and cutouts routed as holes. Some tools emit slots as a drill path, some as a rout path.
If a slot arrives as two coordinates and a tool diameter, its end geometry is ambiguous. Say which
features are routed and give the slot dimensions on the drawing.
The HDI exception: laser vias are not in your drill file's world
Everything above describes mechanically drilled holes. HDI microvias behave differently, and the
difference changes what you are expected to supply.
The PCB168 capabilities page lists HDI stackups from 1+N+1 up to 4+N+4, microvia diameter
≥0.075mm, laser drilling minimum 0.075mm, and minimum line width 2mil. A laser-drilled
microvia in that range is:
- Blind, not through. It connects an outer layer to the layer directly beneath it. It has no
finished hole in the sense a mechanical hole does, because nothing passes through it.
- Defined by the stackup, not by a tool list. Which layer pairs get microvias follows from the
build structure. A drill file that lists a 0.075mm tool without saying which layer transition it
serves is incomplete regardless of how the diameter is labelled.
- Frequently filled. If the microvia sits under a pad,
filled and cappedapplies, and there is
no open hole at all in the finished board.
So for HDI, "finished vs drilled" is the wrong question. The right inputs are: the build class
(1+N+1, 2+N+2, and so on), which layer transitions carry microvias, whether they are stacked or
staggered, and whether they are filled. The aspect-ratio and board-thickness constraints that come
with those choices are covered in
HDI aspect ratio, thin cores and board thickness limits,
and the HDI capability tiers are on the
HDI PCB product page. If you are still deciding between via structures
before you get to any of this, the PCB via design types guide
is the earlier step.
A mixed board — mechanical through holes plus laser microvias — needs both declarations. The
mechanical holes need the finished-versus-drilled statement and PTH/NPTH separation. The microvias
need the stackup declaration. Handling one and not the other is the most common way an HDI RFQ ends
up back in your inbox.
What to put in the RFQ package
A hole specification that does not generate a clarification email contains these fields:
- Hole size convention, stated once, unambiguously: finished or drilled.
- A hole table: tool number, nominal size, PTH/NPTH, quantity, and tolerance where it is
genuinely required.
- PTH/NPTH separation method: separate files, or separate tools plus the table.
- Fill and cap declaration for any via under a pad, with the affected pads identified.
- Special holes called out individually: press-fit with connector part number, countersinks with
depth and angle, slots with their routed dimensions.
- For HDI: build class, microvia layer transitions, stacked or staggered, filled or not.
- Surface finish, because it is part of any tight fit — choose from the finishes on the
capabilities page rather than leaving it open.
None of this requires you to know the fabricator's plating allowance, etch compensation, or tooling
list. That is the point of the division of labour: you declare intent, they apply process
compensation. What breaks the division is a number with no label.
You can send the package to PCB168 for a quote and production review once those fields
are filled. If a field genuinely cannot be decided yet, mark it *to be confirmed* rather than
leaving it blank — an explicit open item gets a question in the quote, and a blank gets a house
default.
FAQ
Do drill files normally contain finished or drilled sizes?
Excellon was designed to describe tools and coordinates, so the default reading in most CAM flows
is tool diameter. Many ECAD tools can export either convention, and some export finished sizes by
default. Because the convention depends on your tool and your settings, it has to be stated
explicitly — you cannot rely on the fabricator's default matching yours.
Can I just give finished sizes and let the fabricator work it out?
Yes, and that is the recommended approach. State that all sizes are finished post-plating sizes and
that the fabricator applies plating compensation. You should not attempt to pre-compensate yourself,
because the allowance depends on their plating process and your board's copper distribution.
Is the finished hole ever larger than the drill?
Not for a plated hole. Plating grows inward, so a PTH is always smaller finished than drilled. An
unplated NPTH is held at the stated size, which is why NPTH must be identified — applying a plating
allowance to a hole that will not be plated makes it oversized.
How should I mark non-plated holes?
Most reliably, export them as a separate drill file with an unmistakable filename. Second best,
assign them their own tool numbers and document PTH/NPTH status in a hole table on the fabrication
drawing. A prose note alone is the weakest option because it depends on someone matching text to
geometry.
What hole tolerance can I expect?
The PCB168 capabilities page publishes minimum drill sizes of 0.1mm mechanical and 0.075mm laser,
but it does not publish a hole diameter tolerance. If your application needs a specific tolerance,
state the requirement in the RFQ and get it confirmed in writing before the PO. Do not copy a
tolerance from a generic industry table and treat it as agreed.
Do HDI laser microvias need a finished hole size?
No. A laser microvia is blind and, when it sits under a pad, typically filled and capped, so there
is no through-hole to dimension. What it needs instead is a build-class declaration, the layer
transitions it serves, stacked-or-staggered structure, and fill status. The capabilities page lists
microvia diameter at ≥0.075mm and stackups from 1+N+1 to 4+N+4 as the framing for those choices.
My board has both mechanical holes and microvias. What changes?
Both declarations are required, side by side. The mechanical holes need the finished-versus-drilled
statement plus PTH/NPTH separation; the microvias need the stackup and fill declaration. Supplying
only one of the two is the usual reason a mixed-technology RFQ comes back with questions.
Need PCBs for Your Project?
Get an instant quote — prototypes from $2, delivered worldwide.
Get Instant Quote