Shea Butter Quality Tests Explained: FFA, Peroxide Value, Moisture and More

Shea Butter Quality Tests Explained: FFA, Peroxide Value, Moisture and More

Shea Butter Quality Tests Explained: FFA, Peroxide Value, Moisture and More
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap'); .ab{--g0:#062a16;--g:#0c4a27;--g2:#17793b;--lf:#3fae5a;--gold:#c9a227;--gold2:#f2d174;--cream:#f7f4ea;--ink:#0f2418;--txt:#35463b;--line:#e6e2d3; font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--txt);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden} .ab *,.ab *:before,.ab *:after{box-sizing:border-box} .ab h1,.ab h2,.ab h3,.ab h4{font-family:"Outfit","Inter",sans-serif;color:var(--ink);line-height:1.15;margin:0 0 .5em;font-weight:700;letter-spacing:-.02em} .ab h1{font-size:clamp(2.3rem,5.4vw,4rem);font-weight:800} .ab h2{font-size:clamp(1.8rem,3.6vw,2.7rem);margin-top:0} .ab h3{font-size:1.3rem;margin-top:0} .ab p{margin:0 0 1.1em} .ab a{color:var(--g2);text-underline-offset:3px} .ab a:hover{color:var(--gold)} .ab ul,.ab ol{margin:0 0 1.2em 1.3em;padding:0} .ab li{margin-bottom:.45em} .ab strong{color:var(--ink)} .ab img,.ab svg{max-width:100%} .ab-s{padding:84px 22px;position:relative} .ab-in{max-width:1180px;margin:0 auto;position:relative} .ab-narrow{max-width:820px;margin:0 auto} .ab-alt{background:var(--cream)} .ab-dark{background:linear-gradient(135deg,var(--g0),var(--g) 70%,#116a37);color:#dcebe1} .ab-dark h2,.ab-dark h3,.ab-dark strong{color:#fff} .ab-dark a{color:var(--gold2)} .ab-head{text-align:center;max-width:760px;margin:0 auto 46px} .ab-head p{font-size:1.12rem;color:#5a6b60;margin:0} .ab-dark .ab-head p{color:#b9d3c2} .ab-eyebrow,.ab-kicker{display:inline-block;font-family:"Outfit",sans-serif;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);margin-bottom:.9em} .ab-eyebrow:before,.ab-kicker:before{content:"";display:inline-block;width:28px;height:2px;background:var(--gold);vertical-align:middle;margin-right:10px} .ab-dark .ab-eyebrow,.ab-hero .ab-kicker{color:var(--gold2)} /* buttons */ .ab a.ab-btn,.ab button.ab-btn{display:inline-block;background:linear-gradient(135deg,var(--gold2),var(--gold));color:#201703;font-family:"Outfit",sans-serif;font-weight:700;padding:16px 32px;border-radius:50px;text-decoration:none;border:0;cursor:pointer;font-size:1.02rem;margin:6px 12px 6px 0;box-shadow:0 10px 24px rgba(201,162,39,.35);transition:transform .2s,box-shadow .2s} .ab a.ab-btn:hover,.ab button.ab-btn:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(201,162,39,.45);color:#201703} .ab a.ab-btn.o{background:rgba(255,255,255,.06);color:#fff;border:2px solid rgba(255,255,255,.55);box-shadow:none;backdrop-filter:blur(4px)} .ab a.ab-btn.o:hover{background:#fff;color:var(--g)} /* hero */ .ab-hero{position:relative;overflow:hidden;color:#e4f0e8;padding:96px 22px 110px;background:radial-gradient(circle at 80% 20%,rgba(63,174,90,.35),transparent 50%),radial-gradient(circle at 10% 90%,rgba(201,162,39,.22),transparent 45%),linear-gradient(135deg,#051f10,#0c4a27 60%,#14693a)} .ab-hero:before{content:"";position:absolute;inset:0;background-image:var(--ab-hero-img,none);background-size:cover;background-position:center;opacity:.35} .ab-hero .ab-map{position:absolute;left:50%;bottom:-6%;width:130%;transform:translateX(-50%);color:rgba(255,255,255,.17);pointer-events:none} .ab-hero .ab-in{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center} .ab-hero.solo .ab-in{grid-template-columns:1fr} .ab-hero h1{color:#fff;margin-bottom:.45em;max-width:760px} .ab-hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--gold2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent} .ab-hero p.ab-sub{font-size:1.22rem;max-width:600px;color:#cfe3d6;margin-bottom:1.6em} .ab-chiprow{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px} .ab-chiprow span{font-size:.85rem;font-weight:600;color:#e8f3ec;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);padding:6px 14px;border-radius:30px} .ab-hv{position:relative;min-height:420px} .ab-bub{position:absolute;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 24px 50px rgba(0,0,0,.35),inset 0 0 0 4px rgba(255,255,255,.18);animation:abfloat 7s ease-in-out infinite} .ab-bub svg{width:62%;height:62%} .ab-bub.b1{width:210px;height:210px;left:4%;top:2%;background:linear-gradient(135deg,#d62f4d,#7a0f26)} .ab-bub.b2{width:150px;height:150px;right:0;top:0;background:linear-gradient(135deg,#f0b54a,#9a6414);animation-delay:-2s} .ab-bub.b3{width:130px;height:130px;left:0;bottom:6%;background:linear-gradient(135deg,#f5e4aa,#b89a4a);animation-delay:-4s} .ab-bub.b4{width:190px;height:190px;right:6%;top:34%;background:linear-gradient(135deg,#a8622f,#3b1d0e);animation-delay:-1s} .ab-bub.b5{width:140px;height:140px;left:34%;bottom:-2%;background:linear-gradient(135deg,#f1de8d,#c9a227);animation-delay:-3s} @keyframes abfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}} .ab-bigart{width:min(380px,100%);aspect-ratio:1;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;box-shadow:0 30px 70px rgba(0,0,0,.4),inset 0 0 0 6px rgba(255,255,255,.18);animation:abfloat 8s ease-in-out infinite;position:relative} .ab-bigart svg{width:62%;height:62%;filter:drop-shadow(0 12px 14px rgba(0,0,0,.3))} .ab-bigart:before{content:"";position:absolute;inset:-18px;border-radius:50%;border:2px dashed rgba(255,255,255,.3);animation:abspin 40s linear infinite} @keyframes abspin{to{transform:rotate(360deg)}} .pc-hibiscus{background:linear-gradient(135deg,#d62f4d,#7a0f26)}.pc-ginger{background:linear-gradient(135deg,#f0b54a,#9a6414)}.pc-sesame{background:linear-gradient(135deg,#f5e4aa,#b89a4a)}.pc-cocoa{background:linear-gradient(135deg,#a8622f,#3b1d0e)}.pc-shea{background:linear-gradient(135deg,#f1de8d,#c9a227)}.pc-leaf{background:linear-gradient(135deg,#3fae5a,#0c4a27)} .ab-crumbs{font-size:.85rem;margin-bottom:1.6em} .ab-crumbs,.ab-crumbs a{color:#a9c6b3;text-decoration:none} .ab-crumbs a:hover{color:#fff} .ab-post .ab-crumbs,.ab-post .ab-crumbs a{color:#6b776f} /* stats */ .ab-statswrap{padding:0 22px;margin-top:-62px;position:relative;z-index:3} .ab-stats{max-width:1080px;margin:0 auto;background:#fff;border-radius:22px;box-shadow:0 24px 60px rgba(6,42,22,.18);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden} .ab-stats div{padding:28px 18px;text-align:center;border-right:1px solid var(--line)} .ab-stats div:last-child{border:0} .ab-stats b{display:block;font-family:"Outfit",sans-serif;font-size:2.3rem;line-height:1;background:linear-gradient(135deg,var(--g2),var(--g));-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800} .ab-stats span{display:block;font-size:.85rem;color:#5a6b60;margin-top:8px;font-weight:600;letter-spacing:.04em} .ab-trust{background:#fff;border-bottom:1px solid var(--line);padding:16px 22px} .ab-trust ul{list-style:none;margin:0 auto;padding:0;max-width:1100px;display:flex;flex-wrap:wrap;gap:8px 30px;justify-content:center;font-size:.9rem} .ab-trust li{margin:0} .ab-trust b{color:var(--g)} /* product tiles */ .ab-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px} .ab-tile{display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:26px;padding:34px 26px 28px;min-height:400px;text-decoration:none!important;color:#fff!important;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(6,42,22,.18);transition:transform .3s,box-shadow .3s} .ab-tile:hover{transform:translateY(-10px);box-shadow:0 30px 60px rgba(6,42,22,.28)} .ab-tile:before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.12);top:-90px;right:-90px} .ab-tile:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(0,0,0,.1);bottom:-60px;left:-50px} .ab-tile .art{width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin-bottom:22px;position:relative;z-index:1;box-shadow:inset 0 0 0 3px rgba(255,255,255,.3);transition:transform .4s} .ab-tile:hover .art{transform:scale(1.08) rotate(-6deg)} .ab-tile .art svg{width:98px;height:98px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.28))} .ab-tile h3{color:#fff;font-size:1.45rem;position:relative;z-index:1;margin-bottom:.3em} .ab-tile p{font-size:.98rem;color:rgba(255,255,255,.9);margin:0 0 1.2em;position:relative;z-index:1} .ab-tile .go{margin-top:auto;position:relative;z-index:1;background:rgba(255,255,255,.95);color:var(--g);font-family:"Outfit",sans-serif;font-weight:700;padding:10px 22px;border-radius:40px;font-size:.92rem} .ab-tile.sesame,.ab-tile.shea{color:#2a2208!important} .ab-tile.sesame h3,.ab-tile.shea h3{color:#2a2208} .ab-tile.sesame p,.ab-tile.shea p{color:#46380f} .ab-tile.hibiscus{background:linear-gradient(150deg,#e0395a,#7a0f26)} .ab-tile.ginger{background:linear-gradient(150deg,#f2b94e,#8f5a10)} .ab-tile.sesame{background:linear-gradient(150deg,#f7e8b4,#c6a85a)} .ab-tile.cocoa{background:linear-gradient(150deg,#b06a35,#33180a)} .ab-tile.shea{background:linear-gradient(150deg,#f4e3a0,#cdaa2c)} .ab-tile.leaf{background:linear-gradient(150deg,#3fae5a,#08361c)} /* feature grid */ .ab-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:26px} .ab-feat{background:#fff;border-radius:22px;padding:34px 28px;box-shadow:0 8px 30px rgba(6,42,22,.07);border:1px solid var(--line);transition:transform .25s,box-shadow .25s} .ab-feat:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(6,42,22,.13)} .ab-feat h3{font-size:1.22rem;margin:18px 0 .35em} .ab-feat p{margin:0;font-size:.98rem;color:#5a6b60} .ab-fic{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--g2),var(--g));display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(12,74,39,.25);transform:rotate(-6deg)} .ab-fic svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round} .ab-feat:nth-child(even) .ab-fic{background:linear-gradient(135deg,var(--gold2),var(--gold))} .ab-feat:nth-child(even) .ab-fic svg{stroke:#2a2208} /* spotlight */ .ab-spot{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center} .ab-spot .ab-bigart{width:min(400px,100%)} .ab-spot h2{color:#fff} .ab-spots{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0 28px} .ab-spots div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:14px 16px} .ab-spots span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);font-weight:700} .ab-spots b{color:#fff;font-weight:600;font-size:1rem} /* flow */ .ab-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;position:relative;counter-reset:f} .ab-flow:before{content:"";position:absolute;left:10%;right:10%;top:44px;border-top:3px dashed var(--gold)} .ab-fl{text-align:center;position:relative;padding:0 8px} .ab-fl .n{width:88px;height:88px;border-radius:50%;margin:0 auto 18px;background:linear-gradient(135deg,var(--g2),var(--g));display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px #fff,0 14px 28px rgba(12,74,39,.3);position:relative} .ab-alt .ab-fl .n{box-shadow:0 0 0 8px var(--cream),0 14px 28px rgba(12,74,39,.3)} .ab-fl .n svg{width:36px;height:36px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round} .ab-fl .n i{position:absolute;top:-4px;right:-4px;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#201703;font-style:normal;font-weight:800;font-family:"Outfit",sans-serif;font-size:.9rem;display:flex;align-items:center;justify-content:center} .ab-fl h3{font-size:1.06rem;margin-bottom:.3em} .ab-fl p{font-size:.9rem;color:#5a6b60;margin:0} /* map */ .ab-mapbox{position:relative;max-width:1100px;margin:0 auto} .ab-map{display:block;width:100%;height:auto} .ab-map .land{stroke-width:.95;stroke-linecap:round;stroke:currentColor;fill:none} .ab-map .ng{stroke:var(--gold2);stroke-width:1.1;stroke-linecap:round;fill:none} .ab-map .arc{fill:none;stroke:var(--gold2);stroke-width:.42;stroke-dasharray:1.4 1.6;stroke-linecap:round;animation:abdash 5s linear infinite;opacity:.95} @keyframes abdash{to{stroke-dashoffset:-30}} .ab-map .pt{fill:var(--gold2)} .ab-map .pulse{fill:none;stroke:var(--gold2);stroke-width:.35;transform-box:fill-box;transform-origin:center;animation:abpulse 2.6s ease-out infinite} @keyframes abpulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(3.2);opacity:0}} .ab-regions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px} .ab-regions a{display:inline-flex;align-items:center;gap:10px;padding:11px 20px;border-radius:40px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff!important;text-decoration:none;font-weight:600;font-size:.95rem;transition:background .2s} .ab-regions a:hover{background:rgba(255,255,255,.22)} .ab-regions i{width:10px;height:10px;border-radius:50%;background:var(--gold2);box-shadow:0 0 0 4px rgba(242,209,116,.25)} /* region cards */ .ab-reg{display:grid;grid-template-columns:repeat(3,1fr);gap:24px} .ab-rc{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 32px rgba(6,42,22,.09);border:1px solid var(--line)} .ab-rc .top{padding:26px 26px 20px;color:#fff;position:relative;overflow:hidden} .ab-rc .top:after{content:"";position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.14)} .ab-rc .top h3{color:#fff;margin:0;font-size:1.4rem;position:relative} .ab-rc .top span{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;font-weight:600;position:relative} .ab-rc .bd{padding:20px 26px 26px} .ab-rc ul{list-style:none;margin:0;padding:0} .ab-rc li{padding-left:26px;position:relative;margin:0 0 .6em;font-size:.97rem} .ab-rc li:before{content:"";position:absolute;left:0;top:.5em;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.2)} .rc1{background:linear-gradient(135deg,#1e5fa8,#0b2f5c)}.rc2{background:linear-gradient(135deg,#c0392b,#6e1d14)}.rc3{background:linear-gradient(135deg,#17793b,#0a3a1d)}.rc4{background:linear-gradient(135deg,#e08a1e,#8a4a05)}.rc5{background:linear-gradient(135deg,#7b3fa0,#3d1a5c)} /* chips */ .ab-chips{display:flex;flex-wrap:wrap;gap:14px;justify-content:center} .ab-chip{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);padding:12px 22px 12px 14px;border-radius:50px;box-shadow:0 6px 18px rgba(6,42,22,.07);font-weight:600;color:var(--ink);font-size:.97rem} .ab-chip svg{width:38px;height:38px;padding:8px;border-radius:50%;background:linear-gradient(135deg,var(--g2),var(--g));stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round} /* guide cards */ .ab-guides{display:grid;grid-template-columns:repeat(3,1fr);gap:24px} .ab-gc{background:#fff;border-radius:22px;overflow:hidden;text-decoration:none!important;box-shadow:0 10px 32px rgba(6,42,22,.1);border:1px solid var(--line);transition:transform .25s;display:flex;flex-direction:column} .ab-gc:hover{transform:translateY(-8px)} .ab-gc .im{height:150px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden} .ab-gc .im:after{content:"";position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.14);right:-50px;top:-60px} .ab-gc .im svg{width:76px;height:76px;position:relative;z-index:1;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))} .ab-gc .tx{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1} .ab-gc small{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold)} .ab-gc h3{font-size:1.12rem;margin:.4em 0 .8em;color:var(--ink)} .ab-gc .rd{margin-top:auto;font-weight:700;color:var(--g2);font-family:"Outfit",sans-serif} /* credentials */ .ab-creds{display:grid;grid-template-columns:repeat(4,1fr);gap:18px} .ab-cr{background:#fff;border-radius:18px;padding:24px 20px;text-align:center;border:1px solid var(--line);box-shadow:0 6px 20px rgba(6,42,22,.06)} .ab-cr svg{width:42px;height:42px;stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:8px} .ab-cr span{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#6b776f;font-weight:700} .ab-cr b{display:block;font-family:"Outfit",sans-serif;font-size:1.25rem;color:var(--ink)} /* journey (about) */ .ab-jr{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center} .ab-jr .ab-in{max-width:none} .ab-bridge{background:linear-gradient(160deg,var(--g0),var(--g));border-radius:30px;padding:30px;box-shadow:0 30px 60px rgba(6,42,22,.25);color:#cfe3d6} /* accordion */ .ab-acc details{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:14px;box-shadow:0 4px 14px rgba(6,42,22,.05)} .ab-acc summary{cursor:pointer;padding:20px 60px 20px 24px;position:relative;list-style:none;font-family:"Outfit",sans-serif;font-weight:700;font-size:1.15rem;color:var(--ink)} .ab-acc summary::-webkit-details-marker{display:none} .ab-acc summary:after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#201703} .ab-acc details[open] summary:after{content:"\2212"} .ab-acc .bd{padding:0 24px 12px} .ab-acc .bd h2{display:none} .ab-more{max-width:900px;margin:0 auto} .ab-more summary{cursor:pointer;text-align:center;font-family:"Outfit",sans-serif;font-weight:700;color:var(--g2);padding:14px;list-style:none;font-size:1.05rem} .ab-more summary::-webkit-details-marker{display:none} .ab-more[open] summary{margin-bottom:10px} .ab-more h2,.ab-more h3{font-size:1.4rem;margin-top:1.2em} /* generic cards */ .ab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin:28px 0} .ab-grid.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))} .ab-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;box-shadow:0 8px 26px rgba(6,42,22,.07);transition:transform .25s} .ab-card:hover{transform:translateY(-5px)} .ab-card h3{margin-top:.2em;font-size:1.2rem} .ab-card p:last-child{margin-bottom:0} .ab .ab-ic{display:block;width:58px;height:58px;margin-bottom:14px} .ab .ab-ic svg{display:block;width:58px;height:58px} .ab-ic.line{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--g2),var(--g));padding:14px;box-shadow:0 8px 16px rgba(12,74,39,.22)} .ab-ic.line svg{stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;width:30px;height:30px} .ab-card a.ab-more{font-weight:700;text-decoration:none} /* steps timeline */ .ab-steps{counter-reset:s;list-style:none;margin:30px 0;padding:0} .ab-steps li{counter-increment:s;position:relative;padding:6px 0 26px 76px;margin:0;min-height:64px} .ab-steps li:before{content:counter(s);position:absolute;left:0;top:0;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--g2),var(--g));color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-family:"Outfit",sans-serif;font-size:1.2rem;box-shadow:0 0 0 6px rgba(63,174,90,.18)} .ab-steps li:after{content:"";position:absolute;left:25px;top:58px;bottom:4px;width:2px;background:repeating-linear-gradient(var(--gold) 0 6px,transparent 6px 12px)} .ab-steps li:last-child:after{display:none} .ab-steps b{display:block;color:var(--ink);font-family:"Outfit",sans-serif;font-size:1.18rem} .ab-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:26px 0} .ab-facts div{background:#fff;border-radius:16px;padding:16px 20px;border:1px solid var(--line);box-shadow:0 4px 14px rgba(6,42,22,.05);position:relative;overflow:hidden} .ab-facts div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(var(--gold2),var(--gold))} .ab-facts span{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#6b776f;font-weight:700} .ab-facts b{color:var(--ink);word-break:break-word;font-family:"Outfit",sans-serif} /* spec cards */ .ab-specs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:10px 0 24px} .ab-specs div{background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:14px;padding:16px 18px;box-shadow:0 6px 18px rgba(6,42,22,.06)} .ab-specs span{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#6b776f;font-weight:700;margin-bottom:4px} .ab-specs b{font-family:"Outfit",sans-serif;color:var(--ink);font-size:1rem;font-weight:600;line-height:1.3;display:block} .ab table{width:100%;border-collapse:separate;border-spacing:0;margin:1.4em 0;font-size:.97rem;display:table;border-radius:14px;overflow:hidden;border:1px solid var(--line)} .ab th,.ab td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)} .ab th{background:var(--g);color:#fff;font-weight:600} .ab tr:nth-child(even) td{background:var(--cream)} .ab blockquote{margin:1.6em 0;padding:18px 22px;background:#fdf8ea;border-left:5px solid var(--gold);border-radius:0 14px 14px 0} .ab blockquote p:last-child{margin-bottom:0} .ab-toc{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:22px 28px;margin:26px 0} .ab-toc b{display:block;font-family:"Outfit",sans-serif;font-size:1.15rem;color:var(--ink);margin-bottom:8px} .ab-toc ol{margin-bottom:0} .ab-faq details{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:12px;box-shadow:0 4px 14px rgba(6,42,22,.05)} .ab-faq summary{cursor:pointer;font-family:"Outfit",sans-serif;font-weight:600;font-size:1.06rem;color:var(--ink);padding:18px 60px 18px 22px;list-style:none;position:relative} .ab-faq summary::-webkit-details-marker{display:none} .ab-faq summary:after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#201703} .ab-faq details[open] summary:after{content:"\2212"} .ab-faq details div{padding:0 22px 8px} .ab-cta{text-align:center;padding:96px 22px;overflow:hidden;background:radial-gradient(circle at 20% 20%,rgba(63,174,90,.3),transparent 50%),linear-gradient(135deg,#051f10,#0c4a27 70%,#14693a)} .ab-cta .ab-map{position:absolute;left:50%;top:50%;width:120%;transform:translate(-50%,-50%);color:rgba(255,255,255,.1);pointer-events:none} .ab-cta h2{margin-top:0;color:#fff;font-size:clamp(2rem,4.4vw,3.2rem)} .ab-cta p{max-width:660px;margin:0 auto 1.6em;color:#cfe3d6;font-size:1.15rem} .ab-rel{border-top:4px solid var(--gold);background:var(--cream);padding:30px;border-radius:0 0 16px 16px;margin:42px 0 10px} .ab-rel h3{margin-top:0} .ab-rel ul{margin-bottom:0} .ab-meta{font-size:.88rem;color:#6b776f;margin:0 0 1.6em} .ab-note{font-size:.88rem;color:#6b776f} .ab-form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:34px;box-shadow:0 16px 44px rgba(6,42,22,.1)} .ab-form label{display:block;font-weight:600;color:var(--ink);font-size:.92rem;margin-bottom:5px} .ab-form input,.ab-form select,.ab-form textarea{width:100%;padding:13px 16px;border:1px solid #d3cfbd;border-radius:12px;font-size:1rem;font-family:inherit;background:#fff;color:var(--ink)} .ab-form input:focus,.ab-form select:focus,.ab-form textarea:focus{outline:0;border-color:var(--g2);box-shadow:0 0 0 4px rgba(63,174,90,.18)} .ab-form textarea{min-height:130px} .ab-form .r{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px} .ab-form .f{margin-bottom:16px} .ab-msg{display:none;margin-top:14px;padding:12px 16px;border-radius:12px;background:#e8f4ec;color:#14532d;font-weight:600} .ab-split{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start} .ab-two{columns:2;column-gap:40px} .ab-two li{break-inside:avoid} .ab-post{max-width:100%} .ab-box{background:linear-gradient(135deg,#062a16,#0c4a27);border-radius:22px;padding:40px 30px;text-align:center;color:#cfe3d6;margin:38px 0} .ab-box h3{color:#fff;margin-top:0;font-size:1.6rem} .ab-box p{max-width:620px;margin:0 auto 1.2em} .ab-part{background:#fdf8ea;border-left:5px solid var(--gold);padding:14px 20px;border-radius:0 12px 12px 0;margin:0 0 1.6em;font-size:.95rem} /* blog category tiles */ .ab-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px} .ab-cats .ab-gc .im{height:130px} @media(max-width:980px){ .ab-hero .ab-in,.ab-spot,.ab-jr,.ab-split{grid-template-columns:1fr} .ab-hv{min-height:360px;max-width:460px;margin:30px auto 0;width:100%} .ab-tiles,.ab-feats,.ab-guides,.ab-reg,.ab-cats{grid-template-columns:repeat(2,1fr)} .ab-specs{grid-template-columns:repeat(2,1fr)} .ab-flow{grid-template-columns:1fr;gap:26px} .ab-flow:before{display:none} .ab-fl{display:grid;grid-template-columns:88px 1fr;text-align:left;gap:18px;align-items:center} .ab-fl .n{margin:0} .ab-creds,.ab-stats{grid-template-columns:repeat(2,1fr)} .ab-stats div:nth-child(2){border-right:0} .ab-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)} .ab-two{columns:1} } @media(max-width:640px){ .ab{font-size:16px} .ab-s{padding:60px 18px} .ab-hero{padding:64px 18px 96px} .ab-tiles,.ab-feats,.ab-guides,.ab-reg,.ab-cats,.ab-spots{grid-template-columns:1fr} .ab-tile{min-height:0} .ab-hv{min-height:300px} .ab-bub.b1{width:150px;height:150px}.ab-bub.b2{width:100px;height:100px}.ab-bub.b3{width:90px;height:90px}.ab-bub.b4{width:130px;height:130px}.ab-bub.b5{width:90px;height:90px} .ab a.ab-btn{padding:14px 26px} } .ab-crim{background:radial-gradient(circle at 15% 20%,rgba(255,120,150,.25),transparent 45%),linear-gradient(135deg,#2b040c,#6e0c23 60%,#a8213d);color:#f6dfe4;overflow:hidden} .ab-crim h2{color:#fff}.ab-crim p{color:#f1cdd5} .ab-crim .ab-spots div{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)} .ab-mission{text-align:center;max-width:900px;margin:0 auto} .ab-mission h2{font-size:clamp(1.9rem,4vw,3rem);line-height:1.2} .ab-mission h2 em{font-style:normal;color:var(--gold2)} .ab-brow{display:flex;gap:18px;align-items:center;padding:18px 0;border-bottom:1px dashed rgba(255,255,255,.25)} .ab-brow:last-child{border:0} .ab-brow .ic{flex:0 0 66px;height:66px;border-radius:50%;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(0,0,0,.25)} .ab-brow .ic svg{width:30px;height:30px;stroke:#201703;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round} .ab-brow h3{color:#fff;margin:0 0 .15em;font-size:1.25rem} .ab-brow p{margin:0;font-size:.97rem;color:#b9d3c2} .ab-story p{font-size:1.08rem} .ab-cats .ab-gc .tx p{font-size:.93rem;color:#5a6b60;margin:0 0 .8em} .ab-flow.c4{grid-template-columns:repeat(4,1fr)}.ab-flow.c4:before{left:12.5%;right:12.5%} @media(max-width:980px){.ab-flow.c4{grid-template-columns:1fr}} .ab-hero .ab-map .arc{opacity:.28}.ab-hero .ab-map .pulse,.ab-hero .ab-map .pt{opacity:.35} .ab-hero .ab-map .ng,.ab-cta .ab-map .ng{stroke:rgba(242,209,116,.55)}
Shea Butter Export · Guide

