ApoB vs LDL: what your doctor is testing wrong
Your standard panel checks LDL. Your ApoB tells a different story. Here's why apoB beats LDL as a cardiovascular risk signal in 2026, and what moved mine.

Your GP checks LDL. Every Norwegian primary-care lipid panel does. That single number misses up to a fifth of the actual cardiovascular risk in men over 30, and the better marker, apolipoprotein B, almost never appears on the requisition form.
I know because I tracked both for 16 months. The two numbers told different stories.
Key takeaways:
- The Norwegian primary-prevention statin trigger is LDL ≥5.0 mmol/L, but that threshold sits inside a NORRISK 2 total-risk calculation, not a standalone number.
- Across 347,797 people, Mendelian randomization shows apoB is causally linked to coronary heart disease. LDL is a proxy for the risk. ApoB is the risk.
- 18% of adults have ≥10% discordance between their LDL and apoB. That's the group standard screening misses.
- My own 16-month progression: ApoB 1.2 → 0.95 g/L (−21%), LDL 4.7 → 2.79 mmol/L (−41%). No statin, not at Peter Attia's under-60 target yet, on the arc.
What your GP is actually measuring (and what they're missing)
A standard Norwegian blood panel tests total cholesterol, LDL, HDL, and triglycerides. That panel has barely changed in two decades. The 2017 Norwegian guideline for cardiovascular prevention keeps LDL ≥5.0 mmol/L as an intervention trigger, always alongside the NORRISK 2 risk calculator that factors in age, blood pressure, smoking, and family history.
The pathway catches obvious high-risk cases well. It misses the hidden ones, and that's where the real gap sits.
LDL cholesterol measures the mass of cholesterol carried inside LDL particles. The particles are what cause plaque, not the cholesterol they carry. One big LDL particle and ten small ones can carry the same total cholesterol mass, but the ten small ones are far more atherogenic. Ten chances to lodge in an arterial wall, not one.
Apolipoprotein B is the count. Every atherogenic lipoprotein, including LDL, VLDL, IDL, and Lp(a), carries exactly one apoB molecule on its surface. Measure apoB and you measure the particle count directly. Measure LDL alone and you're inferring risk from the wrong side of the equation.
ApoB is the count, LDL is the proxy
The strongest evidence for apoB isn't clinical trials. It's genetic.
Mendelian randomization studies use naturally occurring gene variants that raise or lower apoB from birth, then track outcomes across hundreds of thousands of people. The logic is clean. Genes are randomized at conception and can't be confounded by lifestyle, so if a variant correlates with disease, the correlation is causal.
A 2024 Mendelian randomization analysis of 347,797 European-ancestry participants found genetically predicted apoB and LDL-C both positively associated with coronary artery disease, all-cause mortality, and cardiovascular mortality, in a dose-dependent way. When apoB and LDL were genetically separated, apoB stayed causal. LDL weakened.
The guidelines have moved, slowly. The 2025 ESC/EAS Focused Update recommends apoB as an alternative primary marker in patients with diabetes, obesity, high triglycerides, or very low LDL. The 2026 ACC/AHA dyslipidemia guideline says apoB testing is "useful to improve risk assessment and guide therapy" once LDL-C goals are met, with an apoB target of 80 mg/dL in high-risk primary prevention.
Peter Attia goes further. His public target is apoB under 40 mg/dL with 60 as the ceiling. That's aspirational by guideline standards, but it tracks with the emerging longevity-medicine view that lifetime apoB exposure, not LDL, drives plaque. The argument is cumulative exposure. A 50-year-old whose apoB has been 90 mg/dL since their 30s has done more arterial damage than a 70-year-old whose apoB crossed 90 last year. The guideline target is "low enough for now." Attia's target is "low enough to not accumulate."
The mechanism is settled. The screening practice lags by a decade, maybe two. Primary care still runs on the lipid panel designed when we thought cholesterol mass was the thing that mattered.
Discordance: when LDL says you're fine but you're not

A longitudinal cohort study in young adults (CARDIA) found 18% of participants had ≥10% discordance between their baseline apoB and LDL-C percentiles. Positive discordance, apoB higher than LDL would suggest, tracked with future coronary artery calcification even in people whose LDL looked clean.
The profile most likely to show this pattern:
- Men
- Older adults
- Metabolic syndrome
- Diabetes
- Obesity
- Higher triglycerides
- Statin users (post-treatment)
- Poor metabolic health in general
If you're a Nordic man in your 30s or 40s with a desk job and a decent diet, you can absolutely be in the discordant group and not know it. Your LDL can be mid-range while your apoB is flagged. Your standard screening will tell you you're fine.
You're not fine. You're uncounted.
The Nordic context makes this sharper. Norwegian men tend to trust their annual panel because the healthcare system runs well. The panel is doing what it was built to do. It was just built for a model of cardiovascular risk that's been superseded. High-functioning primary care plus an out-of-date screening model produces a population of men who feel reassured and are not.
What my numbers looked like, and what they look like now

Two panels, 16 months apart.
December 2024 baseline:
- ApoB: 1.2 g/L (120 mg/dL)
- LDL: 4.7 mmol/L (~182 mg/dL)
Q1 2026:
- ApoB: 0.95 g/L (95 mg/dL)
- LDL: 2.79 mmol/L (~108 mg/dL)
A 21% drop on apoB and a 41% drop on LDL in 16 months. No statin. Not at Attia's under-60 target yet. I'm on the arc, not at the destination.
For Nordic readers, the unit conversion rows:
| Marker | SI (Europe) | Conventional (US) | Multiplier |
|---|---|---|---|
| ApoB | g/L | mg/dL | × 100 |
| LDL | mmol/L | mg/dL | × 38.67 |
| Total cholesterol | mmol/L | mg/dL | × 38.67 |
| Triglycerides | mmol/L | mg/dL | × 88.57 |
What actually moved the numbers, in rough order of impact:
- Near-zero sugar diet. Cut added sugar, sweetened drinks, and processed carbs. Kept whole fruit in. Biggest single behavioral change in the whole protocol.
- EPA/DHA supplementation. Consistent daily fish oil, pharmaceutical-grade.
- Fish intake up to 2x weekly. Salmon, mackerel, sardines. Not a supplement substitute, a dietary floor.
- Zone 2 cardio, 12-15 km weekly. Added alongside strength. Low heart rate, controlled pace, conversational intensity. This is where metabolic flexibility gets built.
- Consistent strength training plus Hyrox prep. Four strength sessions, two runs, one simulation weekly. Load stayed heavy.
Training is fueled. I do not do fasted cardio. The biohacker trend toward training on empty glycogen does not match what I see in my own recovery data, and it does not appear to have mattered for the lipid work. WHOOP recovery scores held higher with pre-workout fuel, and sleep quality stayed tighter. For someone running Hyrox load alongside a sales director schedule, the trade-off is obvious.
One more thing I did not do: statins. At LDL 4.7 mmol/L with NORRISK 2 inputs for an active 34-year-old with normal BP and no family history, statin consideration was never on the table. The improvement came from behaviour, not medication. That's the honest version, not a contrarian flex.
The quarterly cadence is what made the protocol work. Every 12 to 16 weeks I had a new set of numbers and a clean read on whether what I was doing was moving them. Without that, it's guessing. With it, it's iteration.
What I'd ask for at your next blood panel
If you're in Norway or anywhere else running a standard primary-care lipid panel, request apoB as an add-on at your next draw. At major reference labs, apoB sits around 30 to 60 USD, and private Nordic labs price similarly.
Three things to actually do with the result:
- Compare the apoB percentile against the LDL percentile. If apoB is notably higher, you're in the discordant group and your LDL was under-reporting your particle count.
- Track quarterly, not annually. The trajectory matters more than any single reading. One reading tells you nothing about direction.
- Tie interventions to re-tests. If you change diet, supplementation, or training volume, re-measure in 12 to 16 weeks. That's the feedback loop that separates optimization from guessing.
The old model of cardiovascular screening is total cholesterol plus LDL, checked annually, acted on when the primary-care trigger is breached. That model catches big obvious risk. It misses the one-in-five who are discordant, and it doesn't give you a trajectory.
The new model is apoB tracked quarterly, interpreted alongside LDL, paired with a real intervention loop. You can run it for the cost of one extra blood tube per quarter. Most Nordic men over 30 never will, because nobody hands it to them. You have to ask.
More on how I apply the same operator approach across AI workflows is in Learn AI by Building. The rest of what I work on, including the supplement work, sits in my portfolio. Background is on the about page.
Your LDL looks fine. Ask for your apoB anyway.