(function(){ var bubble = document.getElementById("welcome_bubble_01"); var textNode = document.getElementById("welcome_bubble_text_01"); if(!bubble || !textNode) return; var MESSAGES = [ "Spend less. Save more. Invest the rest.", "Let AI work with you, not against you.", "Why didn't they ever teach this in school?!", "'I'm bad with money' is not a thing anymore.", "Personal finance? Totally doable.", "Trust in your ability to adapt.", "Privacy focused. No data collected.", "Turn ‘I Should’ into ‘Done'.", "We're here to help. Let's get started.", "You came to the right place.", "Your future self will thank you.", "Good choices, better habits.", "Money decisions will hit different.", "AI Scripts for Everyday Finance", "Use anywhere. No apps. Just Wi-Fi.", "Friendly finance > Stressful time." ]; var currentIndex = 0; var bubbleTimer = null; textNode.textContent = MESSAGES[currentIndex]; function getRandomDelay(){ return Math.floor(Math.random() * 15001) + 10000; } function pickNextIndex(){ if(MESSAGES.length <= 1) return 0; var next = currentIndex; while(next === currentIndex){ next = Math.floor(Math.random() * MESSAGES.length); } return next; } function scheduleNext(){ clearTimeout(bubbleTimer); bubbleTimer = setTimeout(function(){ swapMessage(); }, getRandomDelay()); } function swapMessage(){ bubble.classList.remove("bz-swap-in"); bubble.classList.add("bz-swap-out"); setTimeout(function(){ currentIndex = pickNextIndex(); textNode.textContent = MESSAGES[currentIndex]; bubble.classList.remove("bz-swap-out"); bubble.classList.add("bz-swap-in"); setTimeout(function(){ bubble.classList.remove("bz-swap-in"); }, 340); scheduleNext(); }, 320); } scheduleNext(); })(); (function(){ var bubble=document.getElementById('welcome_bubble_01'); if(!bubble)return; var bubbleWrap=bubble.closest('.bz-bubble-wrap-01'); var card=bubbleWrap&&bubbleWrap.nextElementSibling; if(!card||!card.classList.contains('bz-logo-card-02'))return; var link=card.querySelector('.bz-logo-link-02'); var img=link&&link.querySelector('.bz-logo-02'); if(!img||link.querySelector('.bz-home-logo-shell-01'))return; var shell=document.createElement('span'); shell.className='bz-home-logo-shell-01'; var motion=document.createElement('span'); motion.className='bz-home-logo-motion-01'; motion.style.setProperty('--bz-home-logo-image-01','url('+JSON.stringify(img.currentSrc||img.src)+')'); link.classList.add('bz-home-glitch-01'); img.before(shell); shell.appendChild(motion); motion.appendChild(img); })();
This is a personalized financial intelligence engine featuring— ⚡ 40+ AI-powered scripts designed to help you solve everyday money problems, with a few simple clicks.
Find AI Script... ➡️ Copy AI Script ➡️ Paste into GPT ➡️ Done!
From credit cards and student loans to salary negotiation and retirement investing — everything is handled in a fast, easy, and interactive way.
(()=>{ setTimeout(()=>{ if(location.hash!=='#get-access')return; const status=document.querySelector('[data-route="get-access"] [data-field="message"]'); if(!status)return; if(!window.__BZ_STATIC_CONTROLLER_LOADED){ status.textContent='Account controller did not load. Install 10-controller-footer.txt as a global Body End embed, then refresh.'; }else if(!window.__BZ_STATIC_FORMS && !window.__BZ_STATIC_STARTUP_ERROR){ status.textContent='Account forms are not ready. Check that all seven inline section embeds are installed.'; } },22000); })();
(function(){ var footer=document.getElementById("bz-footer-wrapper"); var note=document.getElementById("bz-hidden-footer-note"); if(!footer||!note) return; var taps=0; var timer=null; var visible=false; footer.addEventListener("click",function(){ taps++; clearTimeout(timer); timer=setTimeout(function(){ taps=0; },1400); if(taps>=5){ if(!visible){ note.classList.add("bz-visible"); visible=true; }else{ note.classList.remove("bz-visible"); visible=false; } taps=0; clearTimeout(timer); } }); })();
(function(){ var footer=document.getElementById("bz-footer-wrapper"); var note=document.getElementById("bz-hidden-footer-note"); if(!footer||!note) return; var taps=0; var timer=null; var visible=false; footer.addEventListener("click",function(){ taps++; clearTimeout(timer); timer=setTimeout(function(){ taps=0; },1400); if(taps>=5){ if(!visible){ note.classList.add("bz-visible"); visible=true; }else{ note.classList.remove("bz-visible"); visible=false; } taps=0; clearTimeout(timer); } }); })();
Welcome to Benji Finance!
(function(){ var bubble = document.getElementById("welcome_bubble_99"); var textNode = document.getElementById("welcome_bubble_text_99"); if(!bubble || !textNode) return; var MESSAGES = [ "Welcome Back!", "Let AI work with you, not against you.", "Trust in your ability to adapt.", "Privacy focused. No data collected.", "Why didn't they ever teach this in school?!", "Check out the Quick Tips!", "'I'm bad with money' is not a thing anymore.", "Personal finance? Totally doable.", "Spend less. Save more. Invest the rest.", "Turn ‘I Should’ into ‘Done'.", "We're here to help. Let's get started.", "You came to the right place.", "Your future self will thank you.", "Good choices, better habits.", "Money decisions will hit different.", "AI Scripts for Everyday Finance", "Use anywhere. No apps. Just Wi-Fi.", "Friendly finance > Stressful time." ]; var currentIndex = 0; var bubbleTimer = null; textNode.textContent = MESSAGES[currentIndex]; function getRandomDelay(){ return Math.floor(Math.random() * 15001) + 10000; } function pickNextIndex(){ if(MESSAGES.length <= 1) return 0; var next = currentIndex; while(next === currentIndex){ next = Math.floor(Math.random() * MESSAGES.length); } return next; } function scheduleNext(){ clearTimeout(bubbleTimer); bubbleTimer = setTimeout(function(){ swapMessage(); }, getRandomDelay()); } function swapMessage(){ bubble.classList.remove("bz-swap-in"); bubble.classList.add("bz-swap-out"); setTimeout(function(){ currentIndex = pickNextIndex(); textNode.textContent = MESSAGES[currentIndex]; bubble.classList.remove("bz-swap-out"); bubble.classList.add("bz-swap-in"); setTimeout(function(){ bubble.classList.remove("bz-swap-in"); }, 340); scheduleNext(); }, 320); } scheduleNext(); })(); (function(){ var bubble=document.getElementById('welcome_bubble_99'); if(!bubble)return; var bubbleWrap=bubble.closest('.bz-bubble-wrap-99'); var card=bubbleWrap&&bubbleWrap.nextElementSibling; if(!card||!card.classList.contains('bz-logo-card-02'))return; var link=card.querySelector('.bz-logo-link-02'); var img=link&&link.querySelector('.bz-logo-02'); if(!img||link.querySelector('.bz-home-logo-shell-99'))return; var shell=document.createElement('span'); shell.className='bz-home-logo-shell-99'; var motion=document.createElement('span'); motion.className='bz-home-logo-motion-99'; motion.style.setProperty('--bz-home-logo-image-99','url('+JSON.stringify(img.currentSrc||img.src)+')'); link.classList.add('bz-home-glitch-99'); img.before(shell); shell.appendChild(motion); motion.appendChild(img); })();
This is a personalized financial intelligence engine featuring— ⚡ 40+ AI-powered scripts designed to help you solve everyday money problems, with a few simple clicks.
Find AI Script... ➡️ Copy AI Script ➡️ Paste into GPT ➡️ Done!
From credit cards and student loans to salary negotiation and retirement investing—everything is handled in a fast, easy, and interactive way.
Let’s upgrade how you think about money.
(function(){ var STORAGE_KEY = "bz_fin_os_full_state_v2"; function initFinOSFull(){ var wrap = document.getElementById( "bz-fin-os-full-wrap" ); if(!wrap) return; /* Scope everything to this component. */ var toggle = wrap.querySelector( "#bz-fin-os-full-toggle" ); var panel = wrap.querySelector( "#bz-fin-os-full-panel" ); if(!toggle || !panel) return; /* Prevent duplicate event bindings. */ if( toggle.dataset.bzReady === "true" ){ return; } toggle.dataset.bzReady = "true"; function setExpanded( isOpen, save ){ toggle.setAttribute( "aria-expanded", isOpen ? "true" : "false" ); panel.setAttribute( "aria-hidden", isOpen ? "false" : "true" ); if(save){ try{ localStorage.setItem( STORAGE_KEY, isOpen ? "open" : "closed" ); }catch(e){} } } function getSavedState(){ try{ return localStorage.getItem( STORAGE_KEY ); }catch(e){ return null; } } /* RESTORE LAST STATE */ var saved = getSavedState(); if(saved === "closed"){ setExpanded( false, false ); }else{ setExpanded( true, false ); } /* TOGGLE PANEL */ toggle.addEventListener( "click", function(event){ event.preventDefault(); event.stopPropagation(); var isOpen = toggle.getAttribute( "aria-expanded" ) === "true"; setExpanded( !isOpen, true ); } ); } /* RUN IMMEDIATELY */ initFinOSFull(); /* RUN AFTER DOM LOAD */ if( document.readyState === "loading" ){ document.addEventListener( "DOMContentLoaded", initFinOSFull ); } /* RECHECK WHEN CARRD OPENS #FULL */ window.addEventListener( "hashchange", function(){ if( window.location.hash.toLowerCase() === "#full" ){ setTimeout( initFinOSFull, 50 ); } } ); })();
Add a first name or nickname to personalize your greeting.
+$0
💰 Your Savings Found:
$0
*Estimate from completed scripts
Recent Win: —
Small wins compound fast.
⚡ Your Progress:
0 of 37
Smart money moves completed.
Start your journey to healthier finances today.
⚡ Finance AI Scripts Completed
0 / 37 complete
🎉 Congrats!
You reached a milestone.
Every simple money move adds up.
🔥 Your Current Streak:
1 day
Personal Best: 1 day streak!
🔥 Current Streak
—
—
(function(){ function start(){ var data=window.__bzProgressCardData; if(!data||window.__bzProgressCardStarted)return; window.__bzProgressCardStarted=true; var confettiWired=false; var watcherStarted=false; var STORAGE_KEY=data.STORAGE_KEY; var TOTAL=data.TOTAL; var MILESTONE_UNOPENED_COUNT_KEY=data.MILESTONE_UNOPENED_COUNT_KEY; var MILESTONE_LATEST_KEY=data.MILESTONE_LATEST_KEY; var MILESTONE_ORDER=data.MILESTONE_ORDER; var CATEGORY_KEYS=data.CATEGORY_KEYS; var SCRIPT_META=data.SCRIPT_META; var MILESTONE_MESSAGES=data.MILESTONE_MESSAGES; function readStore(){ try{return JSON.parse(localStorage.getItem(STORAGE_KEY))||{};} catch(e){return{};} } function getCompletedScripts(store){ var seen={},completed=[]; CATEGORY_KEYS.forEach(function(category){ var state=store[category]; if(!state)return; Object.keys(state).forEach(function(id){ if(state[id]===true&&!seen[id]&&SCRIPT_META[id]){ seen[id]=true; completed.push({ id:id, num:SCRIPT_META[id].num, label:SCRIPT_META[id].label||null, emoji:SCRIPT_META[id].emoji, name:SCRIPT_META[id].name }); } }); }); completed.sort(function(a,b){return a.num-b.num;}); return completed; } function countAllDone(store){ return getCompletedScripts(store).length; } function renderCompletedList(items,node){ if(!node)return; if(!items.length){ node.innerHTML='\x3cdiv class="bz-dash-completed-empty">No money moves completed yet.\x3c/div>'; return; } node.innerHTML=""; var wrap=document.createElement("div"); wrap.className="bz-dash-completed-list-wrap"; items.forEach(function(item){ var row=document.createElement("div"); row.className="bz-dash-completed-row"; var title=document.createElement("div"); title.className="bz-dash-completed-title"; title.textContent=(item.label||item.num)+". "+item.emoji+" "+item.name; row.appendChild(title); wrap.appendChild(row); }); node.appendChild(wrap); } function openOverlay(node){ if(!node)return; node.classList.add("bz-visible"); node.setAttribute("aria-hidden","false"); } function closeOverlay(node){ if(!node)return; node.classList.remove("bz-visible"); node.setAttribute("aria-hidden","true"); } function burstFullscreenConfetti(layer){ if(!layer)return; var colors=[ "#FACC15","#FDE047","#22C55E","#60A5FA","#F472B6", "#FB7185","#A78BFA","#34D399","#F97316","#FFFFFF" ]; for(var i=0;120>i;i++){ var piece=document.createElement("div"); piece.className="bz-fullscreen-piece"; var x=(Math.random()*320)-160; var y=window.innerHeight+120+Math.random()*220; piece.style.left=(Math.random()*window.innerWidth)+"px"; piece.style.top=(-20-Math.random()*120)+"px"; piece.style.background=colors[Math.floor(Math.random()*colors.length)]; piece.style.setProperty("--x",x+"px"); piece.style.setProperty("--y",y+"px"); piece.style.setProperty("--r",((Math.random()*1080)-540)+"deg"); if(Math.random()>.55){ piece.style.width="8px"; piece.style.height="8px"; piece.style.borderRadius="999px"; } layer.appendChild(piece); setTimeout((function(n){ return function(){ if(n&&n.parentNode)n.parentNode.removeChild(n); }; })(piece),1500); } } function showMilestonePopup(done){ var overlay=document.getElementById("bz-dash-milestone-overlay"); var title=document.getElementById("bz-dash-milestone-title"); var body=document.getElementById("bz-dash-milestone-body"); var msg=MILESTONE_MESSAGES[done]; if(!overlay||!title||!body||!msg)return false; title.textContent=msg.title; body.textContent=msg.body; openOverlay(overlay); return true; } function readInt(key){ try{ var v=parseInt(localStorage.getItem(key)||"0",10); return isNaN(v)?0:v; }catch(e){return 0;} } function setInt(key,value){ try{localStorage.setItem(key,String(value));} catch(e){} } function processMilestones(done){ for(var i=0;MILESTONE_ORDER.length>i;i++){ var m=MILESTONE_ORDER[i]; if(m>done)continue; var key="bz_progress_milestone_earned_"+m; var earned=false; try{earned=localStorage.getItem(key)==="1";}catch(e){} if(earned)continue; try{localStorage.setItem(key,"1");}catch(e){} setInt( MILESTONE_UNOPENED_COUNT_KEY, readInt(MILESTONE_UNOPENED_COUNT_KEY)+1 ); setInt(MILESTONE_LATEST_KEY,m); } } function updateMilestoneButton(){ var btn=document.getElementById("bz-dash-milestone-btn"); var count=document.getElementById("bz-dash-milestone-count"); if(!btn||!count)return; count.textContent=String(readInt(MILESTONE_UNOPENED_COUNT_KEY)); } function openLatestMilestoneFromInbox(){ var latest=readInt(MILESTONE_LATEST_KEY); if(!latest||!MILESTONE_MESSAGES[latest])return; if(!showMilestonePopup(latest))return; setInt(MILESTONE_UNOPENED_COUNT_KEY,0); setInt(MILESTONE_LATEST_KEY,0); updateMilestoneButton(); } function getNextMilestone(done){ for(var i=0;MILESTONE_ORDER.length>i;i++){ if(MILESTONE_ORDER[i]>done)return MILESTONE_ORDER[i]; } return null; } function refreshProgressCard(){ var card=document.getElementById("bz-card-progress-module"); if(!card)return; var store=readStore(); var done=countAllDone(store); var percent=(done/TOTAL)*100; var completed=getCompletedScripts(store); processMilestones(done); var progress=document.getElementById("bz-dash-progress"); var sub=document.getElementById("bz-dash-progress-sub"); var dayline=document.getElementById("bz-dash-dayline"); var fill=document.getElementById("bz-dash-mini-progress-fill"); var list=document.getElementById("bz-dash-completed-list"); var count=document.getElementById("bz-dash-completed-count"); var celebrate=document.getElementById("bz-dash-celebrate-btn"); if(progress)progress.textContent=done+" of "+TOTAL; if(sub)sub.textContent="Smart money moves completed."; if(dayline){ if(0>=done){ dayline.textContent="Complete your first AI script to start building progress."; }else if(done>=TOTAL){ dayline.textContent="All 37 scripts completed. 🎉"; }else{ var next=getNextMilestone(done); if(next){ var left=next-done; dayline.innerHTML= '\x3cspan class="bz-milestone-label">Next milestone: \x3c/span>'+ '\x3cspan class="bz-milestone-value">'+ next+ ' scripts — '+ left+ ' more to go.\x3c/span>'; } } } if(fill)fill.style.width=percent+"%"; if(count)count.textContent=done+" of "+TOTAL+" complete"; if(celebrate){ if(done>=TOTAL)celebrate.classList.add("bz-visible"); else celebrate.classList.remove("bz-visible"); } renderCompletedList(completed,list); updateMilestoneButton(); } function wirePopupAndConfetti(){ var view=document.getElementById("bz-dash-view-btn"); var milestone=document.getElementById("bz-dash-milestone-btn"); var overlay=document.getElementById("bz-dash-completed-overlay"); var pop=document.getElementById("bz-dash-completed-pop"); var close=document.getElementById("bz-dash-completed-close"); var mOverlay=document.getElementById("bz-dash-milestone-overlay"); var mPop=document.getElementById("bz-dash-milestone-pop"); var mClose=document.getElementById("bz-dash-milestone-close"); var celebrate=document.getElementById("bz-dash-celebrate-btn"); var layer=document.getElementById("bz-fullscreen-confetti"); if(view&&view.getAttribute("data-wired")!=="1"){ view.setAttribute("data-wired","1"); view.addEventListener("click",function(){ openOverlay(overlay); }); } if(milestone&&milestone.getAttribute("data-wired")!=="1"){ milestone.setAttribute("data-wired","1"); milestone.addEventListener("click",openLatestMilestoneFromInbox); } if(close&&close.getAttribute("data-wired")!=="1"){ close.setAttribute("data-wired","1"); close.addEventListener("click",function(){ closeOverlay(overlay); }); } if(overlay&&overlay.getAttribute("data-wired")!=="1"){ overlay.setAttribute("data-wired","1"); overlay.addEventListener("click",function(e){ if(e.target===overlay)closeOverlay(overlay); }); } if(pop&&pop.getAttribute("data-wired")!=="1"){ pop.setAttribute("data-wired","1"); pop.addEventListener("click",function(e){ e.stopPropagation(); }); } if(mClose&&mClose.getAttribute("data-wired")!=="1"){ mClose.setAttribute("data-wired","1"); mClose.addEventListener("click",function(){ closeOverlay(mOverlay); }); } if(mOverlay&&mOverlay.getAttribute("data-wired")!=="1"){ mOverlay.setAttribute("data-wired","1"); mOverlay.addEventListener("click",function(e){ if(e.target===mOverlay)closeOverlay(mOverlay); }); } if(mPop&&mPop.getAttribute("data-wired")!=="1"){ mPop.setAttribute("data-wired","1"); mPop.addEventListener("click",function(e){ e.stopPropagation(); }); } if(!confettiWired&&celebrate&&layer){ confettiWired=true; celebrate.addEventListener("click",function(){ burstFullscreenConfetti(layer); }); } } function startWatcher(){ if(watcherStarted)return; watcherStarted=true; setInterval(refreshProgressCard,10000); } function boot(){ if(!document.getElementById("bz-card-progress-module"))return false; if(!document.getElementById("bz-dash-milestone-overlay"))return false; if(!document.getElementById("bz-dash-milestone-title"))return false; if(!document.getElementById("bz-dash-milestone-body"))return false; wirePopupAndConfetti(); refreshProgressCard(); startWatcher(); return true; } if(!boot()){ var tries=0; var timer=setInterval(function(){ tries++; if(boot()||tries>40)clearInterval(timer); },250); } window.addEventListener("storage",function(e){ if( e.key===STORAGE_KEY|| e.key===MILESTONE_UNOPENED_COUNT_KEY|| e.key===MILESTONE_LATEST_KEY ){ refreshProgressCard(); } }); document.addEventListener("visibilitychange",function(){ if(!document.hidden){ refreshProgressCard(); wirePopupAndConfetti(); } }); window.addEventListener("focus",refreshProgressCard); document.addEventListener("keydown",function(e){ if(e.key==="Escape"){ closeOverlay(document.getElementById("bz-dash-completed-overlay")); closeOverlay(document.getElementById("bz-dash-milestone-overlay")); } }); } window.addEventListener("bz-progress-data-ready",start); start(); })();
(function(){ if(window.__bzMilestoneToastV2)return;window.__bzMilestoneToastV2=true; var STORAGE_KEY="bz_category_progress_v1"; var TOTAL=37; var confettiWired=false; var watcherStarted=false; var MILESTONE_UNOPENED_COUNT_KEY="bz_progress_milestone_unopened_count_v1"; var MILESTONE_LATEST_KEY="bz_progress_most_recent_milestone_v1"; var MILESTONE_ORDER=[1,3,5,10,15,20,25,32,37]; var CATEGORY_KEYS=[ "spending_leaks", "reality_checks", "debt_fixes", "big_life", "growth_wins", "money_wins" ]; var SCRIPT_META={ time:{num:1,emoji:"⏳",name:"Time vs Money Optimizer"}, smart:{num:2,emoji:"🍱",name:"Smart Meal Prepper"}, budget:{num:3,emoji:"📦",name:"Budget Home Furnisher"}, finance:{num:4,emoji:"📖",name:"Finance Term Translator"}, money:{num:5,emoji:"🎯",name:"Money Decision Simplifier"}, goal:{num:6,emoji:"🚀",name:"Goal-to-Action Organizer"}, lifestyle:{num:7,emoji:"💸",name:"Save $500 w/ Lifestyle Tweak"}, habit:{num:8,emoji:"☕",name:"Invisible Habit Tracker"}, convenience:{num:9,emoji:"🍕",name:"Convenience Tax Auditor"}, online:{num:10,emoji:"🛒",name:"Online Shopping Mirror"}, impulse:{num:11,emoji:"⏸️",name:"Impulse Buy Chiller (FOMO)"}, switch:{num:12,emoji:"💸",name:"Switch Internet/Phone Plan"}, overdraft:{num:13,emoji:"💸",name:"Overdraft Fee Waiver"}, takehome:{num:14,emoji:"🧾",name:"Take-Home Pay Calculator"}, paycheck:{num:15,emoji:"💼",name:"First Paycheck Protector"}, taxes:{num:16,emoji:"🧭",name:"Income Tax Explainer"}, raise:{num:17,emoji:"📈",name:"Job Pay Raise Analyzer"}, trip:{num:18,emoji:"🧠",name:"Trip Budget Planner"}, savings:{num:19,emoji:"📍",name:"Trip Savings Countdown"}, hobby:{num:20,emoji:"🎯",name:"Is My Hobby Worth It?"}, emergency:{num:21,emoji:"🛟",name:"Emergency Fund Builder"}, interest:{num:22,emoji:"⚠️",name:"Credit Card Interest Trap"}, credit:{num:23,emoji:"💳",name:"Credit Card Payoff Plan"}, student:{num:24,emoji:"🎓",name:"Student Loan Strategizer"}, insurance:{num:25,emoji:"🛡️",name:"Insurance Plan Decoder"}, hospital:{num:26,emoji:"🛟",name:"Hospital Bill Helper"}, car:{num:27,emoji:"🚗",name:"How Much Car Can I Get?"}, house:{num:28,emoji:"🏠",name:"How Much House Can I Get?"}, large:{num:29,emoji:"🧮",name:"Large Purchases Referee"}, job:{num:30,emoji:"⚖️",name:"Job A vs Job B Comparer"}, salary:{num:31,emoji:"🧠",name:"Job Salary Negotiator"}, index:{num:32,emoji:"📍",name:"Index Fund Starter"}, score:{num:33,emoji:"🌱",name:"Raise My Credit Score Fast"}, match:{num:34,emoji:"🎁",name:"Employer Match Maximizer"}, retire:{num:35,emoji:"🏖️",name:"How Much Money to Retire"}, inheritance:{num:36,emoji:"🪙",name:"Inheritance: Invest vs Debt"}, degree:{num:37,emoji:"📘",name:"Degree ROI Calculator"} }; var MILESTONE_MESSAGES={ 1:{title:"💰 First money move completed.",body:"Nice. You're officially in motion now. And that first step matters more than you think."}, 3:{title:"✨ 3 money moves completed.",body:"You're building real momentum. A few smart decisions can noticeably change how money feels."}, 5:{title:"🚀 5 money moves completed.",body:"This is where things start to get interesting. Less guesswork, better choices."}, 10:{title:"💪 10 money moves completed.",body:"That is a strong milestone. You aren't just casually browsing. You're actively improving your finances."}, 15:{title:"🔥 15 money moves completed.",body:"You're growing rapidly. Small money wins are stacking up."}, 20:{title:"🌱 20 money moves completed.",body:"You've made great strides. The habits you're building now can pay off for years to come."}, 25:{title:"🏆 25 money moves completed.",body:"This is serious progress. Most people never get this far. You did."}, 32:{title:"👑 32 money moves completed.",body:"Almost there. You've built something meaningful here: stronger habits, better thinking, smarter money moves."}, 37:{title:"⚡ All money moves completed.",body:"Incredible. You did it! But this is not the end, it's just the beginning. Keep re-using scripts for life moments when you need 'em."} }; function readStore(){ try{return JSON.parse(localStorage.getItem(STORAGE_KEY))||{};} catch(e){return{};} } function getCompletedScripts(store){ var seen={},completed=[]; CATEGORY_KEYS.forEach(function(category){ var state=store[category]; if(!state)return; Object.keys(state).forEach(function(id){ if(state[id]===true&&!seen[id]&&SCRIPT_META[id]){ seen[id]=true; completed.push({ id:id, num:SCRIPT_META[id].num, label:SCRIPT_META[id].label||null, emoji:SCRIPT_META[id].emoji, name:SCRIPT_META[id].name }); } }); }); completed.sort(function(a,b){return a.num-b.num;}); return completed; } function countAllDone(store){ return getCompletedScripts(store).length; } var KEY="bz_progress_milestone_toast_seen_v2"; var active=0,stable=0,node=null,timer=null,seen=0; function readSeen(){try{return parseInt(localStorage.getItem(KEY)||"0",10)||0;}catch(e){return 0;}} function remember(){ if(!active)return; seen=Math.max(seen,readSeen(),active); try{localStorage.setItem(KEY,String(seen));}catch(e){} } function hide(acknowledge){ if(acknowledge)remember(); if(timer)clearTimeout(timer); timer=null;active=0; if(node){node.classList.remove("bz-toast-visible");node.setAttribute("aria-hidden","true");} } function ready(){ if(!/^(www\.)?benjifinance\.com$/i.test(location.hostname)||location.hash.toLowerCase()!=="#full"||document.hidden||!document.body)return false; if(document.body.classList.contains("is-loading")||document.documentElement.classList.contains("bz2-checking"))return false; var section=document.getElementById("full-section"); if(!section||!section.classList.contains("active")||!section.getClientRects().length)return false; for(var el=section;el&&el.nodeType===1;el=el.parentElement){ var st=getComputedStyle(el); if(el.hidden||el.getAttribute("aria-hidden")==="true"||st.display==="none"||st.visibility==="hidden"||st.visibility==="collapse"||0.99>parseFloat(st.opacity))return false; } return true; } function ensure(){ if(node&&node.isConnected)return node; node=document.getElementById("bz-progress-milestone-toast"); if(!node){ node=document.createElement("div");node.id="bz-progress-milestone-toast"; node.innerHTML='\x3cspan class="bz-toast-icon" aria-hidden="true">\x3c/span>\x3cspan class="bz-toast-message" role="status" aria-live="polite" aria-atomic="true">\x3c/span>\x3cbutton class="bz-toast-close" type="button" aria-label="Dismiss milestone notification">×\x3c/button>'; node.querySelector(".bz-toast-close").addEventListener("click",function(){hide(true);}); document.body.appendChild(node); } return node; } function tick(){ if(!ready()){stable=0;hide(false);return;} if(!stable){stable=Date.now();return;} if(750>Date.now()-stable)return; var done=countAllDone(readStore()),latest=0; for(var i=0;MILESTONE_ORDER.length>i;i++)if(done>=MILESTONE_ORDER[i])latest=MILESTONE_ORDER[i]; seen=Math.max(seen,readSeen()); if(!latest||seen>=latest||latest===active)return; if(active)hide(false); var box=ensure(),match=MILESTONE_MESSAGES[latest].title.match(/^\S+/); box.querySelector(".bz-toast-icon").textContent=match?match[0]:"🎉"; box.querySelector(".bz-toast-message").textContent=latest+(latest===1?" milestone completed!":" milestones completed!"); box.setAttribute("aria-hidden","false");void box.offsetWidth;box.classList.add("bz-toast-visible"); active=latest; timer=setTimeout(function(){if(ready())hide(true);else hide(false);},10000); } window.addEventListener("hashchange",function(){stable=0;hide(false);tick();}); window.addEventListener("pagehide",function(){stable=0;hide(false);}); window.addEventListener("pageshow",tick); window.addEventListener("storage",tick); document.addEventListener("visibilitychange",function(){stable=0;if(document.hidden)hide(false);else tick();}); setInterval(tick,250);tick(); })();
(function(){ var VISIT_KEY = "bz_visit_days_v1"; var BEST_STREAK_KEY = "bz_best_streak_v1"; var ONE_DAY_AFFIRMATION = "One day at a time will win."; function getUserTimeZone(){ try{ return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC"; }catch(e){ return "UTC"; } } var APP_TIME_ZONE = getUserTimeZone(); var STREAK_AFFIRMATIONS = [ "Momentum beats motivation.", "Any progress is real progress.", "Keep your eyes locked on target.", "Keep stacking days like paper.", "Perseverance is the key to success.", "A tiny streak is still a streak.", "This is how better habits form.", "You’re moving toward something big.", "Slow and steady...wins the race." ]; var streakAffirmTimer = null; var streakAffirmIndex = 0; var streakAffirmStarted = false; function ensureStreakAnimStyles(){ if(document.getElementById("bz-streak-inline-anim-styles")) return; var style = document.createElement("style"); style.id = "bz-streak-inline-anim-styles"; style.textContent = [ "@keyframes bzStreakRangeShimmer{", "0%{box-shadow:inset 0 0 0 rgba(255,255,255,0), 0 0 0 rgba(0,0,0,0);}", "50%{box-shadow:inset 0 0 0 rgba(255,255,255,0), 0 0 10px rgba(249,115,22,.10);}", "100%{box-shadow:inset 0 0 0 rgba(255,255,255,0), 0 0 0 rgba(0,0,0,0);}", "}", "@keyframes bzTodayDotPulse{", "0%,100%{transform:scale(1);opacity:1;}", "50%{transform:scale(1.28);opacity:.82;}", "}" ].join(""); document.head.appendChild(style); } function formatYMDInTZ(date, timeZone){ var parts = new Intl.DateTimeFormat("en-CA", { timeZone: timeZone, year: "numeric", month: "2-digit", day: "2-digit" }).formatToParts(date); var out = {}; parts.forEach(function(part){ if(part.type !== "literal") out[part.type] = part.value; }); return out.year + "-" + out.month + "-" + out.day; } function todayStr(){ return formatYMDInTZ(new Date(), APP_TIME_ZONE); } function readVisits(){ try{ var parsed = JSON.parse(localStorage.getItem(VISIT_KEY)); if(parsed && Array.isArray(parsed.days)) return parsed.days; if(Array.isArray(parsed)) return parsed; return []; }catch(e){ return []; } } function writeVisits(days){ try{ localStorage.setItem(VISIT_KEY, JSON.stringify({days: days})); }catch(e){} } function readBestStreak(){ try{ var value = parseInt(localStorage.getItem(BEST_STREAK_KEY) || "", 10); return isNaN(value) || value < 1 ? 1 : value; }catch(e){ return 1; } } function writeBestStreak(value){ try{ localStorage.setItem(BEST_STREAK_KEY, String(value)); }catch(e){} } function updateBestStreak(streakDays){ var best = readBestStreak(); if(streakDays > best){ best = streakDays; writeBestStreak(best); } return best; } function renderBestStreak(bestDays){ var node = document.getElementById("bz-streak-best"); if(!node) return; /* OBJECT A — static label */ var objectA = document.createElement("span"); objectA.id = "bz-streak-object-a"; objectA.className = "bz-streak-best-label"; objectA.textContent = "Personal Best: "; objectA.style.setProperty("font-weight", "400", "important"); /* OBJECT B — dynamic streak value */ var objectB = document.createElement("span"); objectB.id = "bz-streak-object-b"; objectB.className = "bz-streak-best-value"; objectB.textContent = bestDays + " day streak!"; objectB.style.setProperty("font-weight", "700", "important"); node.innerHTML = ""; node.appendChild(objectA); node.appendChild(objectB); } function uniqueSortedDays(days){ var seen = {}; var out = []; days.forEach(function(day){ if(typeof day === "string" && !seen[day]){ seen[day] = true; out.push(day); } }); out.sort(); return out; } function updateVisits(){ var visits = uniqueSortedDays(readVisits()); var today = todayStr(); if(visits.indexOf(today) === -1){ visits.push(today); visits = uniqueSortedDays(visits); writeVisits(visits); } return visits; } function getStreakDays(visits){ if(!visits.length) return 1; var streak = 1; for(var i = visits.length - 1; i > 0; i--){ var current = new Date(visits[i] + "T00:00:00"); var previous = new Date(visits[i - 1] + "T00:00:00"); var diff = Math.round((current - previous) / 86400000); if(diff === 1){ streak++; }else{ break; } } return streak; } function getStreakStartDate(visits, streakDays){ if(!visits.length || streakDays <= 0) return null; return visits[visits.length - streakDays]; } function formatDateParts(dateStr){ var d = new Date(dateStr + "T12:00:00"); return { month: d.toLocaleString("en-US", { month: "short", timeZone: APP_TIME_ZONE }).toUpperCase(), monthLong: d.toLocaleString("en-US", { month: "long", timeZone: APP_TIME_ZONE }), weekday: d.toLocaleString("en-US", { weekday: "short", timeZone: APP_TIME_ZONE }).toUpperCase(), year: Number(dateStr.slice(0,4)), day: Number(dateStr.slice(8,10)) }; } function renderDateBox(today){ var parts = formatDateParts(today); var monthNode = document.getElementById("bz-date-month"); var dayNode = document.getElementById("bz-date-day"); var weekdayNode = document.getElementById("bz-date-weekday"); if(monthNode) monthNode.textContent = parts.month; if(dayNode) dayNode.textContent = String(parts.day); if(weekdayNode) weekdayNode.textContent = parts.weekday; } function renderStreakValue(streakDays){ var node = document.getElementById("bz-dash-streak"); if(!node) return; node.textContent = streakDays === 1 ? "1 day" : streakDays + " days"; } function openOverlay(){ var overlay = document.getElementById("bz-streak-overlay"); if(!overlay) return; overlay.classList.add("bz-visible"); overlay.setAttribute("aria-hidden", "false"); } function closeOverlay(){ var overlay = document.getElementById("bz-streak-overlay"); if(!overlay) return; overlay.classList.remove("bz-visible"); overlay.setAttribute("aria-hidden", "true"); } function makeCell(text, styles){ var div = document.createElement("div"); div.textContent = text; for(var key in styles){ div.style[key] = styles[key]; } return div; } function renderCalendar(streakDays, streakStart, today){ var infoNode = document.getElementById("bz-streak-info"); var monthLabelNode = document.getElementById("bz-streak-month-label"); var gridNode = document.getElementById("bz-streak-calendar-grid"); if(!infoNode || !monthLabelNode || !gridNode) return; ensureStreakAnimStyles(); var todayDate = new Date(today + "T00:00:00"); var year = todayDate.getFullYear(); var month = todayDate.getMonth(); var monthText = formatDateParts(today).monthLong + " " + year; var firstOfMonth = new Date(year, month, 1); var firstDayStr = formatYMDInTZ(firstOfMonth, APP_TIME_ZONE); var startedPreviousMonth = streakStart && streakStart < firstDayStr && streakDays > 1; infoNode.textContent = monthText; monthLabelNode.innerHTML = streakDays === 1 ? "1 day streak" : streakDays + " day streak"; gridNode.innerHTML = ""; var wrap = document.createElement("div"); wrap.style.display = "grid"; wrap.style.gridTemplateColumns = "repeat(7,1fr)"; wrap.style.gap = "6px"; wrap.style.width = "100%"; var weekdayLabels = ["SUN","MON","TUE","WED","THU","FRI","SAT"]; weekdayLabels.forEach(function(label){ wrap.appendChild(makeCell(label, { textAlign: "center", fontSize: "10px", fontWeight: "700", paddingBottom: "4px", letterSpacing: ".04em", opacity: ".7" })); }); var startWeekday = firstOfMonth.getDay(); var lastOfMonth = new Date(year, month + 1, 0); var daysInMonth = lastOfMonth.getDate(); for(var blank = 0; blank < startWeekday; blank++){ wrap.appendChild(document.createElement("div")); } for(var day = 1; day <= daysInMonth; day++){ var current = new Date(year, month, day); var currentStr = formatYMDInTZ(current, APP_TIME_ZONE); var isToday = currentStr === today; var isStart = streakStart && currentStr === streakStart; var inRange = false; if(streakDays === 1){ inRange = isToday; }else if(streakStart){ var effectiveStart = streakStart < firstDayStr ? firstDayStr : streakStart; inRange = currentStr >= effectiveStart && currentStr <= today; } var cell = document.createElement("div"); cell.textContent = day; cell.style.height = "36px"; cell.style.borderRadius = "10px"; cell.style.display = "flex"; cell.style.alignItems = "center"; cell.style.justifyContent = "center"; cell.style.fontSize = "12px"; cell.style.fontWeight = "700"; cell.style.position = "relative"; cell.style.boxSizing = "border-box"; cell.style.color = "#0F172A"; cell.style.border = "1px solid #E2E8F0"; cell.style.background = "#FFFFFF"; var ORANGE = "#F97316"; var DARK = "#111827"; if(inRange){ cell.style.background = "rgba(255,237,213,.95)"; cell.style.border = "1px solid #FDBA74"; cell.style.animation = "bzStreakRangeShimmer 3.2s ease-in-out infinite"; } if(isToday || isStart){ cell.style.background = ORANGE; cell.style.color = "#FFFFFF"; cell.style.animation = "none"; } if(isToday){ cell.style.border = "1px solid " + DARK; cell.style.boxShadow = "0 0 0 2px rgba(17,24,39,.08)"; } if(isStart && !isToday && streakDays > 1){ cell.style.border = "2px dotted " + DARK; } if(isToday){ var dot = document.createElement("div"); dot.style.position = "absolute"; dot.style.bottom = "3px"; dot.style.width = "4px"; dot.style.height = "4px"; dot.style.borderRadius = "999px"; dot.style.background = "#FFFFFF"; dot.style.animation = "bzTodayDotPulse 1.8s ease-in-out infinite"; cell.appendChild(dot); } wrap.appendChild(cell); } gridNode.appendChild(wrap); var legend = document.createElement("div"); legend.style.display = "flex"; legend.style.justifyContent = "center"; legend.style.gap = "14px"; legend.style.flexWrap = "wrap"; legend.style.marginTop = "14px"; function addLegendDot(label, styles){ var item = document.createElement("div"); item.className = "bz-streak-legend-item"; item.style.display = "flex"; item.style.alignItems = "center"; item.style.gap = "6px"; item.style.fontSize = "11px"; item.style.fontWeight = "600"; var dot = document.createElement("span"); dot.style.display = "inline-block"; dot.style.width = "10px"; dot.style.height = "10px"; for(var key in styles){ dot.style[key] = styles[key]; } var text = document.createElement("span"); text.textContent = label; item.appendChild(dot); item.appendChild(text); legend.appendChild(item); } if(streakDays === 1){ addLegendDot("Today", { borderRadius: "999px", background: "#F97316", border: "1px solid #111827", boxSizing: "border-box" }); }else{ if(streakStart && streakStart >= firstDayStr){ addLegendDot("Start Date", { borderRadius: "2px", background: "#F97316", border: "2px dotted #111827", boxSizing: "border-box" }); } addLegendDot("Today", { borderRadius: "999px", background: "#F97316", border: "1px solid #111827", boxSizing: "border-box" }); addLegendDot("Streak", { borderRadius: "999px", background: "rgba(255,237,213,.95)", border: "1px solid #FDBA74", boxSizing: "border-box" }); } gridNode.appendChild(legend); } function wirePopup(){ var btn = document.getElementById("bz-streak-date-btn"); var overlay = document.getElementById("bz-streak-overlay"); var pop = document.getElementById("bz-streak-pop"); var closeBtn = document.getElementById("bz-streak-close"); if(btn && btn.getAttribute("data-wired") !== "1"){ btn.setAttribute("data-wired", "1"); btn.addEventListener("click", function(){ var visits = updateVisits(); var today = todayStr(); var streakDays = getStreakDays(visits); var bestDays = updateBestStreak(streakDays); var streakStart = getStreakStartDate(visits, streakDays); renderCalendar(streakDays, streakStart, today); openOverlay(); }); btn.addEventListener("keydown", function(e){ if(e.key === "Enter" || e.key === " "){ e.preventDefault(); var visits = updateVisits(); var today = todayStr(); var streakDays = getStreakDays(visits); var streakStart = getStreakStartDate(visits, streakDays); renderCalendar(streakDays, streakStart, today); openOverlay(); } }); } if(closeBtn && closeBtn.getAttribute("data-wired") !== "1"){ closeBtn.setAttribute("data-wired", "1"); closeBtn.addEventListener("click", function(){ closeOverlay(); }); } if(overlay && overlay.getAttribute("data-wired") !== "1"){ overlay.setAttribute("data-wired", "1"); overlay.addEventListener("click", function(e){ if(e.target === overlay){ closeOverlay(); } }); } if(pop && pop.getAttribute("data-wired") !== "1"){ pop.setAttribute("data-wired", "1"); pop.addEventListener("click", function(e){ e.stopPropagation(); }); } } function getRandomDelay(){ return Math.floor(Math.random() * 15001) + 10000; } function fadeTextSwap(node, nextText){ if(!node) return; node.classList.add("bz-affirm-fade"); node.classList.add("bz-changing"); setTimeout(function(){ node.textContent = nextText; node.classList.remove("bz-changing"); }, 180); } function stopStreakAffirmations(){ if(streakAffirmTimer){ clearTimeout(streakAffirmTimer); streakAffirmTimer = null; } streakAffirmStarted = false; } function startStreakAffirmations(){ var node = document.getElementById("bz-streak-affirmation"); if(!node) return; var visits = updateVisits(); var streakDays = getStreakDays(visits); if(streakDays === 1){ stopStreakAffirmations(); node.classList.add("bz-affirm-fade"); node.textContent = ONE_DAY_AFFIRMATION; return; } if(streakAffirmStarted) return; streakAffirmStarted = true; node.classList.add("bz-affirm-fade"); if(!STREAK_AFFIRMATIONS.length) return; if(STREAK_AFFIRMATIONS.indexOf(node.textContent) === -1){ streakAffirmIndex = 0; node.textContent = STREAK_AFFIRMATIONS[0]; }else{ streakAffirmIndex = STREAK_AFFIRMATIONS.indexOf(node.textContent); } function scheduleNext(){ streakAffirmTimer = setTimeout(function(){ var latestVisits = updateVisits(); var latestStreakDays = getStreakDays(latestVisits); if(latestStreakDays === 1){ stopStreakAffirmations(); node.textContent = ONE_DAY_AFFIRMATION; return; } streakAffirmIndex = (streakAffirmIndex + 1) % STREAK_AFFIRMATIONS.length; fadeTextSwap(node, STREAK_AFFIRMATIONS[streakAffirmIndex]); scheduleNext(); }, getRandomDelay()); } scheduleNext(); } function refreshStreakCard(){ var card = document.getElementById("bz-card-streak-module"); if(!card) return; var visits = updateVisits(); var today = todayStr(); var streakDays = getStreakDays(visits); var bestDays = updateBestStreak(streakDays); var streakStart = getStreakStartDate(visits, streakDays); var affirmNode = document.getElementById("bz-streak-affirmation"); renderDateBox(today); renderStreakValue(streakDays); renderBestStreak(bestDays); renderCalendar(streakDays, streakStart, today); wirePopup(); if(affirmNode){ if(streakDays === 1){ affirmNode.textContent = ONE_DAY_AFFIRMATION; stopStreakAffirmations(); }else{ if(!affirmNode.textContent || affirmNode.textContent === ONE_DAY_AFFIRMATION){ streakAffirmIndex = 0; affirmNode.textContent = STREAK_AFFIRMATIONS[0]; } startStreakAffirmations(); } } } function boot(){ refreshStreakCard(); } boot(); window.addEventListener("storage", function(e){ if(e.key === VISIT_KEY){ refreshStreakCard(); } }); document.addEventListener("visibilitychange", function(){ if(!document.hidden){ refreshStreakCard(); } }); document.addEventListener("keydown", function(e){ if(e.key === "Escape"){ closeOverlay(); } }); })();
If something helped you, or could be improved, tell us about it!
✕
🚀 Tell Your Friends
Replace $X with your savings amount, and post your win on Twitter/X!
Pretty awesome, I just found about $X in savings using Benji Finance Suite. Find out how: https://benjifinance.com/
(function(){ var contactBtn = document.getElementById("bz-contact-btn"); var contactOverlay = document.getElementById("bz-contact-overlay"); var contactModal = document.getElementById("bz-contact-modal"); var contactClose = document.getElementById("bz-close"); var contactInput = document.getElementById("bz-message"); var shareBtn = document.getElementById("bz-share-btn"); var shareOverlay = document.getElementById("bz-share-overlay"); var shareModal = document.getElementById("bz-share-modal"); var shareClose = document.getElementById("bz-share-close"); var shareMessage = document.getElementById("bz-share-message"); var sendBtn = document.getElementById("bz-send-btn"); var shareSendBtn = document.getElementById("bz-share-send-btn"); var LAST_SEEN_SAVINGS_KEY = "bz_last_seen_savings_v1"; var shareOutsideClickCount = 0; /* CLEAN PRODUCT / SHARE URL */ var BZ_SHARE_URL = "https://benjifinance.com/"; function formatMoney(n){ try{ return n.toLocaleString("en-US"); }catch(e){ return String(n); } } function parseMoneyText(text){ if(!text){ return 0; } var cleaned = String(text) .replace(/[^0-9.-]/g,""); var num = parseInt(cleaned,10); return isNaN(num) ?0 :num; } function getSavingsTotal(){ var savingsNode = document.getElementById( "bz-dash-savings" ); if(savingsNode){ var targetSaved = parseInt( savingsNode.getAttribute( "data-target-saved" )||"", 10 ); if( !isNaN(targetSaved) && targetSaved > 0 ){ return targetSaved; } var lastSaved = parseInt( savingsNode.getAttribute( "data-last-saved" )||"", 10 ); if( !isNaN(lastSaved) && lastSaved > 0 ){ return lastSaved; } var textSaved = parseMoneyText( savingsNode.textContent ); if(textSaved > 0){ return textSaved; } } try{ var stored = parseInt( localStorage.getItem( LAST_SEEN_SAVINGS_KEY )||"", 10 ); if( !isNaN(stored) && stored > 0 ){ return stored; } }catch(e){} return 0; } function updateShareButtonState(){ var totalSaved = getSavingsTotal(); if(totalSaved > 0){ shareBtn.classList.add( "bz-has-savings" ); }else{ shareBtn.classList.remove( "bz-has-savings" ); } } function hydrateShareMessage(){ var totalSaved = getSavingsTotal(); if(totalSaved > 0){ shareMessage.innerHTML = 'Pretty awesome, I just found about $' + formatMoney(totalSaved) + ' in savings using Benji Finance Suite. Find out how: ' + BZ_SHARE_URL; }else{ shareMessage.innerHTML = 'Pretty awesome, I just found about $X in savings using Benji Finance Suite. Find out how: ' + BZ_SHARE_URL; } } function isDesktop(){ return window.innerWidth >= 700; } function closeBookmarksMenu(){ var menuToggle = document.getElementById( "bz-menu_1-toggle" ); if(menuToggle){ menuToggle.checked = false; } } function closeContact(){ contactOverlay.classList.remove( "bz-visible" ); contactBtn.classList.remove( "bz-opened" ); } function closeShare(){ shareOverlay.classList.remove( "bz-visible" ); shareBtn.classList.remove( "bz-opened" ); shareOutsideClickCount = 0; updateShareButtonState(); } function placeCaretAtEnd(el){ if(!el){ return; } el.focus(); var range = document.createRange(); range.selectNodeContents(el); range.collapse(false); var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); } function openContact(){ closeShare(); closeBookmarksMenu(); contactOverlay.classList.add( "bz-visible" ); contactBtn.classList.add( "bz-opened" ); setTimeout(function(){ if(contactInput){ contactInput.focus(); try{ var len = contactInput.value.length; contactInput.setSelectionRange( len, len ); }catch(e){} } },120); } function openShare(){ closeContact(); closeBookmarksMenu(); hydrateShareMessage(); shareOutsideClickCount = 0; shareOverlay.classList.add( "bz-visible" ); shareBtn.classList.add( "bz-opened" ); shareBtn.classList.remove( "bz-has-savings" ); setTimeout(function(){ placeCaretAtEnd( shareMessage ); },120); } contactBtn.onclick = function(){ if( contactOverlay.classList.contains( "bz-visible" ) ){ closeContact(); }else{ openContact(); } }; shareBtn.onclick = function(){ if( shareOverlay.classList.contains( "bz-visible" ) ){ closeShare(); }else{ openShare(); } }; contactClose.onclick = function(){ closeContact(); }; shareClose.onclick = function(){ closeShare(); }; contactOverlay.onclick = function(e){ if( e.target !== contactOverlay ){ return; } closeContact(); }; shareOverlay.onclick = function(e){ if( e.target !== shareOverlay ){ return; } if(isDesktop()){ shareOutsideClickCount++; if( shareOutsideClickCount >= 2 ){ closeShare(); } }else{ closeShare(); } }; if(contactModal){ contactModal.onclick = function(e){ e.stopPropagation(); }; } if(shareModal){ shareModal.onclick = function(e){ e.stopPropagation(); }; } document.addEventListener( "keydown", function(e){ if(e.key === "Escape"){ closeContact(); closeShare(); } } ); sendBtn.onclick = function(){ var msg = document.getElementById( "bz-message" ).value || ""; var to = "[email protected]"; var subject = "Benji Finance Suite: Customer Support"; var mailtoUrl = "mailto:" + to + "?subject=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(msg); var link = document.createElement("a"); link.href = mailtoUrl; link.style.display = "none"; document.body.appendChild( link ); link.click(); document.body.removeChild( link ); }; /* X / TWITTER SHARE */ shareSendBtn.onclick = function(){ var msg = shareMessage.innerText .trim(); /* REMOVE THE URL FROM THE TEXT PARAMETER. X WILL ADD THE SAME CLEAN URL THROUGH ITS URL PARAMETER. RESULT: ONLY ONE benjifinance.com URL APPEARS. */ var tweetText = msg .replace( BZ_SHARE_URL, "" ) .trim(); /* COPY THE CLEAN FULL MESSAGE */ var copyText = tweetText + "\n" + BZ_SHARE_URL; if( navigator.clipboard && navigator.clipboard.writeText ){ navigator.clipboard .writeText( copyText ) .catch(function(){}); } /* THE CLEAN BENJIFINANCE URL IS NOW BOTH: 1. THE CLICKABLE PRODUCT LINK 2. THE X / CARRD SHARE-CARD SOURCE */ var xUrl = "https://x.com/intent/tweet?text=" + encodeURIComponent( tweetText ) + "&url=" + encodeURIComponent( BZ_SHARE_URL ); window.open( xUrl, "_blank" ); }; document.addEventListener( "visibilitychange", function(){ if(!document.hidden){ updateShareButtonState(); } } ); window.addEventListener( "focus", function(){ updateShareButtonState(); } ); updateShareButtonState(); })();
(function(){ var footer=document.getElementById("bz-footer-wrapper"); var note=document.getElementById("bz-hidden-footer-note"); if(!footer||!note) return; var taps=0; var timer=null; var visible=false; footer.addEventListener("click",function(){ taps++; clearTimeout(timer); timer=setTimeout(function(){ taps=0; },1400); if(taps>=5){ if(!visible){ note.classList.add("bz-visible"); visible=true; }else{ note.classList.remove("bz-visible"); visible=false; } taps=0; clearTimeout(timer); } }); })();
Click me to go back home
Everyday Money Wins
Turn everyday situations into simple, clear decisions. These scripts help you think faster, act sooner, and get quick wins across money, time, and daily life—without added stress.
⚡ Your Progress:
0/6
Smart money moves completed.
Start your everyday money wins today.
⚡ Everyday Money Wins Completed
0 of 6 complete
(function(){ var STORAGE_KEY = "bz_category_progress_v1"; var CATEGORY_KEY = "money_wins"; var TOTAL = 6; var CONFETTI_DURATION = 1200; var SCRIPT_META = { time:{num:1,emoji:"⏳",name:"Time vs Money Optimizer"}, smart:{num:2,emoji:"🍱",name:"Smart Meal Prepper"}, budget:{num:3,emoji:"📦",name:"Budget Home Furnisher"}, finance:{num:4,emoji:"📖",name:"Finance Term Translator"}, money:{num:5,emoji:"🎯",name:"Money Decision Simplifier"}, goal:{num:6,emoji:"🚀",name:"Goal-to-Action Organizer"} }; function readStore(){ try{ return JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; }catch(e){ return {}; } } function writeStore(store){ try{ localStorage.setItem(STORAGE_KEY, JSON.stringify(store)); }catch(e){} } function ensureCategory(store){ if(!store[CATEGORY_KEY]){ store[CATEGORY_KEY] = {}; } return store[CATEGORY_KEY]; } function countDone(categoryState){ var count = 0; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ count++; } }); return count; } function getCompletedScripts(categoryState){ var completed = []; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ completed.push({ id: scriptId, num: SCRIPT_META[scriptId].num, emoji: SCRIPT_META[scriptId].emoji, name: SCRIPT_META[scriptId].name }); } }); return completed; } function renderCompletedList(items, listNode){ if(!listNode) return; if(!items.length){ listNode.innerHTML = '
No everyday money wins completed yet.
'; return; } listNode.innerHTML = ""; var wrap = document.createElement("div"); wrap.className = "bz-everyday-completed-list-wrap"; items.forEach(function(item){ var row = document.createElement("div"); row.className = "bz-everyday-completed-row"; var title = document.createElement("div"); title.className = "bz-everyday-completed-title"; title.textContent = item.num + ". " + item.emoji + " " + item.name; row.appendChild(title); wrap.appendChild(row); }); listNode.appendChild(wrap); } function getDoneParam(){ try{ var url = new URL(window.location.href); return url.searchParams.get("done"); }catch(e){ return null; } } function cleanDoneParam(){ try{ var url = new URL(window.location.href); url.searchParams.delete("done"); history.replaceState({}, "", url.pathname + url.search + url.hash); }catch(e){} } function openOverlay(overlay){ if(!overlay) return; overlay.classList.add("bz-visible"); overlay.setAttribute("aria-hidden","false"); } function closeOverlay(overlay){ if(!overlay) return; overlay.classList.remove("bz-visible"); overlay.setAttribute("aria-hidden","true"); } function runConfetti(){ var layer = document.getElementById("bz-everyday-confetti"); if(!layer) return; layer.innerHTML = ""; for(var i=0;i<22;i++){ var piece = document.createElement("div"); piece.className = "bz-everyday-confetti-piece"; piece.style.left = (16 + Math.random()*68) + "%"; piece.style.top = (10 + Math.random()*10) + "px"; piece.style.setProperty("--x", ((Math.random()*150)-75) + "px"); piece.style.setProperty("--y", (26 + Math.random()*54) + "px"); piece.style.setProperty("--r", ((Math.random()*420)-210) + "deg"); piece.style.animationDelay = (Math.random()*80) + "ms"; piece.style.animationDuration = (850 + Math.random()*220) + "ms"; if(Math.random() > 0.55){ piece.style.width = "7px"; piece.style.height = "7px"; piece.style.borderRadius = "999px"; }else{ piece.style.width = "8px"; piece.style.height = "14px"; piece.style.borderRadius = "2px"; } layer.appendChild(piece); } setTimeout(function(){ layer.innerHTML = ""; }, CONFETTI_DURATION); } function boot(){ var root = document.getElementById("bz-category-progress-everyday"); if(!root) return false; var fill = document.getElementById("bz-everyday-mini-progress-fill"); var progressBar = document.getElementById("bz-everyday-mini-progress"); var progressValue = document.getElementById("bz-everyday-progress-value"); var progressSub = document.getElementById("bz-everyday-progress-sub"); var dayline = document.getElementById("bz-everyday-dayline"); var viewBtn = document.getElementById("bz-everyday-view-btn"); var celebrateBtn = document.getElementById("bz-everyday-celebrate-btn"); var completedOverlay = document.getElementById("bz-everyday-completed-overlay"); var completedPop = document.getElementById("bz-everyday-completed-pop"); var completedList = document.getElementById("bz-everyday-completed-list"); var completedCount = document.getElementById("bz-everyday-completed-count"); var completedClose = document.getElementById("bz-everyday-completed-close"); function refreshEverydayProgress(){ var store = readStore(); var categoryState = ensureCategory(store); var done = countDone(categoryState); var percent = (done / TOTAL) * 100; var completedScripts = getCompletedScripts(categoryState); if(root){ var shimmerDuration = 8.6 + (done * 1.35); root.style.setProperty("--bz-shimmer-duration", shimmerDuration + "s"); root.style.setProperty("--bz-mobile-shimmer-duration", shimmerDuration + "s"); } if(fill){ fill.style.width = percent + "%"; } if(progressBar){ if(done === TOTAL){ progressBar.classList.add("bz-complete-pulse"); }else{ progressBar.classList.remove("bz-complete-pulse"); } } if(progressValue){ progressValue.textContent = done + " of " + TOTAL; } if(progressSub){ progressSub.textContent = "Smart money moves completed."; } if(dayline){ if(done <= 0){ dayline.textContent = "Start your everyday money wins today."; }else if(done === TOTAL){ dayline.textContent = "✔ Full loop complete. Everyday wins like this add up fast."; }else{ dayline.textContent = "✔ Script #" + done + " of your everyday money wins done."; } } if(completedCount){ completedCount.textContent = done + " of " + TOTAL + " complete"; } if(celebrateBtn){ if(done === TOTAL){ celebrateBtn.classList.add("bz-visible"); }else{ celebrateBtn.classList.remove("bz-visible"); } } renderCompletedList(completedScripts, completedList); } var store = readStore(); var categoryState = ensureCategory(store); var doneParam = getDoneParam(); if(doneParam && SCRIPT_META[doneParam]){ if(categoryState[doneParam] !== true){ categoryState[doneParam] = true; writeStore(store); } cleanDoneParam(); } refreshEverydayProgress(); if(viewBtn && !viewBtn.dataset.wired){ viewBtn.dataset.wired = "1"; viewBtn.addEventListener("click", function(e){ e.stopPropagation(); if(completedOverlay.classList.contains("bz-visible")) closeOverlay(completedOverlay); else openOverlay(completedOverlay); }); } if(celebrateBtn && !celebrateBtn.dataset.wired){ celebrateBtn.dataset.wired = "1"; celebrateBtn.addEventListener("click", function(e){ e.stopPropagation(); runConfetti(); }); } if(completedClose && !completedClose.dataset.wired){ completedClose.dataset.wired = "1"; completedClose.addEventListener("click", function(e){ e.stopPropagation(); closeOverlay(completedOverlay); }); } if(completedOverlay && !completedOverlay.dataset.wired){ completedOverlay.dataset.wired = "1"; completedOverlay.addEventListener("click", function(e){ if(e.target === completedOverlay){ closeOverlay(completedOverlay); } }); } if(completedPop && !completedPop.dataset.wired){ completedPop.dataset.wired = "1"; completedPop.addEventListener("click", function(e){ e.stopPropagation(); }); } window.addEventListener("storage", function(e){ if(e.key === STORAGE_KEY){ refreshEverydayProgress(); } }); document.addEventListener("visibilitychange", function(){ if(!document.hidden){ refreshEverydayProgress(); } }); document.addEventListener("keydown", function(e){ if(e.key === "Escape"){ closeOverlay(completedOverlay); } }); return true; } if(!boot()){ var tries = 0; var timer = setInterval(function(){ tries++; if(boot() || tries > 30){ clearInterval(timer); } }, 200); } })();
Find the ways money quietly slips away and fix them fast. These scripts help you lower bills, cut unnecessary spending, and keep more of what you earn without extreme budgeting.
⚡ Your Progress:
0 of 7
Smart money moves completed.
Start your spending reset today.
⚡ Spending & Money Leaks Completed
0 / 7 complete
(function(){ var STORAGE_KEY = "bz_category_progress_v1"; var CATEGORY_KEY = "spending_leaks"; var TOTAL = 7; var CONFETTI_DURATION = 1200; var SCRIPT_META = { lifestyle:{num:7,emoji:"💸",name:"Save $500 w/ Lifestyle Tweaks"}, habit:{num:8,emoji:"☕",name:"Invisible Habit Tracker"}, convenience:{num:9,emoji:"🍕",name:"Convenience Tax Auditor"}, online:{num:10,emoji:"🛒",name:"Online Shopping Mirror"}, impulse:{num:11,emoji:"⏸️",name:"Impulse Buy Chiller (FOMO)"}, switch:{num:12,emoji:"💸",name:"Switch Internet/Phone Plan"}, overdraft:{num:13,emoji:"💸",name:"Overdraft Fee Waiver"} }; function readStore(){ try{ return JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; }catch(e){ return {}; } } function writeStore(store){ try{ localStorage.setItem(STORAGE_KEY, JSON.stringify(store)); }catch(e){} } function ensureCategory(store){ if(!store[CATEGORY_KEY]){ store[CATEGORY_KEY] = {}; } return store[CATEGORY_KEY]; } function countDone(categoryState){ var count = 0; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ count++; } }); return count; } function getCompletedScripts(categoryState){ var completed = []; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ completed.push({ id: scriptId, num: SCRIPT_META[scriptId].num, emoji: SCRIPT_META[scriptId].emoji, name: SCRIPT_META[scriptId].name }); } }); completed.sort(function(a,b){ return a.num - b.num; }); return completed; } function renderCompletedList(items, listNode){ if(!listNode) return; if(!items.length){ listNode.innerHTML = '
No money moves completed yet.
'; return; } listNode.innerHTML = ""; var wrap = document.createElement("div"); wrap.className = "bz-spending-completed-list-wrap"; items.forEach(function(item){ var row = document.createElement("div"); row.className = "bz-spending-completed-row"; var title = document.createElement("div"); title.className = "bz-spending-completed-title"; title.textContent = item.num + ". " + item.emoji + " " + item.name; row.appendChild(title); wrap.appendChild(row); }); listNode.appendChild(wrap); } function getDoneParam(){ try{ var url = new URL(window.location.href); return url.searchParams.get("done"); }catch(e){ return null; } } function cleanDoneParam(){ try{ var url = new URL(window.location.href); url.searchParams.delete("done"); history.replaceState({}, "", url.pathname + url.search + url.hash); }catch(e){} } function openOverlay(overlay){ if(!overlay) return; overlay.classList.add("bz-visible"); overlay.setAttribute("aria-hidden","false"); } function closeOverlay(overlay){ if(!overlay) return; overlay.classList.remove("bz-visible"); overlay.setAttribute("aria-hidden","true"); } function runConfetti(){ var layer = document.getElementById("bz-spending-confetti"); if(!layer) return; layer.innerHTML = ""; for(var i=0;i<22;i++){ var piece = document.createElement("div"); piece.className = "bz-spending-confetti-piece"; piece.style.left = (16 + Math.random()*68) + "%"; piece.style.top = (10 + Math.random()*10) + "px"; piece.style.setProperty("--x", ((Math.random()*150)-75) + "px"); piece.style.setProperty("--y", (26 + Math.random()*54) + "px"); piece.style.setProperty("--r", ((Math.random()*420)-210) + "deg"); piece.style.animationDelay = (Math.random()*80) + "ms"; piece.style.animationDuration = (850 + Math.random()*220) + "ms"; if(Math.random() > 0.55){ piece.style.width = "7px"; piece.style.height = "7px"; piece.style.borderRadius = "999px"; }else{ piece.style.width = "8px"; piece.style.height = "14px"; piece.style.borderRadius = "2px"; } layer.appendChild(piece); } setTimeout(function(){ layer.innerHTML = ""; }, CONFETTI_DURATION); } function boot(){ var root = document.getElementById("bz-category-progress-spending"); if(!root) return false; var fill = document.getElementById("bz-spending-mini-progress-fill"); var progressBar = document.getElementById("bz-spending-mini-progress"); var progressValue = document.getElementById("bz-spending-progress-value"); var progressSub = document.getElementById("bz-spending-progress-sub"); var dayline = document.getElementById("bz-spending-dayline"); var viewBtn = document.getElementById("bz-spending-view-btn"); var celebrateBtn = document.getElementById("bz-spending-celebrate-btn"); var completedOverlay = document.getElementById("bz-spending-completed-overlay"); var completedPop = document.getElementById("bz-spending-completed-pop"); var completedList = document.getElementById("bz-spending-completed-list"); var completedCount = document.getElementById("bz-spending-completed-count"); var completedClose = document.getElementById("bz-spending-completed-close"); function refreshSpendingProgress(){ var store = readStore(); var categoryState = ensureCategory(store); var done = countDone(categoryState); var percent = (done / TOTAL) * 100; var completedScripts = getCompletedScripts(categoryState); if(root){ var shimmerDuration = 8.6 + (done * 1.35); root.style.setProperty("--bz-shimmer-duration", shimmerDuration + "s"); root.style.setProperty("--bz-mobile-shimmer-duration", shimmerDuration + "s"); } if(fill){ fill.style.width = percent + "%"; } if(progressBar){ if(done === TOTAL){ progressBar.classList.add("bz-complete-pulse"); }else{ progressBar.classList.remove("bz-complete-pulse"); } } if(progressValue){ progressValue.textContent = done + " of " + TOTAL; } if(progressSub){ progressSub.textContent = "Smart money moves completed."; } if(dayline){ if(done <= 0){ dayline.textContent = "Start your spending reset today."; }else if(done === TOTAL){ dayline.textContent = "✔ Full loop complete. Quiet wins like this add up fast."; }else{ dayline.textContent = "✔ Script #" + done + " of your spending reset done."; } } if(completedCount){ completedCount.textContent = done + " of " + TOTAL + " complete"; } if(celebrateBtn){ if(done === TOTAL){ celebrateBtn.classList.add("bz-visible"); }else{ celebrateBtn.classList.remove("bz-visible"); } } renderCompletedList(completedScripts, completedList); } var store = readStore(); var categoryState = ensureCategory(store); var doneParam = getDoneParam(); if(doneParam && SCRIPT_META[doneParam]){ if(categoryState[doneParam] !== true){ categoryState[doneParam] = true; writeStore(store); } cleanDoneParam(); } refreshSpendingProgress(); if(viewBtn && !viewBtn.dataset.wired){ viewBtn.dataset.wired = "1"; viewBtn.addEventListener("click", function(e){ e.stopPropagation(); if(completedOverlay.classList.contains("bz-visible")) closeOverlay(completedOverlay); else openOverlay(completedOverlay); }); } if(celebrateBtn && !celebrateBtn.dataset.wired){ celebrateBtn.dataset.wired = "1"; celebrateBtn.addEventListener("click", function(e){ e.stopPropagation(); runConfetti(); }); } if(completedClose && !completedClose.dataset.wired){ completedClose.dataset.wired = "1"; completedClose.addEventListener("click", function(e){ e.stopPropagation(); closeOverlay(completedOverlay); }); } if(completedOverlay && !completedOverlay.dataset.wired){ completedOverlay.dataset.wired = "1"; completedOverlay.addEventListener("click", function(e){ if(e.target === completedOverlay){ closeOverlay(completedOverlay); } }); } if(completedPop && !completedPop.dataset.wired){ completedPop.dataset.wired = "1"; completedPop.addEventListener("click", function(e){ e.stopPropagation(); }); } window.addEventListener("storage", function(e){ if(e.key === STORAGE_KEY){ refreshSpendingProgress(); } }); document.addEventListener("visibilitychange", function(){ if(!document.hidden){ refreshSpendingProgress(); } }); document.addEventListener("keydown", function(e){ if(e.key === "Escape"){ closeOverlay(completedOverlay); } }); return true; } if(!boot()){ var tries = 0; var timer = setInterval(function(){ tries++; if(boot() || tries > 30){ clearInterval(timer); } }, 200); } })();
Understand how money actually works. These scripts explain things like taxes, paychecks, and financial basics in plain English so you can make smarter decisions with confidence.
⚡ Your Progress:
0 of 7
Smart money moves completed.
Start your financial reality check today.
🧭 Financial Reality Check Completed
0 / 7 complete
(function(){ var STORAGE_KEY = "bz_category_progress_v1"; var CATEGORY_KEY = "reality_checks"; var TOTAL = 7; var CONFETTI_DURATION = 1200; var SCRIPT_META = { takehome:{num:14,emoji:"🧾",name:"Take-Home Pay Calculator"}, paycheck:{num:15,emoji:"💼",name:"First Paycheck Protector"}, taxes:{num:16,emoji:"🧭",name:"Income Tax Explainer"}, raise:{num:17,emoji:"📈",name:"Job Pay Raise Analyzer"}, trip:{num:18,emoji:"🧠",name:"Trip Budget Planner"}, savings:{num:19,emoji:"📍",name:"Trip Savings Countdown"}, hobby:{num:20,emoji:"🎯",name:"Is My Hobby Worth It?"} }; function readStore(){ try{ return JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; }catch(e){ return {}; } } function writeStore(store){ try{ localStorage.setItem(STORAGE_KEY, JSON.stringify(store)); }catch(e){} } function ensureCategory(store){ if(!store[CATEGORY_KEY]){ store[CATEGORY_KEY] = {}; } return store[CATEGORY_KEY]; } function countDone(categoryState){ var count = 0; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ count++; } }); return count; } function getCompletedScripts(categoryState){ var completed = []; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ completed.push({ id: scriptId, num: SCRIPT_META[scriptId].num, emoji: SCRIPT_META[scriptId].emoji, name: SCRIPT_META[scriptId].name }); } }); completed.sort(function(a,b){ return a.num - b.num; }); return completed; } function renderCompletedList(items, listNode){ if(!listNode) return; if(!items.length){ listNode.innerHTML = '
No money moves completed yet.
'; return; } listNode.innerHTML = ""; var wrap = document.createElement("div"); wrap.className = "bz-reality-completed-list-wrap"; items.forEach(function(item){ var row = document.createElement("div"); row.className = "bz-reality-completed-row"; var title = document.createElement("div"); title.className = "bz-reality-completed-title"; title.textContent = item.num + ". " + item.emoji + " " + item.name; row.appendChild(title); wrap.appendChild(row); }); listNode.appendChild(wrap); } function getDoneParam(){ try{ var url = new URL(window.location.href); return url.searchParams.get("done"); }catch(e){ return null; } } function cleanDoneParam(){ try{ var url = new URL(window.location.href); url.searchParams.delete("done"); history.replaceState({}, "", url.pathname + url.search + url.hash); }catch(e){} } function openOverlay(overlay){ if(!overlay) return; overlay.classList.add("bz-visible"); overlay.setAttribute("aria-hidden","false"); } function closeOverlay(overlay){ if(!overlay) return; overlay.classList.remove("bz-visible"); overlay.setAttribute("aria-hidden","true"); } function runConfetti(){ var layer = document.getElementById("bz-reality-confetti"); if(!layer) return; layer.innerHTML = ""; for(var i=0;i<22;i++){ var piece = document.createElement("div"); piece.className = "bz-reality-confetti-piece"; piece.style.left = (16 + Math.random()*68) + "%"; piece.style.top = (10 + Math.random()*10) + "px"; piece.style.setProperty("--x", ((Math.random()*150)-75) + "px"); piece.style.setProperty("--y", (26 + Math.random()*54) + "px"); piece.style.setProperty("--r", ((Math.random()*420)-210) + "deg"); piece.style.animationDelay = (Math.random()*80) + "ms"; piece.style.animationDuration = (850 + Math.random()*220) + "ms"; if(Math.random() > 0.55){ piece.style.width = "7px"; piece.style.height = "7px"; piece.style.borderRadius = "999px"; }else{ piece.style.width = "8px"; piece.style.height = "14px"; piece.style.borderRadius = "2px"; } layer.appendChild(piece); } setTimeout(function(){ layer.innerHTML = ""; }, CONFETTI_DURATION); } function boot(){ var root = document.getElementById("bz-category-progress-reality"); if(!root) return false; var fill = document.getElementById("bz-reality-mini-progress-fill"); var progressBar = document.getElementById("bz-reality-mini-progress"); var progressValue = document.getElementById("bz-reality-progress-value"); var progressSub = document.getElementById("bz-reality-progress-sub"); var dayline = document.getElementById("bz-reality-dayline"); var viewBtn = document.getElementById("bz-reality-view-btn"); var celebrateBtn = document.getElementById("bz-reality-celebrate-btn"); var completedOverlay = document.getElementById("bz-reality-completed-overlay"); var completedPop = document.getElementById("bz-reality-completed-pop"); var completedList = document.getElementById("bz-reality-completed-list"); var completedCount = document.getElementById("bz-reality-completed-count"); var completedClose = document.getElementById("bz-reality-completed-close"); function refreshRealityProgress(){ var store = readStore(); var categoryState = ensureCategory(store); var done = countDone(categoryState); var percent = (done / TOTAL) * 100; var completedScripts = getCompletedScripts(categoryState); if(root){ var shimmerDuration = 8.6 + (done * 1.35); root.style.setProperty("--bz-reality-shimmer-duration", shimmerDuration + "s"); root.style.setProperty("--bz-reality-mobile-shimmer-duration", shimmerDuration + "s"); } if(fill){ fill.style.width = percent + "%"; } if(progressBar){ if(done === TOTAL){ progressBar.classList.add("bz-complete-pulse"); }else{ progressBar.classList.remove("bz-complete-pulse"); } } if(progressValue){ progressValue.textContent = done + " of " + TOTAL; } if(progressSub){ progressSub.textContent = "Smart money moves completed."; } if(dayline){ if(done <= 0){ dayline.textContent = "Start your financial reality check today."; }else if(done === TOTAL){ dayline.textContent = "✔ Full loop complete. Little decisions like this change the trajectory."; }else{ dayline.textContent = "✔ Script #" + done + " of your financial reality check done."; } } if(completedCount){ completedCount.textContent = done + " of " + TOTAL + " complete"; } if(celebrateBtn){ if(done === TOTAL){ celebrateBtn.classList.add("bz-visible"); }else{ celebrateBtn.classList.remove("bz-visible"); } } renderCompletedList(completedScripts, completedList); } var store = readStore(); var categoryState = ensureCategory(store); var doneParam = getDoneParam(); if(doneParam && SCRIPT_META[doneParam]){ if(categoryState[doneParam] !== true){ categoryState[doneParam] = true; writeStore(store); } cleanDoneParam(); } refreshRealityProgress(); if(viewBtn && !viewBtn.dataset.wired){ viewBtn.dataset.wired = "1"; viewBtn.addEventListener("click", function(e){ e.stopPropagation(); if(completedOverlay.classList.contains("bz-visible")) closeOverlay(completedOverlay); else openOverlay(completedOverlay); }); } if(celebrateBtn && !celebrateBtn.dataset.wired){ celebrateBtn.dataset.wired = "1"; celebrateBtn.addEventListener("click", function(e){ e.stopPropagation(); runConfetti(); }); } if(completedClose && !completedClose.dataset.wired){ completedClose.dataset.wired = "1"; completedClose.addEventListener("click", function(e){ e.stopPropagation(); closeOverlay(completedOverlay); }); } if(completedOverlay && !completedOverlay.dataset.wired){ completedOverlay.dataset.wired = "1"; completedOverlay.addEventListener("click", function(e){ if(e.target === completedOverlay){ closeOverlay(completedOverlay); } }); } if(completedPop && !completedPop.dataset.wired){ completedPop.dataset.wired = "1"; completedPop.addEventListener("click", function(e){ e.stopPropagation(); }); } window.addEventListener("storage", function(e){ if(e.key === STORAGE_KEY){ refreshRealityProgress(); } }); document.addEventListener("visibilitychange", function(){ if(!document.hidden){ refreshRealityProgress(); } }); document.addEventListener("keydown", function(e){ if(e.key === "Escape"){ closeOverlay(completedOverlay); } }); return true; } if(!boot()){ var tries = 0; var timer = setInterval(function(){ tries++; if(boot() || tries > 30){ clearInterval(timer); } }, 200); } })();
Handle financial stress and unexpected bills. These scripts help you negotiate rates, manage debt, and build a safety net so one bad surprise doesn’t knock you off track.
⚡ Your Progress:
0 of 6
Smart money moves completed.
Start your debt cleanup system today.
🛟 Debt Fixes & Emergency Funds Completed
0 / 6 complete
(function(){ var STORAGE_KEY = "bz_category_progress_v1"; var CATEGORY_KEY = "debt_fixes"; var TOTAL = 6; var CONFETTI_DURATION = 1200; var SCRIPT_META = { emergency:{num:21,emoji:"🛟",name:"Emergency Fund Builder"}, interest:{num:22,emoji:"⚠️",name:"Credit Card Interest Trap"}, credit:{num:23,emoji:"💳",name:"Credit Card Payoff Plan"}, student:{num:24,emoji:"🎓",name:"Student Loan Strategizer"}, insurance:{num:25,emoji:"🛡️",name:"Insurance Plan Decoder"}, hospital:{num:26,emoji:"🛟",name:"Hospital Bill Helper"} }; function readStore(){ try{ return JSON.parse(localStorage.getItem(STORAGE_KEY)) || {}; }catch(e){ return {}; } } function writeStore(store){ try{ localStorage.setItem(STORAGE_KEY, JSON.stringify(store)); }catch(e){} } function ensureCategory(store){ if(!store[CATEGORY_KEY]){ store[CATEGORY_KEY] = {}; } return store[CATEGORY_KEY]; } function countDone(categoryState){ var count = 0; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ count++; } }); return count; } function getCompletedScripts(categoryState){ var completed = []; Object.keys(SCRIPT_META).forEach(function(scriptId){ if(categoryState[scriptId] === true){ completed.push({ id: scriptId, num: SCRIPT_META[scriptId].num, emoji: SCRIPT_META[scriptId].emoji, name: SCRIPT_META[scriptId].name }); } }); completed.sort(function(a,b){ return a.num - b.num; }); return completed; } function renderCompletedList(items, listNode){ if(!listNode) return; if(!items.length){ listNode.innerHTML = '
No money moves completed yet.
'; return; } listNode.innerHTML = ""; var wrap = document.createElement("div"); wrap.className = "bz-debt-completed-list-wrap"; items.forEach(function(item){ var row = document.createElement("div"); row.className = "bz-debt-completed-row"; var title = document.createElement("div"); title.className = "bz-debt-completed-title"; title.textContent = item.num + ". " + item.emoji + " " + item.name; row.appendChild(title); wrap.appendChild(row); }); listNode.appendChild(wrap); } function getDoneParam(){ try{ var url = new URL(window.location.href); return url.searchParams.get("done"); }catch(e){ return null; } } function cleanDoneParam(){ try{ var url = new URL(window.location.href); url.searchParams.delete("done"); history.replaceState({}, "", url.pathname + url.search + url.hash); }catch(e){} } function openOverlay(overlay){ if(!overlay) return; overlay.classList.add("bz-visible"); overlay.setAttribute("aria-hidden","false"); } function closeOverlay(overlay){ if(!overlay) return; overlay.classList.remove("bz-visible"); overlay.setAttribute("aria-hidden","true"); } function runConfetti(){ var layer = document.getElementById("bz-debt-confetti"); if(!layer) return; layer.innerHTML = ""; for(var i=0;i<22;i++){ var piece = document.createElement("div"); piece.className = "bz-debt-confetti-piece"; piece.style.left = (16 + Math.random()*68) + "%"; piece.style.top = (10 + Math.random()*10) + "px"; piece.style.setProperty("--x", ((Math.random()*150)-75) + "px"); piece.style.setProperty("--y", (26 + Math.random()*54) + "px"); piece.style.setProperty("--r", ((Math.random()*420)-210) + "deg"); piece.style.animationDelay = (Math.random()*80) + "ms"; piece.style.animationDuration = (850 + Math.random()*220) + "ms"; if(Math.random() > 0.55){ piece.style.width = "7px"; piece.style.height = "7px"; piece.style.borderRadius = "999px"; }else{ piece.style.width = "8px"; piece.style.height = "14px"; piece.style.borderRadius = "2px"; } layer.appendChild(piece); } setTimeout(function(){ layer.innerHTML = ""; }, CONFETTI_DURATION); } function boot(){ var root = document.getElementById("bz-category-progress-debt"); if(!root) return false; var fill = document.getElementById("bz-debt-mini-progress-fill"); var progressBar = document.getElementById("bz-debt-mini-progress"); var progressValue = document.getElementById("bz-debt-progress-value"); var progressSub = document.getElementById("bz-debt-progress-sub"); var dayline = document.getElementById("bz-debt-dayline"); var viewBtn = document.getElementById("bz-debt-view-btn"); var celebrateBtn = document.getElementById("bz-debt-celebrate-btn"); var completedOverlay = document.getElementById("bz-debt-completed-overlay"); var completedPop = document.getElementById("bz-debt-completed-pop"); var completedList = document.getElementById("bz-debt-completed-list"); var completedCount = document.getElementById("bz-debt-completed-count"); var completedClose = document.getElementById("bz-debt-completed-close"); function refreshDebtProgress(){ var store = readStore(); var categoryState = ensureCategory(store); var done = countDone(categoryState); var percent = (done / TOTAL) * 100; var completedScripts = getCompletedScripts(categoryState); if(root){ var shimmerDuration = 8.6 + (done * 1.35); root.style.setProperty("--bz-debt-shimmer-duration", shimmerDuration + "s"); root.style.setProperty("--bz-debt-mobile-shimmer-duration", shimmerDuration + "s"); } if(fill){ fill.style.width = percent + "%"; } if(progressBar){ if(done === TOTAL){ progressBar.classList.add("bz-complete-pulse"); }else{ progressBar.classList.remove("bz-complete-pulse"); } } if(progressValue){ progressValue.textContent = done + " of " + TOTAL; } if(progressSub){ progressSub.textContent = "Smart money moves completed."; } if(dayline){ if(done <= 0){ dayline.textContent = "Start your debt cleanup system today."; }else if(done === TOTAL){ dayline.textContent = "✔ Full loop complete. This is how control starts to feel normal."; }else{ dayline.textContent = "✔ Script #" + done + " of your debt cleanup system done."; } } if(completedCount){ completedCount.textContent = done + " of " + TOTAL + " complete"; } if(celebrateBtn){ if(done === TOTAL){ celebrateBtn.classList.add("bz-visible"); }else{ celebrateBtn.classList.remove("bz-visible"); } } renderCompletedList(completedScripts, completedList); } var store = readStore(); var categoryState = ensureCategory(store); var doneParam = getDoneParam(); if(doneParam && SCRIPT_META[doneParam]){ if(categoryState[doneParam] !== true){ categoryState[doneParam] = true; writeStore(store); } cleanDoneParam(); } refreshDebtProgress(); if(viewBtn && !viewBtn.dataset.wired){ viewBtn.dataset.wired = "1"; viewBtn.addEventListener("click", function(e){ e.stopPropagation(); if(completedOverlay.classList.contains("bz-visible")) closeOverlay(completedOverlay); else openOverlay(completedOverlay); }); } if(celebrateBtn && !celebrateBtn.dataset.wired){ celebrateBtn.dataset.wired = "1"; celebrateBtn.addEventListener("click", function(e){ e.stopPropagation(); runConfetti(); }); } if(completedClose && !completedClose.dataset.wired){ completedClose.dataset.wired = "1"; completedClose.addEventListener("click", function(e){ e.stopPropagation(); closeOverlay(completedOverlay); }); } if(completedOverlay && !completedOverlay.dataset.wired){ completedOverlay.dataset.wired = "1"; completedOverlay.addEventListener("click", function(e){ if(e.target === completedOverlay){ closeOverlay(completedOverlay); } }); } if(completedPop && !completedPop.dataset.wired){ completedPop.dataset.wired = "1"; completedPop.addEventListener("click", function(e){ e.stopPropagation(); }); } window.addEventListener("storage", function(e){ if(e.key === STORAGE_KEY){ refreshDebtProgress(); } }); document.addEventListener("visibilitychange", function(){ if(!document.hidden){ refreshDebtProgress(); } }); document.addEventListener("keydown", function(e){ if(e.key === "Escape"){ closeOverlay(completedOverlay); } }); [ document.querySelector('#bz-menu_1 .bz-toggle'), document.getElementById('bz-contact-btn'), document.getElementById('bz-share-btn') ].forEach(function(node){ if(!node) return; node.addEventListener('click', function(){ closeOverlay(completedOverlay); }, true); }); return true; } if(!boot()){ var tries = 0; var timer = setInterval(function(){ tries++; if(boot() || tries > 30){ clearInterval(timer); } }, 200); } })();
Avoid expensive mistakes. These scripts help you think through major financial decisions like jobs, travel, housing, and large purchases before the money is spent.
⚡ Your Progress:
0 of 5
Smart money moves completed.
Start your big financial decision system today.
🧠 Big Financial Decisions Completed
0 / 5 complete
(function(){ var STORAGE_KEY = "bz_category_progress_v1"; var CATEGORY_KEY = "big_life"; var TOTAL = 5; var CONFETTI_DURATION = 1200; var SCRIPT_META = { car:{num:27,emoji:"🚗",name:"How Much Car Can I Get?"}, house:{num:28,emoji:"🏠",name:"How Much House Can I Get?"}, large:{num:29,emoji:"🧮",name:"Large Purchases Referee"}, job:{num:30,emoji:"⚖️",name:"Job A vs Job B Comparer"}, salary:{num:31,emoji:"🧠",name:"Job Salary Negotiator"} }; function readStore(){ try{return JSON.parse(localStorage.getItem(STORAGE_KEY))||{};}catch(e){return{};} } function writeStore(store){ try{localStorage.setItem(STORAGE_KEY,JSON.stringify(store));}catch(e){} } function ensureCategory(store){ if(!store[CATEGORY_KEY]) store[CATEGORY_KEY]={}; return store[CATEGORY_KEY]; } function countDone(state){ var c=0; Object.keys(SCRIPT_META).forEach(function(id){ if(state[id]===true) c++; }); return c; } function getCompleted(state){ var out=[]; Object.keys(SCRIPT_META).forEach(function(id){ if(state[id]){ out.push({ num:SCRIPT_META[id].num, emoji:SCRIPT_META[id].emoji, name:SCRIPT_META[id].name }); } }); out.sort(function(a,b){return a.num-b.num;}); return out; } function render(list,node){ if(!node) return; if(!list.length){ node.innerHTML='
No money moves completed yet.
'; return; } node.innerHTML=""; var wrap=document.createElement("div"); wrap.className="bz-big-completed-list-wrap"; list.forEach(function(it){ var row=document.createElement("div"); row.className="bz-big-completed-row"; var t=document.createElement("div"); t.className="bz-big-completed-title"; t.textContent=it.num+". "+it.emoji+" "+it.name; row.appendChild(t); wrap.appendChild(row); }); node.appendChild(wrap); } function getDoneParam(){ try{ var url=new URL(window.location.href); return url.searchParams.get("done"); }catch(e){ return null; } } function cleanDoneParam(){ try{ var url=new URL(window.location.href); url.searchParams.delete("done"); history.replaceState({}, "", url.pathname + url.search + url.hash); }catch(e){} } function open(o){ if(!o) return; o.classList.add("bz-visible"); o.setAttribute("aria-hidden","false"); } function close(o){ if(!o) return; o.classList.remove("bz-visible"); o.setAttribute("aria-hidden","true"); } function runConfetti(){ var layer=document.getElementById("bz-big-confetti"); if(!layer) return; layer.innerHTML=""; for(var i=0;i<22;i++){ var p=document.createElement("div"); p.className="bz-big-confetti-piece"; p.style.left=(16 + Math.random()*68)+"%"; p.style.top=(10 + Math.random()*10)+"px"; p.style.setProperty("--x",((Math.random()*150)-75)+"px"); p.style.setProperty("--y",(26 + Math.random()*54)+"px"); p.style.setProperty("--r",((Math.random()*420)-210)+"deg"); p.style.animationDelay=(Math.random()*80)+"ms"; p.style.animationDuration=(850 + Math.random()*220)+"ms"; if(Math.random()>0.55){ p.style.width="7px"; p.style.height="7px"; p.style.borderRadius="999px"; }else{ p.style.width="8px"; p.style.height="14px"; p.style.borderRadius="2px"; } layer.appendChild(p); } setTimeout(function(){ layer.innerHTML=""; },CONFETTI_DURATION); } function boot(){ var root=document.getElementById("bz-category-progress-big"); if(!root) return false; var fill=document.getElementById("bz-big-mini-progress-fill"); var progressBar=document.getElementById("bz-big-mini-progress"); var value=document.getElementById("bz-big-progress-value"); var progressSub=document.getElementById("bz-big-progress-sub"); var dayline=document.getElementById("bz-big-dayline"); var viewBtn=document.getElementById("bz-big-view-btn"); var celebrateBtn=document.getElementById("bz-big-celebrate-btn"); var overlay=document.getElementById("bz-big-completed-overlay"); var pop=document.getElementById("bz-big-completed-pop"); var list=document.getElementById("bz-big-completed-list"); var count=document.getElementById("bz-big-completed-count"); var closeBtn=document.getElementById("bz-big-completed-close"); function refresh(){ var store=readStore(); var state=ensureCategory(store); var done=countDone(state); var pct=(done/TOTAL)*100; if(root){ var shimmerDuration=8.6+(done*1.35); root.style.setProperty("--bz-big-shimmer-duration", shimmerDuration + "s"); root.style.setProperty("--bz-big-mobile-shimmer-duration", shimmerDuration + "s"); } if(fill) fill.style.width=pct+"%"; if(progressBar){ if(done===TOTAL){ progressBar.classList.add("bz-complete-pulse"); }else{ progressBar.classList.remove("bz-complete-pulse"); } } if(value) value.textContent=done+" of "+TOTAL; if(progressSub) progressSub.textContent="Smart money moves completed."; if(dayline){ if(done<=0){ dayline.textContent="Start your big financial decision system today."; }else if(done===TOTAL){ dayline.textContent="✔ Full loop complete. This is how things start working in your favor."; }else{ dayline.textContent="✔ Script #"+done+" of your decision system done."; } } if(count) count.textContent=done+" of "+TOTAL+" complete"; if(celebrateBtn){ if(done===TOTAL){ celebrateBtn.classList.add("bz-visible"); }else{ celebrateBtn.classList.remove("bz-visible"); } } render(getCompleted(state),list); } var store=readStore(); var state=ensureCategory(store); var doneParam=getDoneParam(); if(doneParam && SCRIPT_META[doneParam]){ if(state[doneParam]!==true){ state[doneParam]=true; writeStore(store); } cleanDoneParam(); } refresh(); if(viewBtn && !viewBtn.dataset.wired){ viewBtn.dataset.wired="1"; viewBtn.addEventListener("click",function(e){ e.stopPropagation(); overlay.classList.contains("bz-visible") ? close(overlay) : open(overlay); }); } if(celebrateBtn && !celebrateBtn.dataset.wired){ celebrateBtn.dataset.wired="1"; celebrateBtn.addEventListener("click",function(e){ e.stopPropagation(); runConfetti(); }); } if(closeBtn && !closeBtn.dataset.wired){ closeBtn.dataset.wired="1"; closeBtn.addEventListener("click",function(e){ e.stopPropagation(); close(overlay); }); } if(overlay && !overlay.dataset.wired){ overlay.dataset.wired="1"; overlay.addEventListener("click",function(e){ if(e.target===overlay) close(overlay); }); } if(pop && !pop.dataset.wired){ pop.dataset.wired="1"; pop.addEventListener("click",function(e){ e.stopPropagation(); }); } window.addEventListener("storage",function(e){ if(e.key===STORAGE_KEY) refresh(); }); document.addEventListener("visibilitychange",function(){ if(!document.hidden) refresh(); }); document.addEventListener("keydown",function(e){ if(e.key==="Escape") close(overlay); }); return true; } if(!boot()){ var tries=0; var timer=setInterval(function(){ tries++; if(boot() || tries>30){ clearInterval(timer); } },200); } })();
Build momentum over time. These scripts focus on investing, credit building, and financial habits that quietly grow your wealth for years to come.
⚡ Your Progress:
0 of 6
Smart money moves completed.
Start your growth and compounding system.
🌱 Growth & Compounding Wins Completed
0 / 6 complete
(function(){ var STORAGE_KEY = "bz_category_progress_v1"; var CATEGORY_KEY = "growth_wins"; var TOTAL = 6; var CONFETTI_DURATION = 1200; var SCRIPT_META = { index:{num:32,emoji:"📍",name:"Index Fund Starter"}, score:{num:33,emoji:"🌱",name:"Raise My Credit Score Fast"}, match:{num:34,emoji:"🎁",name:"Employer Match Maximizer"}, retire:{num:35,emoji:"🏖️",name:"How Much Money to Retire"}, inheritance:{num:36,emoji:"🪙",name:"Inheritance: Invest vs Debt"}, degree:{num:37,emoji:"📘",name:"Degree ROI Calculator"} }; function readStore(){ try{return JSON.parse(localStorage.getItem(STORAGE_KEY))||{};}catch(e){return{};} } function writeStore(store){ try{localStorage.setItem(STORAGE_KEY,JSON.stringify(store));}catch(e){} } function ensureCategory(store){ if(!store[CATEGORY_KEY]) store[CATEGORY_KEY]={}; return store[CATEGORY_KEY]; } function countDone(state){ var c=0; Object.keys(SCRIPT_META).forEach(function(id){ if(state[id]===true) c++; }); return c; } function getCompleted(state){ var out=[]; Object.keys(SCRIPT_META).forEach(function(id){ if(state[id]){ out.push({ num:SCRIPT_META[id].num, emoji:SCRIPT_META[id].emoji, name:SCRIPT_META[id].name }); } }); out.sort(function(a,b){return a.num-b.num;}); return out; } function render(list,node){ if(!node) return; if(!list.length){ node.innerHTML='
No money moves completed yet.
'; return; } node.innerHTML=""; var wrap=document.createElement("div"); wrap.className="bz-growth-completed-list-wrap"; list.forEach(function(it){ var row=document.createElement("div"); row.className="bz-growth-completed-row"; var t=document.createElement("div"); t.className="bz-growth-completed-title"; t.textContent=it.num+". "+it.emoji+" "+it.name; row.appendChild(t); wrap.appendChild(row); }); node.appendChild(wrap); } function getDoneParam(){ try{ var url=new URL(window.location.href); return url.searchParams.get("done"); }catch(e){ return null; } } function cleanDoneParam(){ try{ var url=new URL(window.location.href); url.searchParams.delete("done"); history.replaceState({}, "", url.pathname + url.search + url.hash); }catch(e){} } function open(o){ if(!o) return; o.classList.add("bz-visible"); o.setAttribute("aria-hidden","false"); } function close(o){ if(!o) return; o.classList.remove("bz-visible"); o.setAttribute("aria-hidden","true"); } function runConfetti(){ var layer=document.getElementById("bz-growth-confetti"); if(!layer) return; layer.innerHTML=""; for(var i=0;i<22;i++){ var p=document.createElement("div"); p.className="bz-growth-confetti-piece"; p.style.left=(16 + Math.random()*68)+"%"; p.style.top=(10 + Math.random()*10)+"px"; p.style.setProperty("--x",((Math.random()*150)-75)+"px"); p.style.setProperty("--y",(26 + Math.random()*54)+"px"); p.style.setProperty("--r",((Math.random()*420)-210)+"deg"); p.style.animationDelay=(Math.random()*80)+"ms"; p.style.animationDuration=(850 + Math.random()*220)+"ms"; if(Math.random()>0.55){ p.style.width="7px"; p.style.height="7px"; p.style.borderRadius="999px"; }else{ p.style.width="8px"; p.style.height="14px"; p.style.borderRadius="2px"; } layer.appendChild(p); } setTimeout(function(){ layer.innerHTML=""; },CONFETTI_DURATION); } function boot(){ var root=document.getElementById("bz-category-progress-growth"); if(!root) return false; var fill=document.getElementById("bz-growth-mini-progress-fill"); var progressBar=document.getElementById("bz-growth-mini-progress"); var value=document.getElementById("bz-growth-progress-value"); var progressSub=document.getElementById("bz-growth-progress-sub"); var dayline=document.getElementById("bz-growth-dayline"); var viewBtn=document.getElementById("bz-growth-view-btn"); var celebrateBtn=document.getElementById("bz-growth-celebrate-btn"); var overlay=document.getElementById("bz-growth-completed-overlay"); var pop=document.getElementById("bz-growth-completed-pop"); var list=document.getElementById("bz-growth-completed-list"); var count=document.getElementById("bz-growth-completed-count"); var closeBtn=document.getElementById("bz-growth-completed-close"); function refresh(){ var store=readStore(); var state=ensureCategory(store); var done=countDone(state); var pct=(done/TOTAL)*100; if(root){ var shimmerDuration=8.6+(done*1.35); root.style.setProperty("--bz-growth-shimmer-duration", shimmerDuration + "s"); root.style.setProperty("--bz-growth-mobile-shimmer-duration", shimmerDuration + "s"); } if(fill) fill.style.width=pct+"%"; if(progressBar){ if(done===TOTAL){ progressBar.classList.add("bz-complete-pulse"); }else{ progressBar.classList.remove("bz-complete-pulse"); } } if(value) value.textContent=done+" of "+TOTAL; if(progressSub) progressSub.textContent="Smart money moves completed."; if(dayline){ if(done<=0){ dayline.textContent="Start your growth and compounding system."; }else if(done===TOTAL){ dayline.textContent="✔ Full loop complete. You’re stacking wins most people overlook."; }else{ dayline.textContent="✔ Script #"+done+" of your growth system done."; } } if(count) count.textContent=done+" of "+TOTAL+" complete"; if(celebrateBtn){ if(done===TOTAL){ celebrateBtn.classList.add("bz-visible"); }else{ celebrateBtn.classList.remove("bz-visible"); } } render(getCompleted(state),list); } var store=readStore(); var state=ensureCategory(store); var doneParam=getDoneParam(); if(doneParam && SCRIPT_META[doneParam]){ if(state[doneParam]!==true){ state[doneParam]=true; writeStore(store); } cleanDoneParam(); } refresh(); if(viewBtn && !viewBtn.dataset.wired){ viewBtn.dataset.wired="1"; viewBtn.addEventListener("click",function(e){ e.stopPropagation(); overlay.classList.contains("bz-visible") ? close(overlay) : open(overlay); }); } if(celebrateBtn && !celebrateBtn.dataset.wired){ celebrateBtn.dataset.wired="1"; celebrateBtn.addEventListener("click",function(e){ e.stopPropagation(); runConfetti(); }); } if(closeBtn && !closeBtn.dataset.wired){ closeBtn.dataset.wired="1"; closeBtn.addEventListener("click",function(e){ e.stopPropagation(); close(overlay); }); } if(overlay && !overlay.dataset.wired){ overlay.dataset.wired="1"; overlay.addEventListener("click",function(e){ if(e.target===overlay) close(overlay); }); } if(pop && !pop.dataset.wired){ pop.dataset.wired="1"; pop.addEventListener("click",function(e){ e.stopPropagation(); }); } window.addEventListener("storage",function(e){ if(e.key===STORAGE_KEY) refresh(); }); document.addEventListener("visibilitychange",function(){ if(!document.hidden) refresh(); }); document.addEventListener("keydown",function(e){ if(e.key==="Escape") close(overlay); }); return true; } if(!boot()){ var tries=0; var timer=setInterval(function(){ tries++; if(boot() || tries>30){ clearInterval(timer); } },200); } })();
Use power tools after running an AI script, when you want to go one level deeper.These help you compare, stress-test, and visualize your money choices—so you can pick what matters most.
(function(){ var bubble = document.getElementById("welcome_bubble_01"); var textNode = document.getElementById("welcome_bubble_text_01"); if(!bubble || !textNode) return; var MESSAGES = [ "Welcome to Benji Finance!", "Why didn't they ever teach this in school?!", "Upgrade your relationship with money.", "Personal finance? Totally doable.", "Spend less. Save more. Invest the rest.", "Let AI work with you, not against you.", "Smarter money moves begin here.", "No logins. No tracking. No data collected.", "Turn ‘I Should’ into ‘Done'.", "Let’s make dealing with money easier.", "You came to the right place.", "Your future self will thank you.", "Good choices, better habits.", "Money decisions will hit different.", "AI Scripts for Everyday Wins", "Benji-Z? Who's Benji-Z?!", "Use anywhere. No apps required. Just Wi-Fi.", "Friendly finance > Stressful time." ]; var currentIndex = 0; var bubbleTimer = null; textNode.textContent = MESSAGES[currentIndex]; function getRandomDelay(){ return Math.floor(Math.random() * 15001) + 10000; } function pickNextIndex(){ if(MESSAGES.length <= 1) return 0; var next = currentIndex; while(next === currentIndex){ next = Math.floor(Math.random() * MESSAGES.length); } return next; } function scheduleNext(){ clearTimeout(bubbleTimer); bubbleTimer = setTimeout(function(){ swapMessage(); }, getRandomDelay()); } function swapMessage(){ bubble.classList.remove("bz-swap-in"); bubble.classList.add("bz-swap-out"); setTimeout(function(){ currentIndex = pickNextIndex(); textNode.textContent = MESSAGES[currentIndex]; bubble.classList.remove("bz-swap-out"); bubble.classList.add("bz-swap-in"); setTimeout(function(){ bubble.classList.remove("bz-swap-in"); }, 340); scheduleNext(); }, 320); } scheduleNext(); })();
3 Free AI Finance Scripts
Here are 3 free AI scripts for smarter money decisions. Learn how to raise your credit score faster, evaluate a large purchase, and translate confusing financial terms into simple, practical answers. Your free trial awaits!
What’s the fastest way to improve my credit score— that actually works?
⚡️Instant AI Script
💡 Improve Your Credit Score With the Highest-Impact Moves First
This script helps you analyze your credit utilization, see what payoff targets could help most, and build a simple plan to improve your score over the next few months.
🧾 Your Credit Snapshot (Example):
Current Credit Score Estimate: 642 Card 1: Chase Freedom Unlimited Card 1 Balance: $1,850 Card 1 Limit: $4,000 Card 2: Capital One Quicksilver Card 2 Balance: $620 Card 2 Limit: $3,000 Missed or Late Payments in Last Two Years: no
🧠 What GPT Helps You Figure Out:
1) Where does your credit stand now? Review your score, balances, limits, and recent payment history.
2) What should you pay down first? See your credit utilization and the amounts needed to lower it.
3) What could help the most? Prioritize the actions most likely to improve your credit over the next few months.
✔ Copied to clipboard!
Very good — now take 20 seconds to finish the quick check-in below.
Can I afford this purchase— or am I about to make a mistake?
⚡️Instant AI Script
💡 Decide If You Should Buy Now or Save First
This script helps you compare buying now vs saving over time, see how long it takes to afford something comfortably, and understand the tradeoff between spending today and future growth.
🧾 Your Purchase Snapshot (Example):
Item: MacBook Pro Price: $2,100 Realistic Saving Pace: $250/month
🧠 What GPT Helps You Figure Out:
1) How long would it take to afford it? See how long you’d need to save and when you could reach your goal.
2) What’s the trade-off? Compare buying it with what that money could become over time.
3) Which option makes the most sense? Compare buying now, waiting and saving, or choosing something cheaper.
✔ Copied to clipboard!
Great — Try another script or buy the full suite now!
What does this financial term or concept actually mean— and how does it affect me right now?
⚡️Instant AI Script
📘 Explain a Finance Term in Plain English
This script helps you understand a financial term clearly, see how it applies in real life, and figure out what to actually do next without jargon or confusion.
🧾 Your Current Snapshot (Example):
Financial term: APR Situation I’m thinking about: Choosing between two credit cards Explanation depth: Quick explanation
🧠 What GPT Helps You Figure Out:
1) What does it actually mean? Get a plain-English explanation with a simple example.
2) How does it apply to you? See what the concept means in real life and for your situation.
3) What should you do with it? Get a practical takeaway, what to watch for, and a simple next step.
✔ Copied to clipboard!
Awesome — Try another script or buy the full suite now!
By purchasing or using Benji Finance Suite, you agree to the following:
1. Use of Product This product is for personal, non-commercial use only. You may not resell, redistribute, or share access.
2. Intellectual Property All content, including scripts and materials, is owned by Benji-Z LLC and protected by copyright laws.
3. No Professional Advice This product is for educational purposes only and does not constitute financial, legal, or tax advice.
4. Limitation of Liability We are not responsible for any financial decisions or outcomes resulting from use of this product.
5. Access We reserve the right to update, modify, or discontinue the product at any time.
6. Acceptance By purchasing, you agree to these terms.
Important Information
⚖️ Legal
🔒Privacy Policy
Your privacy is important.
1. Data Collection We do not collect or store personal financial data within the product. Basic purchase information may be handled by Lemon Squeezy for transaction purposes.
2. Local Storage Progress and usage data may be stored locally on your device (for example, browser storage) and is not transmitted to us.
3. Third-Party Services Payments are securely processed by Lemon Squeezy. Please refer to their privacy policy for details.
4. No Selling of Data We do not sell, rent, or share your personal information.
All of your Finance Suite data stays with you. Nothing gets sent back to us.
Back it up occasionally so you don't lose your progress. Restore it anytime when needed.
Your data is private and under your control. As it should be.
Last backup: —
🍃 Start Fresh
Want to start over? You have the option to Clear ALL of your saved data and progress associated with this site. Your login, license key, and registered devices will remain activated.
Click once to activate. Click again to confirm. WARNING: This cannot be undone.
(function(){ 'use strict'; function init(){ var button=document.getElementById('bz-clear-data-btn'); var message=document.getElementById('bz-clear-data-status'); if(!button||!message||button.dataset.ready)return; button.dataset.ready='true'; var armed=false; var busy=false; var timer=null; var account=null; var hint='Click once to activate. Click again to clear data. This cannot be undone.'; function disarm(text){ armed=false; account=null; clearTimeout(timer); button.dataset.armed='false'; button.textContent='Clear All Data'; message.textContent=text||hint; } button.addEventListener('click',async function(){ if(busy)return; var cloud=window.BZCloudSync; if(!cloud||typeof cloud.clearAllData!=='function'){ disarm( 'The reset update is not loaded yet. Refresh the page and try again.' ); return; } busy=true; button.disabled=true; try{ var auth=window.BenjiAuth; var session= auth&&typeof auth.session==='function' ?await auth.session() :null; if(!session){ disarm( 'Please sign in before clearing your saved data.' ); return; } if(!armed){ armed=true; account=session.user.id; button.dataset.armed='true'; button.textContent='Click to Confirm'; message.textContent= 'This will permanently clear your saved data. Click again within 10 seconds to confirm.'; timer=setTimeout(function(){ disarm(); },10000); return; } if(account!==session.user.id){ disarm( 'Your account changed. Click again to start over.' ); return; } clearTimeout(timer); armed=false; button.textContent='Clearing Data…'; message.textContent= 'Clearing your cloud save and this browser. The page will refresh when finished.'; await cloud.clearAllData(account); message.textContent= 'Data cleared. Refreshing…'; }catch(e){ disarm( e.message==='ACCOUNT_CHANGED' ?'Your account changed. Please try again.' :(e.message|| 'Could not finish the reset. Check your connection and try again.') ); }finally{ busy=false; button.disabled=false; } }); document.addEventListener('keydown',function(e){ if(e.key==='Escape'&&armed&&!busy){ disarm(); } }); window.addEventListener('hashchange',function(){ if(armed&&!busy){ disarm(); } }); window.addEventListener('benji-auth-change',function(){ if(armed&&!busy){ disarm(); } }); } if(document.readyState==='loading'){ document.addEventListener( 'DOMContentLoaded', init, {once:true} ); }else{ init(); } })();