By the Agro-Bridge editorial team · Updated November 2026 · 3 min read

This article is part of our complete guide: Shea Butter Export from Nigeria: Grades, Tests and the Raw Nut Ban

A shea butter COA is full of abbreviations. Knowing what shea butter quality tests mean lets you set sensible limits and spot problems. This article is part of our guide to shea butter export from Nigeria.

Free fatty acids (FFA)

FFA measures how much of the fat has broken down into free fatty acids. A low FFA suggests fresh, well-handled kernels and good processing. A high FFA suggests old, damaged or poorly stored kernels, or slow processing. Buyers set a maximum FFA, and raw butter generally needs tight limits if freshness matters.

Peroxide value (PV)

Peroxide value measures early oxidation, which leads to rancidity. A low PV means the butter is fresh and has not started to oxidise. A high PV warns of spoilage. PV matters for shelf life, so it is a core test for cosmetic and food buyers.

Moisture and volatile matter

Moisture and volatile matter show how much water and other volatile substances are in the butter. Too much moisture encourages microbial growth and spoilage. Buyers set a low maximum.

Unsaponifiable matter

Shea butter has a relatively high unsaponifiable fraction, which contains many of the natural components that cosmetic brands value. Buyers sometimes set a range, especially for unrefined butter.

Insoluble impurities

