#sg-crm.sg-tool{border:1px solid #e3e6ef;border-radius:16px;padding:24px;margin:24px 0;background:#f7f9fc}
#sg-crm .sg-tool__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){#sg-crm .sg-tool__grid{grid-template-columns:1fr}}
#sg-crm label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.9rem;color:#14181f}
#sg-crm input{padding:.5em .6em;border:1px solid #cdd3e0;border-radius:8px;font-size:1rem}
#sg-crm .sg-tool__out{margin-top:20px;padding-top:18px;border-top:1px solid #e3e6ef}
#sg-crm .sg-tool__score{font-size:1.5rem;font-weight:800;color:#14181f;margin-bottom:6px}
#sg-crm .sg-tool__score span{color:#1a5fd6}
#sg-crm .sg-tool__detail{list-style:none;padding:0;margin:10px 0;font-size:.92rem;color:#3a4353}
#sg-crm .sg-tool__detail li{display:flex;justify-content:space-between;gap:1em;padding:5px 0;border-bottom:1px dashed #e3e6ef}
#sg-crm .sg-tool__verdict{margin-top:14px;padding:14px 16px;border-radius:10px;background:#eaf1fc;color:#14181f;font-weight:600;line-height:1.5}
#sg-crm .sg-tool__cta{display:inline-block;margin-top:14px;background:#1a5fd6;color:#fff;padding:.7em 1.3em;border-radius:9px;font-weight:700;text-decoration:none}
#sg-crm .sg-tool__note{font-size:.82rem;color:#6b7280;margin-top:14px}
(function(){
function eur(n){return new Intl.NumberFormat(‘fr-FR’,{style:’currency’,currency:’EUR’,maximumFractionDigits:0}).format(isFinite(n)?n:0);}
var ids=[‘crm-orders’,’crm-min’,’crm-rate’,’crm-timecut’,’crm-err’,’crm-errcost’,’crm-errcut’,’crm-proj’,’crm-rec’];
function v(id){var e=document.getElementById(id);return e?(+e.value||0):0;}
function calc(){
var oy=v(‘crm-orders’)*12;
var timeSaved=oy*(v(‘crm-min’)/60)*v(‘crm-rate’)*(v(‘crm-timecut’)/100);
var errNow=oy*(v(‘crm-err’)/100)*v(‘crm-errcost’);
var errSaved=errNow*(v(‘crm-errcut’)/100);
var gross=timeSaved+errSaved;
var rec=v(‘crm-rec’), proj=v(‘crm-proj’);
var net1=gross-rec-proj;
var annualNet=gross-rec;
var payback=annualNet>0?(proj/annualNet*12):Infinity;
var roi=proj>0?(net1/proj*100):0;
document.getElementById(‘crm-net’).textContent=eur(net1);
document.getElementById(‘crm-detail’).innerHTML=
‘
Data-entry time saved / year‘+eur(timeSaved)+’‘+
‘
Errors avoided / year‘+eur(errSaved)+’‘+
‘
Gross savings / year‘+eur(gross)+’‘+
‘
Recurring cost / year-‘+eur(rec)+’‘+
‘
Initial investment-‘+eur(proj)+’‘;
var el=document.getElementById(‘crm-verdict’);
if(!isFinite(payback)||annualNet<=0){
el.textContent="At these settings, the annual savings do not yet cover the recurring cost. First target the most expensive item (errors or re-entry) and a limited scope before expanding the CRM.";
} else {
el.textContent="Estimated return on investment in "+Math.round(payback)+" months (first-year ROI: "+Math.round(roi)+"%). Then, net annual savings reach about "+eur(annualNet)+".";
}
}
ids.forEach(function(id){var e=document.getElementById(id);if(e)e.addEventListener('input',calc);});
calc();
})();
How to read this result?
The calculation adds up two savings: the manual data-entry time removed and the errors avoided, then subtracts the project cost and its annual recurring cost. Adjust the reduction assumptions (time and errors) to your context: these are your figures, not promises.
When is a custom CRM worth it?
A custom CRM becomes worthwhile when re-entry and errors cost more each year than its development. Below a certain volume, a standard tool is often enough. Discover our approach to custom CRM development, the build or buy (HubSpot / Salesforce) question and the CRM × WooCommerce integration pitfalls.
Request an estimate for your CRM