AboutBlogMediaTags

BCA vs Bradford: How Far Off Each Assay Reads 13 Proteins Against a BSA Standard

Runcell Team,

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:

  1. For my protein, which assay is closest to the truth with a BSA standard, and how far apart are the assays?
  2. If my samples are antibodies, does switching to a bovine gamma globulin (BGG) standard fix it?
  3. 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:

ComponentVersion / source
Response ratiosTable 3 of five Thermo Scientific Pierce user guides (listed below), retrieved 2026-10-12
A280 columnUniProtKB REST, fetched 2026-10-12; Pace et al. 1995 coefficients (Trp 5500, Tyr 1490, cystine 125 M⁻¹ cm⁻¹)
Python3.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.

AssayUser guideTest condition printed with the tableCV printed
Pierce BCA (562 nm)MAN0011430 Rev. D 1,000 µg/mL, 37 °C / 30 min, test tube14.7%
Micro BCA (562 nm)MAN0011237 Test tube procedure; the manual does not state the concentration, the handbook gives 10 µg/mL11.4%
Modified Lowry (750 nm)MAN0011229 1000 µg/mL, test tube11.9%
Pierce Bradford (Coomassie, 595 nm)MAN0011181 Rev. C.0 1000 µg/mL, standard test tube38.2%
Pierce Bradford Plus (Coomassie Plus, 595 nm)MAN0011203 Rev. D 1,000 µg/mL, standard test tube28.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

ProteinBCAMicro BCALowryBradfordBradford PlusMax / min
BSA1001001001001001.00
Aldolase (rabbit muscle)85809476741.27
α-Chymotrypsinogen (bovine)1149911748522.44
Cytochrome c (horse heart)83111941071031.34
Gamma globulin (bovine, BGG)1119511456582.04
IgG, bovine12111212958632.22
IgG, human10910311363661.79
IgG, mouse11812312059622.08
IgG, rabbit11211211937433.22
IgG, sheep11711412853572.42
Insulin (bovine)10812211260672.03
Myoglobin (horse heart)7492901191151.61
Ovalbumin9310810232683.38
Transferrin (human)89989284901.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:

AssayWithin ±10%Within ±20%Worst case
BCA3 / 1311 / 13Myoglobin, 74%
Micro BCA6 / 1311 / 13IgG mouse, 123%
Modified Lowry5 / 1311 / 13IgG bovine, 129%
Bradford1 / 133 / 13Ovalbumin, 32%
Bradford Plus2 / 133 / 13IgG 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:

ProteinPierce BradfordBradford PlusRatio
Ovalbumin32%68%2.12
IgG, rabbit37%43%1.16
Insulin60%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:

AssayWorst IgG error, BSA standardWorst IgG error, BGG standard
BCA21%9%
Micro BCA23%29%
Modified Lowry29%13%
Bradford63%34%
Bradford Plus57%26%

What to take from it:

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

ProteinBCAMicro BCALowryBradfordBradford Plus
Myoglobin749290119115
Cytochrome c8311194107103

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:

ProteinUniProt (seq. version)BCABradfordBradford PlusA280 = mg/mL
BSAP02769 (4)10010010065
AldolaseP00883 (2)85767488
ChymotrypsinogenP00766 (1)1144852197
Cytochrome cP00004 (2)83107103≥ 98 (heme not modelled)
InsulinP01317 (2), B + A chains1086067110
MyoglobinP68082 (2)74119115≥ 82 (heme not modelled)
OvalbuminP01012 (2)93326874
TransferrinP02787 (5), apo form898490113

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:

RatioStraight-line readingBending curve, K = 2000K = 1000K = 500
0.84840 µg/mL778724636
0.58580 µg/mL479408315
0.32320 µg/mL239190136

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

  1. 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.
  2. 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%).
  3. 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.
  4. 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.
  5. 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


© Runcell.RSS