Assay QA/QC Protocol: From Field Sampling to Lab Certificates
Blanks, standards, duplicates — insertion rates, failure thresholds, and the corrective actions when QC fails. A field-to-lab QA/QC protocol for Indonesian projects.
I inherited a project once where the QA/QC protocol was “we send standards every 20th sample and hope.” No blanks. No duplicates. No documentation of which standard went where. Three months in, the lab flagged a systematic bias on Au and we had no baseline to figure out whether the problem was the lab, the sampling, or the database. Six weeks of assays — rerun at the client’s expense.
QA/QC is not a checkbox. It’s the only evidence you have that the numbers in your resource database represent the rock in the ground. JORC 2012 Table 1 Section 1 and KCMI 2017 both require you to disclose your sampling and assay protocols, including QA/QC, in detail. “We did some standards” is not a protocol.
This post covers the full field-to-lab QA/QC protocol I use on Indonesian projects: what to insert, how often, what the failure thresholds are, what to do when things fail, and how to handle the Indonesian laboratory landscape.
The three QC sample types
Certified Reference Materials (standards)
Standards are samples of known grade, certified by an accredited body after round-robin testing across multiple labs. You insert them blind into the sample stream to test whether the lab is reporting the right number.
Insertion rate: 1 standard per 20 samples (5%). For high-value projects or projects with contentious grades, 1 in 10 (10%).
What you need:
- At least three different standards covering the grade range of your deposit: a low-grade, a mid-grade, and a high-grade. A single standard at 1.5 g/t Au tells you nothing about whether the lab is handling your 25 g/t material correctly.
- Standards from at least two different certified producers — don’t put all your trust in one supplier.
- The certificate of analysis for each standard, with the accepted value and the ±2SD and ±3SD windows.
Failure thresholds:
- Warning (±2SD): one standard outside ±2SD — investigate, don’t act yet
- Failure (±3SD): one standard outside ±3SD, OR two consecutive standards outside ±2SD on the same side — quarantine the batch, request re-assay
What “investigate” means: check whether the standard was inserted at the right position in the stream, check whether the lab’s internal QC also failed on that batch, check whether the failure correlates with a specific element or matrix type. One warning is noise. A pattern is a problem.
Blanks
Blanks are samples with no detectable mineralization — typically coarse barren quartz or a certified blank material. You insert them after high-grade samples to test for contamination in the lab preparation (crusher, pulverizer) and in the analytical stream.
Insertion rate: 1 blank per 20 samples (5%). Critically, blanks should be inserted immediately after visually high-grade samples or known high-grade intervals — that’s where contamination shows up.
Failure thresholds:
- Warning: blank returns >5× the detection limit
- Failure: blank returns >10× the detection limit, OR two consecutive blanks above warning — the lab has a contamination problem in sample preparation
Contamination is the most common lab failure I see in Indonesia, and it’s almost always in the pulverizer. A lab processing 200 samples a day on a single pulverizer without adequate cleaning between samples will cross-contaminate. The blank is the only thing that catches it.
Duplicates
Duplicates test reproducibility — can the same material, sampled and assayed twice, produce the same answer? There are two types:
Coarse duplicates (split after crushing, before pulverizing): tests the entire preparation + assay chain. Insertion rate: 1 in 30 samples (3.3%).
Pulp duplicates (split after pulverizing): tests only the assay chain. Insertion rate: 1 in 30 samples (3.3%).
Failure metrics (use the absolute relative difference, ARD):
- Warning: ARD >30% on Au, >20% on base metals
- Failure: ARD >50% on Au, >30% on base metals, OR repeated warnings on the same drillhole/lab batch
For near-detection-limit grades, ARD is noisy — use the paired data plot (original vs duplicate) and look for systematic deviation from the 1:1 line, not just the percentage.
The full insertion protocol
For a typical 1,000-sample program, here’s what the QC stream looks like:
| QC type | Rate | Count | Purpose |
|---|---|---|---|
| Standard (low) | 1 in 60 | ~17 | Lab accuracy at low grade |
| Standard (mid) | 1 in 60 | ~17 | Lab accuracy at mid grade |
| Standard (high) | 1 in 60 | ~17 | Lab accuracy at high grade |
| Blank | 1 in 20 (post-high-grade) | ~50 | Contamination |
| Coarse duplicate | 1 in 30 | ~33 | Prep + assay reproducibility |
| Pulp duplicate | 1 in 30 | ~33 | Assay reproducibility |
| Total QC | ~17% | ~167 |
Yes, QC is ~15–20% of your total assay cost. That’s the price of a database you can defend. Skip it and you’ll spend it later in re-assays, audit findings, and rebuilds — at 3–5× the cost.
Field sampling protocol — before the lab
QC samples test the lab, but the bigger source of error is usually upstream — in the field. The protocol that produces defensible assay data starts at the core shed:
- Sample length: 1m in mineralized zones, up to 2m in waste. Never sample across geological boundaries — split the sample at the contact.
- Core splitting: always split along the same reference line (the bottom-of-hole orientation mark). Inconsistent splitting introduces systematic bias.
- Sample mass: target 2–3kg per sample for diamond core. Less than 1.5kg risks under-representing coarse gold.
- Coarse gold: if you’re on a deposit with visible gold, you need screen fire assay or metallics. Standard 30g fire assay on coarse-gold mineralization will systematically under-report — this is a known issue on several Sumatran orogenic gold deposits.
- Sample numbering: unique, sequential, gap-free. A break in the sequence is a red flag for missing samples.
These field protocols feed directly into the drillhole data validation checklist — field errors surface as data errors downstream.
The Indonesian laboratory landscape
Indonesia has a small but competent laboratory ecosystem. The labs I’ve worked with on Indonesian projects:
- PT Geoservices (SGL) — Indonesian-owned, Jakarta and Cikarang facilities. Strong on Au fire assay and base metals. The default choice for many Indonesian projects.
- Intertek (Jakarta) — international, with a Jakarta sample prep facility and assay done offshore (typically Perth or Manila). Higher cost, used for projects with international reporting requirements.
- ALS (Jakarta) — international, Jakarta prep with assay in Brisbane or Vancouver. Similar profile to Intertek.
- PT Indomineralsbm and other local labs — variable. Some are excellent on specific commodities. Audit before you commit.
Lab selection criteria
- Accreditation: ISO 17025 minimum. Don’t use a lab that isn’t accredited.
- Independent of the project: no lab should have a financial interest in the project’s outcome. JORC and KCMI both require this.
- Capacity: can they handle your sample volume without backlog? A 2-week turnaround that becomes 6 weeks means rush jobs get pushed through with less QC.
- Prep vs assay location: if prep is in Jakarta and assay is offshore, your pulp duplicates test only the offshore assay, not the local prep. Coarse duplicates become critical.
Lab audits
Before committing a major program to a lab, do a lab audit. Walk the facility. Look for:
- Cleanliness — dust between samples, dirty pulverizers, cross-contamination visible in the bowls
- Sample tracking — barcodes or manual? Manual tracking is a source of swap errors
- QC records — ask to see the lab’s internal QC charts for the last 3 months. A lab that can’t show you its own QC isn’t running any.
- Turnaround — what’s the actual turnaround, not the promised one?
I audit every new lab before sending the first sample. The audit takes half a day and has saved me from at least two labs that looked fine on paper and were disasters in person.
What to do when QC fails
The protocol when a QC sample fails:
- Quarantine the affected batch — don’t release the assays to the database until resolved.
- Notify the lab — request the lab’s internal QC for that batch and their explanation.
- Investigate the pattern — is it one sample, one batch, one element, or systematic? One failure is noise. A pattern is a problem.
- Re-assay — if the lab’s internal QC also failed, re-assay the entire batch. If only your external QC failed, re-assay the surrounding samples at minimum.
- Document — record the failure, the investigation, the re-assay results, and the final decision. This documentation is what an auditor reads.
- Re-run the standard — if the re-assay passes, the original failure was likely a one-off. If the re-assay also fails, you have a systematic lab problem and need to consider a secondary lab.
For a deeper treatment of the QC workflow — including the Before/After QC discipline that tracks every data adjustment — see the Before/After QC, Snowden Supervisor-style walkthrough.
Common failure patterns I see in Indonesia
- Au contamination in pulverizers — the single most common failure. Labs running high-throughput programs without adequate cleaning between samples cross-contaminate at the 0.1–0.5 g/t level. Blanks catch it.
- Standard degradation — standards stored in hot, humid field conditions (and Indonesia is both) can oxidize or leach. Standards past their expiry, or stored improperly, return biased results that look like lab errors but aren’t. Store standards in sealed, desiccated containers in a cool location.
- Coarse gold under-reporting — standard 30g fire assay on coarse-gold deposits. The fix is screen fire assay (SFA) or a metallics protocol. If your deposit has visible gold and you’re not running SFA, your Au grades are likely understated by 15–40%.
- Duplicate failure on high-grade — high variance on duplicates at high grades is expected (the nugget effect), but if your duplicates systematically read lower than the original, you may have a sample splitting bias.
How Orebit GeoSuite helps
The GeoSuite Assay module handles QC tracking end-to-end:
- Auto-detects QC samples in the assay stream by sample ID convention (you define the prefix —
STD-,BLK-,DUP-) - Control charts for standards — plotted against ±2SD and ±3SD windows, with automatic flagging of warnings and failures
- Blank monitoring — flags any blank above the threshold, with the preceding sample grade shown alongside (so you see if the failure follows a high-grade sample)
- Duplicate scatter plots — original vs duplicate, with ARD calculation, 1:1 line, and ±20% / ±30% / ±50% tolerance lines
- Hardy-Casin regression for duplicate pairs — the proper statistical test, not just a percentage
- Batch quarantine workflow — failed batches are flagged in the database and excluded from estimation until released
- QC summary report — one PDF per drilling program, with all control charts, duplicate plots, failure log, and corrective actions. Attachable to the JORC/KCMI report.
The QC report alone has paid for the software on three projects where the auditor specifically asked for the QC documentation and the previous consultant had nothing to show.
Try Core free → · Get the bundle — Rp 99K → (single modules Rp 49K · one-time · yours forever)
Bottom line
QA/QC is ~15–20% of your assay cost and 100% of your defensibility. Three standards covering the grade range, blanks after high-grade samples, coarse and pulp duplicates, control charts with ±2SD/±3SD thresholds, and a documented failure-response protocol. Audit the lab before you commit. Store standards properly. Run screen fire assay if you have coarse gold.
The lab certificate is not the truth. The lab certificate is the lab’s best estimate of the truth, validated by your QC. Without the QC, you have no validation. With it, you have a database you can build a resource on.
Setting up a QA/QC protocol for a new project and want a second opinion on the insertion rates and thresholds? Email hello@orebit.id with the deposit type and expected grade range — I’ll send you the protocol I’d use.
Part of the Orebit ecosystem —
geological workflow tools for drillhole validation, resource estimation, and JORC/KCMI reporting.
→ Explore GeoSuite
Try the toolkit this article uses.
Orebit GeoSuite — single-file HTML, works offline, no install. From CSV to resource report in one afternoon.
Explore GeoSuite →# From this article: open geosuite.orebit.id load(your_drillhole.csv) apply(workflow_above) # Done. Ship the report.