BCA vs Bradford: How Far Off Each Assay Reads 13 Proteins Against a BSA Standard
BCA vs Bradford: How Far Off Each Assay Reads 13 Proteins Against a BSA Standard
The usual BCA vs Bradford trade-offs are detergents, reducing agents, speed and sensitivity. All of that matters. But once your buffer is compatible, the error that matters most is a different one. Your standard curve is BSA and your sample is not.
Each assay responds to each protein differently, so a BSA curve reads a non-BSA protein too high or too low. The vendor measured how much. Thermo Scientific prints a “protein-to-protein variation” table in the user guide of each Pierce assay kit. The tables cover the same 14 proteins: BSA plus 13 others, and Thermo also collects them, with three more assays, in Table 6 of its Protein Assay Technical Handbook . What those tables do not do is answer the questions you have before you pick an assay. This page takes five of the assays, works out the per-protein comparisons, adds a column for the “A280 = 1 means 1 mg/mL” shortcut, and asks:
- For my protein, which assay is closest to the truth with a BSA standard, and how far apart are the assays?
- If my samples are antibodies, does switching to a bovine gamma globulin (BGG) standard fix it?
- Can I use the ratio as a correction factor?
The short answer: against a BSA standard, the three copper-based assays (BCA, Micro BCA, Modified Lowry) read 11 of the 13 non-BSA proteins within ±20%. Both Coomassie (Bradford) formulations read 3 of 13 within ±20%. For the same sample the five assays can disagree by a factor of 3.4.
Once you have chosen an assay and a standard, the Runcell protein assay standard curve calculator fits your BCA or Bradford standards (linear or quadratic), shows the residuals, and interpolates unknowns with dilution correction. It does not know what your standard protein is. That choice is what this page is about.
Where every number comes from:
| Component | Version / source |
|---|---|
| Response ratios | Table 3 of five Thermo Scientific Pierce user guides (listed below), retrieved 2026-10-12 |
| A280 column | UniProtKB REST, fetched 2026-10-12; Pace et al. 1995 coefficients (Trp 5500, Tyr 1490, cystine 125 M⁻¹ cm⁻¹) |
| Python | 3.14.2, Biopython 1.88 |
No wet-lab work was done for this page. The ratios are the vendor’s measurements. The arithmetic on top of them, and the A280 column, were run by us.
What the ratio means
Each table reports, for a test protein at a fixed concentration:
ratio = (net absorbance of the test protein) / (net absorbance of BSA at the same concentration)If your BSA standard curve is a straight line through zero, a ratio of 0.58 means the assay reports 58% of the true concentration for that protein. A ratio of 1.21 means it reports 121%. That is how the tables below read: % of true, with a BSA standard. The section Why the Bradford numbers are a best case explains what changes when the curve is not straight.
| Assay | User guide | Test condition printed with the table | CV printed |
|---|---|---|---|
| Pierce BCA (562 nm) | MAN0011430 Rev. D | 1,000 µg/mL, 37 °C / 30 min, test tube | 14.7% |
| Micro BCA (562 nm) | MAN0011237 | Test tube procedure; the manual does not state the concentration, the handbook gives 10 µg/mL | 11.4% |
| Modified Lowry (750 nm) | MAN0011229 | 1000 µg/mL, test tube | 11.9% |
| Pierce Bradford (Coomassie, 595 nm) | MAN0011181 Rev. C.0 | 1000 µg/mL, standard test tube | 38.2% |
| Pierce Bradford Plus (Coomassie Plus, 595 nm) | MAN0011203 Rev. D | 1,000 µg/mL, standard test tube | 28.8% |
Transcription check. We typed the 70 ratios in by hand, then recomputed each table’s printed average, SD and CV from them. Average and SD match the printed values to two decimals in all five tables. CV matches exactly for BCA, Micro BCA and Bradford (14 proteins, sample SD). For Modified Lowry and Bradford Plus we get 12.3% and 29.1% against the printed 11.9% and 28.8%, and population SD does not reproduce them either. Dividing the printed, rounded SD by the printed average does reproduce both (0.13 / 1.09 = 11.9%, 0.21 / 0.73 = 28.8%), which is consistent with the CV having been computed from the rounded summary rows. We cannot tell from the PDF how it was done. The differences are 0.3–0.4 points and do not change anything below. In the Lowry PDF the average row (1.09) has no label; we read it by position.
Cross-check against the handbook. 69 of the 70 values match Thermo’s handbook Table 6 exactly. The exception is Micro BCA aldolase: 0.80 in the kit manual, 0.94 in the handbook. We use the manual’s 0.80, because it reproduces the summary row both documents print (mean 1.05, CV 11.4%). With 0.94 the CV would be 9.5%. We cannot tell which value is the misprint. If the handbook’s 0.94 is right, Micro BCA reads 7 of 13 proteins within ±10% instead of 6. Nothing else below changes.
The bias table: % of true concentration with a BSA standard
| Protein | BCA | Micro BCA | Lowry | Bradford | Bradford Plus | Max / min |
|---|---|---|---|---|---|---|
| BSA | 100 | 100 | 100 | 100 | 100 | 1.00 |
| Aldolase (rabbit muscle) | 85 | 80 | 94 | 76 | 74 | 1.27 |
| α-Chymotrypsinogen (bovine) | 114 | 99 | 117 | 48 | 52 | 2.44 |
| Cytochrome c (horse heart) | 83 | 111 | 94 | 107 | 103 | 1.34 |
| Gamma globulin (bovine, BGG) | 111 | 95 | 114 | 56 | 58 | 2.04 |
| IgG, bovine | 121 | 112 | 129 | 58 | 63 | 2.22 |
| IgG, human | 109 | 103 | 113 | 63 | 66 | 1.79 |
| IgG, mouse | 118 | 123 | 120 | 59 | 62 | 2.08 |
| IgG, rabbit | 112 | 112 | 119 | 37 | 43 | 3.22 |
| IgG, sheep | 117 | 114 | 128 | 53 | 57 | 2.42 |
| Insulin (bovine) | 108 | 122 | 112 | 60 | 67 | 2.03 |
| Myoglobin (horse heart) | 74 | 92 | 90 | 119 | 115 | 1.61 |
| Ovalbumin | 93 | 108 | 102 | 32 | 68 | 3.38 |
| Transferrin (human) | 89 | 98 | 92 | 84 | 90 | 1.17 |
“Max / min” is how far apart the five assays land for the same tube. If each BSA curve were a straight line through zero, a 1 mg/mL ovalbumin sample that Modified Lowry reads at 1.02 mg/mL would come out at 0.32 mg/mL in the Pierce Bradford assay. Real Coomassie curves bend, which makes the Bradford number lower still (see below).
How often each assay lands close, over the 13 non-BSA proteins:
| Assay | Within ±10% | Within ±20% | Worst case |
|---|---|---|---|
| BCA | 3 / 13 | 11 / 13 | Myoglobin, 74% |
| Micro BCA | 6 / 13 | 11 / 13 | IgG mouse, 123% |
| Modified Lowry | 5 / 13 | 11 / 13 | IgG bovine, 129% |
| Bradford | 1 / 13 | 3 / 13 | Ovalbumin, 32% |
| Bradford Plus | 2 / 13 | 3 / 13 | IgG rabbit, 43% |
Two patterns stand out. First, the copper assays over-read the antibodies (103–129%), while Coomassie under-reads them (37–66%). Second, the Pierce Bradford reagent reads 9 of the 13 non-BSA proteins at least 25% low, and Bradford Plus reads 10 of 13 that low. The printed CVs say the same thing in one number: 28.8–38.2% for the two Coomassie reagents, 11.4–14.7% for the three copper assays.
Finding 1: “Bradford” is not one assay
The two Coomassie reagents in this table come from the same vendor and are read at the same wavelength. For 12 of the 13 non-BSA proteins they agree within 16%. Ovalbumin is the exception:
| Protein | Pierce Bradford | Bradford Plus | Ratio |
|---|---|---|---|
| Ovalbumin | 32% | 68% | 2.12 |
| IgG, rabbit | 37% | 43% | 1.16 |
| Insulin | 60% | 67% | 1.12 |
If a protocol says “Bradford” and you have ovalbumin, or anything you have not checked, which Coomassie reagent was used matters as much as Bradford vs BCA does. Write the kit into your methods, not just the dye.
Finding 2: for antibodies, the standard matters more than the assay
BGG is the usual alternative standard for antibody work. Since both BGG and each IgG were measured against BSA in the same table, dividing one ratio by the other gives the IgG’s absorbance relative to BGG. That equals what a BGG curve would report only if the BGG curve is a straight line through zero up to the test concentration, the same assumption as for the BSA tables. Treat the numbers below as that idealised case. This is the whole calculation:
# Response ratios vs BSA (Table 3 of each Thermo Scientific Pierce user guide)
ratios = {
# BCA Bradford
"BGG": (1.11, 0.56),
"IgG human": (1.09, 0.63),
"IgG mouse": (1.18, 0.59),
"IgG rabbit":(1.12, 0.37),
}
print(f"{'sample':<11}{'BCA/BSA':>9}{'BCA/BGG':>9}{'Brad/BSA':>10}{'Brad/BGG':>10}")
for name in ["IgG human", "IgG mouse", "IgG rabbit"]:
bca, brad = ratios[name]
bca_bgg, brad_bgg = ratios["BGG"]
# reported / true, as a percentage, for each choice of standard
print(f"{name:<11}{bca:>9.0%}{bca / bca_bgg:>9.0%}{brad:>10.0%}{brad / brad_bgg:>10.0%}")Output (Python 3.14.2):
sample BCA/BSA BCA/BGG Brad/BSA Brad/BGG
IgG human 109% 98% 63% 112%
IgG mouse 118% 106% 59% 105%
IgG rabbit 112% 101% 37% 66%Across all five IgGs in the tables, the worst error for each assay and standard:
| Assay | Worst IgG error, BSA standard | Worst IgG error, BGG standard |
|---|---|---|
| BCA | 21% | 9% |
| Micro BCA | 23% | 29% |
| Modified Lowry | 29% | 13% |
| Bradford | 63% | 34% |
| Bradford Plus | 57% | 26% |
What to take from it:
- BCA + BGG puts all five IgGs within ±9%. That is the best combination in these tables for antibodies.
- Bradford + BGG fixes bovine, human, mouse and sheep IgG (95–112%) but leaves rabbit IgG at 66%. If your antibodies are rabbit polyclonals, a BGG standard is not enough in Coomassie.
- Micro BCA gets worse with BGG, not better (29% worst case vs 23%). In that table BGG itself reads low (95%) while the IgGs read high, so dividing by it pushes them further up. “Use an IgG standard for IgG” is good advice for most of these assays, but not every one.
The vendor tables come from a single run per assay, so treat this as what that run showed, not a property of every rabbit antibody.
Finding 3: heme proteins flip direction between assay families
| Protein | BCA | Micro BCA | Lowry | Bradford | Bradford Plus |
|---|---|---|---|---|---|
| Myoglobin | 74 | 92 | 90 | 119 | 115 |
| Cytochrome c | 83 | 111 | 94 | 107 | 103 |
These are the only two proteins in the panel that Coomassie reads above BSA. Myoglobin is also the one BCA reads lowest. If you measure a heme protein with BCA and with Bradford, expect the two numbers to land on opposite sides of the truth: for myoglobin, 74% and 119%, a 1.6× gap for the same tube. Neither number tells you which side is closer to the truth. A standard of the protein itself does.
Finding 4: the A280 shortcut is no better than a colorimetric assay
The common shortcut “A280 = 1 means 1 mg/mL” is the same kind of error: it assumes every protein absorbs like a reference protein with an Abs 0.1% of 1.0. For the eight proteins in the panel with a defined sequence, we computed Abs 0.1% (the A280 of a 1 mg/mL solution in a 1 cm cell) from the UniProt mature chain. That number is also what the shortcut reports, as a fraction of the truth:
| Protein | UniProt (seq. version) | BCA | Bradford | Bradford Plus | A280 = mg/mL |
|---|---|---|---|---|---|
| BSA | P02769 (4) | 100 | 100 | 100 | 65 |
| Aldolase | P00883 (2) | 85 | 76 | 74 | 88 |
| Chymotrypsinogen | P00766 (1) | 114 | 48 | 52 | 197 |
| Cytochrome c | P00004 (2) | 83 | 107 | 103 | ≥ 98 (heme not modelled) |
| Insulin | P01317 (2), B + A chains | 108 | 60 | 67 | 110 |
| Myoglobin | P68082 (2) | 74 | 119 | 115 | ≥ 82 (heme not modelled) |
| Ovalbumin | P01012 (2) | 93 | 32 | 68 | 74 |
| Transferrin | P02787 (5), apo form | 89 | 84 | 90 | 113 |
For the five non-heme proteins other than BSA, the shortcut reports between 74% and 197% of the truth, a wider spread than BCA (85–114%) on the same five. The difference is that A280 can be fixed per protein without a standard: use the protein’s own ε280 and you no longer depend on how a reference protein responds. What remains is the uncertainty of the ε280 estimate itself, and of the molecular weight you divide by. ExPASy’s ProtParam documentation describes the sequence estimate as “quite reliable” for proteins with Trp but warns of possibly more than 10% error for proteins without Trp, such as insulin here. That only works for a pure protein with a known sequence and nothing else absorbing at 280 nm. For the two heme proteins the heme also absorbs at 280 nm, so the sequence-only value is a lower bound. We did not measure how much higher the real value is. Our A280 ε280 table for 11 proteins walks through the ε280 calculation and the precursor-sequence trap. The A280 calculator does the Beer–Lambert step.
For mixtures (lysates, serum, crude fractions) there is no single ε280, and a colorimetric assay with a sensible standard is the practical option. Pick the one whose bias you can live with.
Why the Bradford numbers are a best case, not a correction factor
It is tempting to read the table backwards. If Bradford reads human IgG at 63%, divide by 0.63 and you are done. Two reasons not to:
1. The ratio is measured at one concentration. All the tables except Micro BCA were measured at 1000 µg/mL (Micro BCA at 10 µg/mL). Thermo’s handbook makes the same point: the comparison does not account for how the ratio changes with concentration. The Pierce Bradford guide says Coomassie’s color response “is non-linear with increasing protein concentration”. The Bradford Plus guide gives a linear range of 125–1000 µg/mL for BSA and 125–1500 µg/mL for IgG: the two proteins’ curves are not the same shape, so their ratio changes with concentration.
2. A bending curve makes the under-read worse, never better. Suppose the BSA curve bends over, so absorbance rises more slowly at high concentration. Then a protein that gives 58% of BSA’s absorbance reads back below 58% of its concentration, not at 58%. For any curve that bends this way and starts at zero, this follows from the shape alone. To show the size of the effect we used an arbitrary bending curve, A = c / (c + K). It was not fitted to any data, so the numbers show the direction only:
| Ratio | Straight-line reading | Bending curve, K = 2000 | K = 1000 | K = 500 |
|---|---|---|---|---|
| 0.84 | 840 µg/mL | 778 | 724 | 636 |
| 0.58 | 580 µg/mL | 479 | 408 | 315 |
| 0.32 | 320 µg/mL | 239 | 190 | 136 |
The user guides show the real curves only as figures, and we found no public Bradford raw data to measure the gap with. So: treat the Bradford column as the best case. If your standard curve bends, your under-read is larger. To correct it, you need a standard curve of the protein itself, which is also what all five manuals recommend for best accuracy.
The copper assays are much less affected here. Their ratios sit near 1, so a bend in the curve moves them less, and the BCA guide describes its response as “nearly linear” over 20–2000 µg/mL.
Choosing an assay and a standard
- Pure protein with a known sequence, no heme or other chromophore: A280 with a computed ε280. No standard curve and no reference-protein mismatch, though the ε280 estimate has its own error (larger for proteins without Trp). See the A280 table.
- Antibodies: BCA with a BGG standard (all five IgGs within ±9% in these tables, assuming straight-line curves). Avoid Coomassie for rabbit IgG, even with a BGG standard (66%).
- Unknown mixture (lysate, serum): a copper assay. With a BSA standard, BCA, Micro BCA and Lowry each read 11 of 13 proteins within ±20%, vs 3 of 13 for Coomassie. Check buffer compatibility first: copper assays are the ones sensitive to reducing agents and chelators.
- You must use Coomassie (for example because of reducing agent in the buffer): use a standard as close to your protein as you can get, name the exact reagent in your methods, and keep samples low on the curve.
- Comparing numbers across papers or labs: only compare values from the same assay, reagent and standard. The table above is why.
Then fit the curve. The standard curve calculator takes standards with replicates, lets you pick linear or quadratic, and reports dilution-corrected unknowns without extrapolating past your top standard. To convert the result to molarity, use the protein concentration calculator (mg/mL ↔ µM). The same unit chain for DNA is worked through in our DNA molecular weight workflow.
What this page does not show
- No lab measurements of our own. Every ratio is from the vendor’s tables. The manuals call them typical, and the handbook says each assay’s 14 proteins were run in a single run. They are not specifications.
- One concentration per table. BCA, Lowry and both Coomassie tables were measured at 1000 µg/mL, Micro BCA at 10 µg/mL (handbook). The bias at other concentrations will differ, most for Coomassie.
- Test-tube protocols only. Microplate formats use different volumes and were not in these tables.
- Not every assay. The handbook also lists the Pierce 660 nm, Rapid Gold BCA and Detergent Compatible Bradford assays. We left them out: the 660 nm column covers only 11 of the 14 proteins, and the other two were measured in microplates.
- The A280 column is computed, not measured. Heme proteins are lower bounds. Ovalbumin is glycosylated and phosphorylated, and the MW used is the bare chain. Transferrin is modelled as the apo form, and iron-bound transferrin absorbs differently. The IgGs and BGG are mixtures with no single sequence, so they have no A280 row.
- Buffer interference is a separate problem. Each manual has its own compatibility table, and it can matter more than anything here.
Related
- A280 Protein Concentration Tutorial: ε280 for 11 Proteins: how to get the ε280 that makes A280 the most direct option for pure proteins.
- DNA Molecular Weight in Python: the same mass ↔ molar conversions, for oligos and plasmids.
- Primer dimer checks on the CDC qPCR primers: another case where a quick check and a published outcome disagree.
- Tools: Protein assay standard curve calculator · A280 protein concentration calculator · Protein concentration (mg/mL ↔ µM)