This measures solid particles such as nut fragments, dirt and fibres. Clean butter has very low impurities. It is important for raw butter, which is filtered less.

Colour, odour and texture

These are physical checks, often compared with a reference sample. Raw butter is ivory to yellow with a natural scent. Refined butter is white with little scent. Texture should be smooth and consistent. Grittiness can come from poor cooling.

Other tests for cosmetics and food

Test Why it matters
Microbiology Total counts, yeasts, moulds and pathogens, to protect consumers
Heavy metals Limits set by cosmetic and food regulations
Pesticide residues Required in some food and cosmetic markets
Melting point and iodine value Show consistency and composition

How to read the COA

  1. Check the batch. The lot number and date should match your shipment.
  2. Check the method. Tests should follow recognised methods.
  3. Compare with your limits. Each result should meet your specification.
  4. Check the laboratory. An accredited or well-known lab is more reliable.
  5. Compare with your own sample. If you can, test an independent sample.

Read more in what a Certificate of Analysis tells you.

Typical mistakes when using shea butter quality tests

Shea butter quality tests only help if they are used well. Buyers often make three errors:

  1. Testing once, early. A good test result from a sample made months earlier tells you little about today's shipment. Test the lot you are buying.
  2. Using different methods. Two labs using different methods can report different values. Name the method in the contract.
  3. Ignoring storage. FFA and peroxide value rise with age, heat and air. A lot that passed at the factory can fail after a hot container journey.

Using tests to protect the relationship

Clear limits and clear methods prevent arguments. If a result is borderline, agree in advance on a retest by a named laboratory, and on who pays. Both sides gain from knowing the rules before the first container ships. We treat tests as a shared tool, not as a weapon.

Put the tests in the contract

State each parameter with a numerical limit, say who tests and when, and say what happens if results miss the limit. See shea butter grades for choosing between raw and refined. For our approach to checking batches, see the quality-control framework, or request a quote.

Planning to source from Nigeria?

Send us your specification, quantity, packaging, destination and Incoterm. We will review it and reply with the right sourcing and commercial process.

Request a QuoteContact Us
Share:

agrobridgeglobal

Leave a Reply

Your email address will not be published. Required fields are makes.

Top