{"id":3188,"date":"2026-08-13T12:55:37","date_gmt":"2026-08-13T12:55:37","guid":{"rendered":"https:\/\/www.bare-digital.com\/ashe\/?page_id=3188"},"modified":"2026-08-24T11:52:09","modified_gmt":"2026-08-24T11:52:09","slug":"quality-of-life-audit-html","status":"publish","type":"page","link":"https:\/\/www.bare-digital.com\/ashe\/quality-of-life-audit-html\/","title":{"rendered":"Quality of life audit"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3188\" class=\"elementor elementor-3188\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7a61882 e-con-full e-flex e-con e-parent\" data-id=\"7a61882\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3be2295 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3be2295\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<html lang=\"en\">\r\n<head>\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>Quality of Life Audit \u00b7 Build It Backwards<\/title>\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500&family=Inter:wght@400;500&family=Plus+Jakarta+Sans:wght@500;600;700&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n  :root{\r\n    --ivory:#F6F0E6; --cream:#FCF8F1; --plum:#4A2C3B; --caramel:#BE8A5A; --caramelD:#9A6B3A;\r\n    --rose:#C7A07A; --ink:#2B2328; --muted:#6E5F63; --faint:#B4A69F; --line:#E7D9C4;\r\n    --sf:'Fraunces',Georgia,serif; --ss:'Inter',-apple-system,system-ui,sans-serif;\r\n  }\r\n  *{box-sizing:border-box}\r\n  body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--ss);line-height:1.55;-webkit-font-smoothing:antialiased}\r\n  .wrap{max-width:760px;margin:0 auto;padding:32px 20px 60px}\r\n  .eye{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--caramelD)}\r\n  h1{font-family:var(--sf);font-weight:500;font-size:30px;margin:6px 0 2px}\r\n  .lede{color:var(--muted);font-size:14px;margin:0;max-width:52ch}\r\n\r\n  .progress{display:flex;gap:6px;margin:22px 0 18px}\r\n  .progress i{height:4px;flex:1;background:#E4D6C0;border-radius:3px}\r\n  .progress i.on{background:var(--caramel)}\r\n\r\n  .stp{display:none} .stp.active{display:block}\r\n  .card{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:22px 24px}\r\n  .card h2{font-family:var(--sf);font-weight:500;font-size:22px;margin:0 0 4px}\r\n  .card .n{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--caramelD)}\r\n  .card p{font-size:13.5px;color:var(--muted);margin:6px 0 16px;max-width:56ch}\r\n  .card p b{color:var(--ink)}\r\n  .jhint{font-size:12.5px;color:#6E4C2A;font-style:italic;background:#F0E7DC;border-radius:8px;padding:9px 12px;margin:0 0 14px}\r\n\r\n  .wheel .area{margin-bottom:12px}\r\n  .wheel .top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}\r\n  .wheel .top b{font-family:var(--sf);color:var(--ink)}\r\n  .wheel .bartrack{height:8px;background:#EADFCB;border-radius:6px;overflow:hidden}\r\n  .wheel .barfill{height:100%;background:var(--caramel);transition:width .2s}\r\n  .wheel input[type=range]{width:100%;accent-color:var(--plum);margin-top:6px}\r\n  .wheel .info{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--rose);color:var(--caramelD);font-size:10px;font-family:Georgia,serif;font-style:italic;cursor:help;position:relative;vertical-align:middle;outline:none}\r\n  .wheel .info .tip{position:absolute;left:0;top:23px;width:210px;background:var(--plum);color:#F1E6D8;font-size:12px;font-style:normal;font-family:var(--ss);line-height:1.45;padding:10px 12px;border-radius:8px;box-shadow:0 8px 22px rgba(43,35,40,.22);opacity:0;visibility:hidden;transition:opacity .15s;z-index:20;text-align:left}\r\n  .wheel .info .tip::before{content:'';position:absolute;top:-6px;left:8px;border:6px solid transparent;border-bottom-color:var(--plum);border-top:none}\r\n  .wheel .info:hover .tip,.wheel .info:focus .tip{opacity:1;visibility:visible}\r\n  .insight{margin-top:12px;background:#F0E7DC;border-radius:10px;padding:12px 14px;font-size:13px;color:#6E4C2A}\r\n\r\n  .flabel{font-family:var(--sf);font-size:15px;margin:14px 0 6px}\r\n  textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font-family:var(--ss);font-size:13.5px;color:var(--ink);resize:vertical;min-height:80px;outline:none;background:#fff}\r\n  textarea:focus{border-color:var(--rose)}\r\n\r\n  .numlist .items{margin:0 0 10px;padding-left:26px}\r\n  .numlist .items li{font-size:13.5px;padding:4px 0}\r\n  .numlist .items li .row{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}\r\n  .numlist .items li .row span{flex:1}\r\n  .numlist .items li .rm{border:none;background:transparent;color:var(--faint);cursor:pointer;font-size:15px;line-height:1.3}\r\n  .numlist .addrow{display:flex;gap:8px}\r\n  .numlist .addrow input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px 11px;font-size:13.5px;outline:none;background:#fff}\r\n  .numlist .addrow input:focus{border-color:var(--rose)}\r\n  .numlist .addrow button{background:var(--caramel);color:#3A2230;border:none;border-radius:8px;padding:0 18px;font-size:13px;cursor:pointer}\r\n  .numlist .count{font-size:12px;color:var(--caramelD);margin-top:7px}\r\n\r\n  .parthdr{font-family:var(--sf);font-size:14px;color:var(--plum);margin:22px 0 4px;padding-bottom:6px;border-bottom:2px solid var(--caramel);display:flex;justify-content:space-between;align-items:baseline}\r\n  .parthdr span{font-family:var(--ss);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--caramelD)}\r\n  .pnote{font-size:12.5px;color:var(--muted);margin:8px 0 4px}\r\n  .catt{font-family:var(--sf);font-size:16px;margin:14px 0 4px;display:flex;justify-content:space-between;align-items:baseline}\r\n  .catt .sub{font-size:12px;color:var(--muted)}\r\n  .line{display:flex;gap:8px;align-items:center;margin-bottom:7px}\r\n  .line input.lbl{flex:1;border:none;border-bottom:1px solid var(--line);background:transparent;font-size:13.5px;padding:6px 2px;outline:none}\r\n  .line input.lbl:focus{border-bottom-color:var(--rose)}\r\n  .line .amt{display:flex;align-items:baseline;gap:2px}\r\n  .line .amt span{color:var(--faint)}\r\n  .line input.num{width:90px;border:none;border-bottom:1px solid var(--line);background:transparent;font-family:var(--sf);font-size:16px;text-align:right;padding:6px 2px;outline:none}\r\n  .line input.num:focus{border-bottom-color:var(--rose)}\r\n  .line .rm{border:none;background:transparent;color:var(--faint);cursor:pointer;font-size:16px;line-height:1}\r\n  .addline{background:transparent;border:1px dashed var(--rose);color:var(--caramelD);border-radius:8px;padding:8px 12px;font-size:12.5px;cursor:pointer;margin-top:4px}\r\n  .grand{margin-top:16px;background:var(--plum);color:#F1E6D8;border-radius:12px;padding:16px 18px;display:flex;justify-content:space-between;align-items:baseline}\r\n  .grand .v{font-family:var(--sf);font-size:26px}\r\n\r\n  .allocbar{display:flex;justify-content:space-between;align-items:center;background:#F0E7DC;border-radius:10px;padding:12px 16px;margin:8px 0 14px;font-size:13px}\r\n  .allocbar b{font-family:var(--sf);font-size:22px;color:var(--caramelD)}\r\n  .allocbar.ok b{color:#3B5A2E}\r\n  .allocbar.over b{color:#8A4A2B}\r\n  .bizpots{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}\r\n  .bizpots .k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--caramelD);margin-bottom:4px}\r\n  .bizpots .pot{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-top:1px solid #EFE3D2}\r\n  .bizpots .pot b{font-family:var(--sf);font-weight:500}\r\n\r\n  .toggle{display:flex;gap:8px;margin:8px 0 12px}\r\n  .toggle button{font-family:var(--ss);font-size:13px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:20px;padding:8px 16px;cursor:pointer}\r\n  .toggle button.on{background:var(--plum);color:#F3E9DC;border-color:var(--plum)}\r\n  .cascade{margin-top:6px}\r\n  .cascade .r{display:flex;justify-content:space-between;font-size:13.5px;padding:7px 0;border-top:1px solid var(--line)}\r\n  .cascade .r b{font-family:var(--sf);font-weight:500}\r\n\r\n  .final{background:var(--plum);color:#F1E6D8;border-radius:16px;padding:28px;text-align:center}\r\n  .final .cap{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#CBB4A2}\r\n  .final .big{font-family:var(--sf);font-size:46px;line-height:1;margin:10px 0 4px}\r\n  .final .u{font-size:13px;color:#CBB4A2}\r\n  .final .milestone{font-size:13px;color:#E7D6C6;margin-top:12px}\r\n\r\n  .toDash{margin-top:16px;background:#F0E7DC;border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}\r\n  .toDash .t{font-size:13.5px} .toDash .t b{font-weight:500}\r\n  .toDash button{font-family:var(--ss);font-weight:500;font-size:14px;background:var(--caramel);color:#3A2230;border:none;border-radius:8px;padding:11px 18px;cursor:pointer}\r\n  .toDash .done{font-size:13px;color:#3B5A2E}\r\n  .nextnote{margin-top:14px;font-size:13px;color:var(--muted);text-align:center}\r\n\r\n  .strivex{margin-top:22px;background:#161D51;border-radius:16px;padding:24px 26px;text-align:center;font-family:'Plus Jakarta Sans',var(--ss)}\r\n  .strivex .k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8E93C4;font-weight:600}\r\n  .strivex h3{font-family:'Plus Jakarta Sans',var(--ss);font-weight:600;font-size:19px;color:#fff;margin:8px 0 6px}\r\n  .strivex p{font-size:13px;color:#C6C9E4;margin:0 auto 16px;max-width:44ch}\r\n  .strivex a.cta{display:inline-block;background:#7B08B5;color:#fff;font-family:'Plus Jakarta Sans',var(--ss);font-weight:600;font-size:15px;text-decoration:none;padding:13px 28px;border-radius:50px}\r\n\r\n  .nav{display:flex;justify-content:space-between;margin-top:18px}\r\n  .nav button{font-family:var(--ss);font-size:14px;border-radius:8px;padding:11px 20px;cursor:pointer}\r\n  .nav .back{background:transparent;border:1px solid var(--line);color:var(--muted)}\r\n  .nav .next{background:var(--plum);color:#F6EFE6;border:none}\r\n  .foot{margin-top:18px;font-size:11px;color:#9A8C86;text-align:center}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"wrap\">\r\n  <div class=\"eye\">Build it backwards \u00b7 toolkit<\/div>\r\n  <h1>Quality of life audit<\/h1>\r\n  <p class=\"lede\">Start with the life you actually want. We will work all the way back to the one number your business needs to hit to fund it. Prefer a notebook for the thinking bits? Do them on paper, then pop your answers in here.<\/p>\r\n\r\n  <div class=\"progress\" id=\"progress\"><\/div>\r\n\r\n  <!-- STEP 1 -->\r\n  <div class=\"stp active\" data-step=\"1\">\r\n    <div class=\"card wheel\">\r\n      <div class=\"n\">Step 1<\/div><h2>Your wheel of life<\/h2>\r\n      <p>Score how satisfied you are with each area right now, out of ten. Not how good it looks to others, how satisfied you feel. Everything starts at zero, so slide each one up to where you honestly sit.<\/p>\r\n      <div id=\"wheelAreas\"><\/div>\r\n      <div class=\"insight\" id=\"wheelInsight\"><\/div>\r\n    <\/div>\r\n    <div class=\"nav\"><button class=\"back\">Back<\/button><button class=\"next\">Next<\/button><\/div>\r\n  <\/div>\r\n\r\n  <!-- STEP 2 -->\r\n  <div class=\"stp\" data-step=\"2\">\r\n    <div class=\"card\">\r\n      <div class=\"n\">Step 2<\/div><h2>Dream a little, on purpose<\/h2>\r\n      <p>Two quick lists. Challenge yourself: how many can you reach? Twenty is the goal. Add one at a time and do not overthink them.<\/p>\r\n      <div class=\"jhint\">Prefer pen and paper? Set a five-minute timer and let it flow into a notebook, then add your favourites here.<\/div>\r\n      <div class=\"flabel\">Isn't it cool that...<\/div>\r\n      <div class=\"numlist\" id=\"nl_coolThat\"><ol class=\"items\"><\/ol><div class=\"addrow\"><input type=\"text\" placeholder=\"Isn't it cool that I'm self-employed...\"><button>Add<\/button><\/div><div class=\"count\"><\/div><\/div>\r\n      <div class=\"flabel\">Wouldn't it be cool if...<\/div>\r\n      <div class=\"numlist\" id=\"nl_coolIf\"><ol class=\"items\"><\/ol><div class=\"addrow\"><input type=\"text\" placeholder=\"Wouldn't it be cool if I could take two holidays a year...\"><button>Add<\/button><\/div><div class=\"count\"><\/div><\/div>\r\n    <\/div>\r\n    <div class=\"nav\"><button class=\"back\">Back<\/button><button class=\"next\">Next<\/button><\/div>\r\n  <\/div>\r\n\r\n  <!-- STEP 3 -->\r\n  <div class=\"stp\" data-step=\"3\">\r\n    <div class=\"card\">\r\n      <div class=\"n\">Step 3<\/div><h2>Your next twelve months<\/h2>\r\n      <p>Your long term goal might be three to five years away. What is the next step towards it, and what is in the way?<\/p>\r\n      <div class=\"jhint\">A journalling moment if you like: write freely first, then bring the essence back here.<\/div>\r\n      <div class=\"flabel\">My next step<\/div>\r\n      <textarea id=\"nextStep\" placeholder=\"In the next 12 months I want to...\"><\/textarea>\r\n      <div class=\"flabel\">What stands in the way<\/div>\r\n      <textarea id=\"obstacles\" placeholder=\"The obstacles are... the support or resources I would need are...\"><\/textarea>\r\n    <\/div>\r\n    <div class=\"nav\"><button class=\"back\">Back<\/button><button class=\"next\">Next<\/button><\/div>\r\n  <\/div>\r\n\r\n  <!-- STEP 4 -->\r\n  <div class=\"stp\" data-step=\"4\">\r\n    <div class=\"card\">\r\n      <div class=\"n\">Step 4<\/div><h2>Cost your life<\/h2>\r\n      <p>This is your <b>personal<\/b> life, not the business. Two parts: first map what you actually spend now, then add the goal life you are building towards. Everything monthly, and round up a little for a buffer.<\/p>\r\n\r\n      <div class=\"parthdr\">Part 1 \u00b7 Your life now <span>actual outgoings<\/span><\/div>\r\n      <div class=\"catt\">Bills <span class=\"sub\" id=\"sub_bills\">\u00a30<\/span><\/div>\r\n      <div id=\"list_bills\"><\/div>\r\n      <button class=\"addline\" data-cat=\"bills\">Add a bill<\/button>\r\n      <div class=\"catt\">Everyday and fixed <span class=\"sub\" id=\"sub_fixed\">\u00a30<\/span><\/div>\r\n      <div id=\"list_fixed\"><\/div>\r\n      <button class=\"addline\" data-cat=\"fixed\">Add a cost<\/button>\r\n\r\n      <div class=\"parthdr\">Part 2 \u00b7 Your goal life <span>what you are building towards<\/span><\/div>\r\n      <p class=\"pnote\">The life you dreamed about in step 2. For a big one-off goal, like a house deposit, put in the amount you would set aside each month towards it.<\/p>\r\n      <div class=\"catt\">Goal life and big goals <span class=\"sub\" id=\"sub_qol\">\u00a30<\/span><\/div>\r\n      <div id=\"list_qol\"><\/div>\r\n      <button class=\"addline\" data-cat=\"qol\">Add a goal<\/button>\r\n\r\n      <div class=\"grand\"><span>Your monthly personal number, the life you want<\/span><span class=\"v\" id=\"grandTotal\">\u00a30<\/span><\/div>\r\n      <button class=\"addline\" id=\"exportCsv\" style=\"margin-top:12px\">Export to a spreadsheet<\/button>\r\n    <\/div>\r\n    <div class=\"nav\"><button class=\"back\">Back<\/button><button class=\"next\">Next<\/button><\/div>\r\n  <\/div>\r\n\r\n  <!-- STEP 5 -->\r\n  <div class=\"stp\" data-step=\"5\">\r\n    <div class=\"card\">\r\n      <div class=\"n\">Step 5<\/div><h2>Give every pound a home<\/h2>\r\n      <p>Your monthly personal number flows in here. Split it across pots, the way you would set them up in your personal bank account, until every pound has a job.<\/p>\r\n      <div class=\"allocbar\" id=\"allocBar\"><span>Left to allocate<\/span><b id=\"allocLeft\">\u00a30<\/b><\/div>\r\n      <div id=\"potList\"><\/div>\r\n      <button class=\"addline\" id=\"addPot\">Add a pot<\/button>\r\n\r\n      <div class=\"bizpots\">\r\n        <div class=\"k\">Now plan for tax, so it never catches you out<\/div>\r\n        <p style=\"font-size:12.5px;color:var(--muted);margin:6px 0 8px\">Set up a pot for every tax you will owe: personal tax, corporation tax if you are a company, and VAT if you are registered. There is almost always a personal tax bill, not just a business one.<\/p>\r\n        <div class=\"toggle\">\r\n          <button class=\"struct\" data-s=\"sole\">Sole trader<\/button>\r\n          <button class=\"struct\" data-s=\"ltd\">Limited company<\/button>\r\n        <\/div>\r\n        <div class=\"toggle\" id=\"vatToggle\" style=\"margin-top:8px\">\r\n          <button class=\"vatreg\" data-v=\"no\">Not VAT registered<\/button>\r\n          <button class=\"vatreg\" data-v=\"yes\">VAT registered<\/button>\r\n        <\/div>\r\n        <div id=\"bizPots\"><\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"nav\"><button class=\"back\">Back<\/button><button class=\"next\">Next<\/button><\/div>\r\n  <\/div>\r\n\r\n  <!-- STEP 6 -->\r\n  <div class=\"stp\" data-step=\"6\">\r\n    <div class=\"card\">\r\n      <div class=\"n\">Step 6<\/div><h2>Your business number<\/h2>\r\n      <p>Your take-home is what you keep after tax. So your business has to make more than that, enough to cover the tax too. Confirm how you trade and I will work it back.<\/p>\r\n      <div class=\"toggle\">\r\n        <button class=\"struct\" data-s=\"sole\">Sole trader<\/button>\r\n        <button class=\"struct\" data-s=\"ltd\">Limited company<\/button>\r\n      <\/div>\r\n      <div class=\"cascade\">\r\n        <div class=\"r\"><span>The life you want (take-home)<\/span><b id=\"cTake\">\u00a30 \/mo<\/b><\/div>\r\n        <div class=\"r\"><span>Tax to cover (personal and business)<\/span><b id=\"cTax\">\u00a30 \/mo<\/b><\/div>\r\n        <div class=\"r\"><span>Profit your business needs, before tax<\/span><b id=\"cProfit\">\u00a30 \/mo<\/b><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"final\" style=\"margin-top:16px\">\r\n      <div class=\"cap\">Your number<\/div>\r\n      <div class=\"big\" id=\"finalNum\">\u00a30<\/div>\r\n      <div class=\"u\">profit your business needs each month, before tax<\/div>\r\n      <div class=\"milestone\" id=\"finalMile\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"toDash\">\r\n      <div class=\"t\"><b>Send this to your dashboard.<\/b> This becomes Your Number, the target everything works back from.<\/div>\r\n      <button id=\"sendDash\">Add to dashboard<\/button>\r\n      <span class=\"done\" id=\"dashDone\" style=\"display:none\"><\/span>\r\n    <\/div>\r\n\r\n    <div class=\"nextnote\">Next: take this into the pricing tool to work out how many you need to sell to hit it.<\/div>\r\n\r\n    <div class=\"strivex\">\r\n      <div class=\"k\">Build it backwards \u00b7 striveX<\/div>\r\n      <h3>Want your numbers made bespoke?<\/h3>\r\n      <p>If you would like an accountant to run these figures through proper tax software for your exact situation, that is what we do at striveX.<\/p>\r\n      <a class=\"cta\" href=\"https:\/\/strivex.co.uk\/become-a-client-accounting\/\" target=\"_blank\" rel=\"noopener\">Become a client<\/a>\r\n    <\/div>\r\n    <div class=\"nav\"><button class=\"back\">Back<\/button><span><\/span><\/div>\r\n  <\/div>\r\n\r\n  <p class=\"foot\">Your answers stay in your own browser. Nothing is sent anywhere.<\/p>\r\n<\/div>\r\n\r\n<script>\r\n  var CONFIG = {\r\n    personalAllowance:12570, paTaperStart:100000, basicRateLimit:50270, higherRateLimit:125140,\r\n    incomeTax:{basic:0.20,higher:0.40,additional:0.45},\r\n    class4:{lower:12570,upper:50270,main:0.06,upperRate:0.02},\r\n    corp:{smallLimit:50000,mainLimit:250000,small:0.19,main:0.25,marginalFraction:0.015},\r\n    dividend:{allowance:500,basic:0.1075,higher:0.3575,additional:0.3935},\r\n    employerNI:{rate:0.15,secondaryThreshold:5000}, directorSalary:12570\r\n  };\r\n  function gbp(n){ return '\\u00A3' + Math.round(n).toLocaleString('en-GB'); }\r\n\r\n  function pa(income){ return income<=CONFIG.paTaperStart?CONFIG.personalAllowance:Math.max(0,CONFIG.personalAllowance-(income-CONFIG.paTaperStart)\/2); }\r\n  function incomeTax(income){\r\n    var a=pa(income), t=Math.max(0,income-a), bb=CONFIG.basicRateLimit-CONFIG.personalAllowance, hb=CONFIG.higherRateLimit-CONFIG.basicRateLimit, tax=0;\r\n    tax+=Math.min(t,bb)*CONFIG.incomeTax.basic;\r\n    if(t>bb) tax+=Math.min(t-bb,hb)*CONFIG.incomeTax.higher;\r\n    if(t>bb+hb) tax+=(t-bb-hb)*CONFIG.incomeTax.additional;\r\n    return tax;\r\n  }\r\n  function class4(p){ var c=CONFIG.class4,t=0; if(p>c.lower)t+=(Math.min(p,c.upper)-c.lower)*c.main; if(p>c.upper)t+=(p-c.upper)*c.upperRate; return t; }\r\n  function soleTakeHome(profit){ return profit - incomeTax(profit) - class4(profit); }\r\n  function corpTax(p){ var c=CONFIG.corp; if(p<=0)return 0; if(p<=c.smallLimit)return p*c.small; if(p>=c.mainLimit)return p*c.main; return p*c.main-(c.mainLimit-p)*c.marginalFraction; }\r\n  function ltdParts(profitBeforeCT){\r\n    var s=Math.min(CONFIG.directorSalary,Math.max(0,profitBeforeCT));\r\n    var eni=Math.max(0,s-CONFIG.employerNI.secondaryThreshold)*CONFIG.employerNI.rate;\r\n    var ctP=Math.max(0,profitBeforeCT-s-eni), corp=corpTax(ctP), div=Math.max(0,ctP-corp);\r\n    var basicRoom=Math.max(0,CONFIG.basicRateLimit-s), higherRoom=CONFIG.higherRateLimit-CONFIG.basicRateLimit;\r\n    var dB=Math.min(div,basicRoom), dH=Math.min(Math.max(div-basicRoom,0),higherRoom), dA=Math.max(div-basicRoom-higherRoom,0);\r\n    var eff=Math.max(0,dB-CONFIG.dividend.allowance);\r\n    var divTax=eff*CONFIG.dividend.basic+dH*CONFIG.dividend.higher+dA*CONFIG.dividend.additional;\r\n    return {salary:s, corp:corp, divTax:divTax, takeHome:s+div-divTax};\r\n  }\r\n  function ltdTakeHome(p){ return ltdParts(p).takeHome; }\r\n  function solveProfit(targetTakeHome, structure){\r\n    if(targetTakeHome<=0) return 0;\r\n    var fn = structure==='ltd'?ltdTakeHome:soleTakeHome;\r\n    var lo=targetTakeHome, hi=targetTakeHome*3+50000;\r\n    for(var i=0;i<60;i++){ var mid=(lo+hi)\/2; if(fn(mid)<targetTakeHome) lo=mid; else hi=mid; }\r\n    return (lo+hi)\/2;\r\n  }\r\n  \/\/ personal vs business tax, monthly\r\n  function taxSplit(){\r\n    var takeA=grand()*12, profitA=solveProfit(takeA,S.structure);\r\n    if(S.structure==='ltd'){ var p=ltdParts(profitA); return {personal:p.divTax\/12, corp:p.corp\/12}; }\r\n    return {personal:(incomeTax(profitA)+class4(profitA))\/12, corp:0};\r\n  }\r\n\r\n  var S = { wheel:{}, coolThat:[], coolIf:[], lines:{bills:[],fixed:[],qol:[]}, pots:[], structure:'sole', vat:'no' };\r\n  try{ var saved=JSON.parse(localStorage.getItem('bib_qol')); if(saved) S=Object.assign(S,saved); }catch(e){}\r\n  function save(){ try{ localStorage.setItem('bib_qol', JSON.stringify(S)); }catch(e){} }\r\n\r\n  \/\/ wheel (traditional coaching segments, business-owner splits)\r\n  var AREAS=['Mental health','Physical health','Romantic relationships','Friendships','Family','Career','Business finances','Personal finances','Personal growth','Fun and recreation','Physical environment','Spirituality'];\r\n  var PROMPTS={\r\n    'Mental health':'How calm, clear and resilient do you feel day to day? Think stress, overwhelm, and how easily you switch off.',\r\n    'Physical health':'Energy, sleep, movement and how your body feels. Are you looking after it, or running on empty?',\r\n    'Romantic relationships':'How connected and supported do you feel with your partner? If single, how content are you with this part of life?',\r\n    'Friendships':'Do you have people you can truly be yourself with, and do you make the time for them?',\r\n    'Family':'How are things with the people closest to you? Presence, connection, and anything worth being honest about.',\r\n    'Career':'Beyond the money, how fulfilling is the work itself, and do you like where it is heading?',\r\n    'Business finances':'How healthy and predictable is the money in the business? Cash flow, profit, and peace of mind.',\r\n    'Personal finances':'Your own money outside the business. Savings, security, and how in control you feel.',\r\n    'Personal growth':'Are you learning and stretching yourself, or standing still? Skills, reading, new challenges.',\r\n    'Fun and recreation':'How much genuine fun, play and rest do you actually get? Hobbies and downtime count.',\r\n    'Physical environment':'Your home and workspace. Do your surroundings lift you up or weigh you down?',\r\n    'Spirituality':'Whatever it means to you: purpose, faith, values, or feeling part of something bigger.'\r\n  };\r\n  var wa=document.getElementById('wheelAreas');\r\n  AREAS.forEach(function(name){\r\n    if(S.wheel[name]==null) S.wheel[name]=0;\r\n    var d=document.createElement('div'); d.className='area';\r\n    d.innerHTML='<div class=\"top\"><span>'+name+' <span class=\"info\" tabindex=\"0\" aria-label=\"Help with this one\">i<span class=\"tip\">'+PROMPTS[name]+'<\/span><\/span><\/span><b class=\"wv\">'+S.wheel[name]+'<\/b><\/div><div class=\"bartrack\"><div class=\"barfill\"><\/div><\/div><input type=\"range\" min=\"0\" max=\"10\" value=\"'+S.wheel[name]+'\">';\r\n    wa.appendChild(d);\r\n    var range=d.querySelector('input'), fill=d.querySelector('.barfill'), val=d.querySelector('.wv');\r\n    function up(){ S.wheel[name]=+range.value; val.textContent=range.value; fill.style.width=(range.value*10)+'%'; save(); wheelInsight(); }\r\n    range.addEventListener('input',up); up();\r\n  });\r\n  function wheelInsight(){\r\n    var vals=AREAS.map(function(a){return S.wheel[a];});\r\n    var avg=Math.round(vals.reduce(function(x,y){return x+y;},0)\/AREAS.length*10)\/10;\r\n    var min=Math.min.apply(null,vals);\r\n    var low=AREAS.filter(function(a){return S.wheel[a]===min;});\r\n    var msg='Your balance sits around '+avg+' out of 10.';\r\n    if(avg>0) msg+=' The area asking for the most attention right now: '+low.join(', ')+'. Hold that in mind as you set your goals.';\r\n    document.getElementById('wheelInsight').textContent=msg;\r\n  }\r\n  wheelInsight();\r\n\r\n  \/\/ numbered lists\r\n  function initNumList(wrapId, key){\r\n    var wrap=document.getElementById(wrapId);\r\n    var ol=wrap.querySelector('.items'), input=wrap.querySelector('input'), btn=wrap.querySelector('button'), count=wrap.querySelector('.count');\r\n    if(!Array.isArray(S[key])) S[key]=[];\r\n    function render(){\r\n      ol.innerHTML='';\r\n      S[key].forEach(function(item,i){\r\n        var li=document.createElement('li');\r\n        li.innerHTML='<div class=\"row\"><span>'+item.replace(\/<\/g,'&lt;')+'<\/span><button class=\"rm\" data-i=\"'+i+'\">\\u00D7<\/button><\/div>';\r\n        ol.appendChild(li);\r\n      });\r\n      var n=S[key].length;\r\n      count.textContent = n===0?'Add your first one. Can you reach twenty?':(n+' so far'+(n>=20?'. Amazing, that is the goal.':'. Keep going, aim for twenty.'));\r\n      ol.querySelectorAll('.rm').forEach(function(b){ b.addEventListener('click',function(){ S[key].splice(+b.getAttribute('data-i'),1); save(); render(); }); });\r\n    }\r\n    function add(){ var val=input.value.trim(); if(val){ S[key].push(val); input.value=''; save(); render(); input.focus(); } }\r\n    btn.addEventListener('click',add);\r\n    input.addEventListener('keydown',function(e){ if(e.key==='Enter'){ e.preventDefault(); add(); } });\r\n    render();\r\n  }\r\n  initNumList('nl_coolThat','coolThat');\r\n  initNumList('nl_coolIf','coolIf');\r\n\r\n  ['nextStep','obstacles'].forEach(function(id){\r\n    var e=document.getElementById(id); if(S[id]) e.value=S[id];\r\n    e.addEventListener('input',function(){ S[id]=e.value; save(); });\r\n  });\r\n\r\n  \/\/ cost lines\r\n  var DEFAULTS={\r\n    bills:[['Rent or mortgage',0],['Utilities',0],['Phone and internet',0],['Insurance',0],['Subscriptions',0]],\r\n    fixed:[['Food and household',0],['Transport and fuel',0],['Gifts and birthdays',0]],\r\n    qol:[['Holidays',0],['Clothing',0],['Fun and eating out',0]]\r\n  };\r\n  function ensureLines(cat){ if(!S.lines[cat]||!S.lines[cat].length){ S.lines[cat]=DEFAULTS[cat].map(function(r){return {label:r[0],amount:r[1]};}); } }\r\n  ['bills','fixed','qol'].forEach(ensureLines);\r\n  function renderLines(cat){\r\n    var box=document.getElementById('list_'+cat); box.innerHTML='';\r\n    S.lines[cat].forEach(function(row,idx){\r\n      var d=document.createElement('div'); d.className='line';\r\n      d.innerHTML='<input class=\"lbl\" type=\"text\" value=\"'+(row.label||'').replace(\/\"\/g,'&quot;')+'\" placeholder=\"What is it\"><div class=\"amt\"><span>\\u00A3<\/span><input class=\"num\" type=\"number\" min=\"0\" step=\"10\" value=\"'+(row.amount||'')+'\"><\/div><button class=\"rm\" title=\"remove\">\\u00D7<\/button>';\r\n      var lbl=d.querySelector('.lbl'), num=d.querySelector('.num'), rm=d.querySelector('.rm');\r\n      lbl.addEventListener('input',function(){ S.lines[cat][idx].label=lbl.value; save(); });\r\n      num.addEventListener('input',function(){ S.lines[cat][idx].amount=parseFloat(num.value)||0; save(); totals(); });\r\n      rm.addEventListener('click',function(){ S.lines[cat].splice(idx,1); save(); renderLines(cat); totals(); });\r\n      box.appendChild(d);\r\n    });\r\n  }\r\n  ['bills','fixed','qol'].forEach(renderLines);\r\n  document.querySelectorAll('.addline[data-cat]').forEach(function(b){\r\n    b.addEventListener('click',function(){ var cat=b.getAttribute('data-cat'); S.lines[cat].push({label:'',amount:0}); save(); renderLines(cat); });\r\n  });\r\n  function catTotal(cat){ return S.lines[cat].reduce(function(s,r){return s+(r.amount||0);},0); }\r\n  function grand(){ return catTotal('bills')+catTotal('fixed')+catTotal('qol'); }\r\n  function totals(){\r\n    document.getElementById('sub_bills').textContent=gbp(catTotal('bills'));\r\n    document.getElementById('sub_fixed').textContent=gbp(catTotal('fixed'));\r\n    document.getElementById('sub_qol').textContent=gbp(catTotal('qol'));\r\n    document.getElementById('grandTotal').textContent=gbp(grand());\r\n  }\r\n  totals();\r\n\r\n  \/\/ export CSV\r\n  document.getElementById('exportCsv').addEventListener('click',function(){\r\n    var rows=[['Section','Item','Monthly GBP']];\r\n    var map={bills:'Life now - Bills',fixed:'Life now - Everyday and fixed',qol:'Goal life and big goals'};\r\n    ['bills','fixed','qol'].forEach(function(cat){ S.lines[cat].forEach(function(r){ rows.push([map[cat], '\"'+(r.label||'').replace(\/\"\/g,'\"\"')+'\"', r.amount||0]); }); });\r\n    rows.push(['','Total monthly personal number', grand()]);\r\n    var csv=rows.map(function(r){return r.join(',');}).join('\\n');\r\n    try{\r\n      var blob=new Blob([csv],{type:'text\/csv'}); var a=document.createElement('a');\r\n      a.href=URL.createObjectURL(blob); a.download='cost-your-life.csv';\r\n      document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(a.href);\r\n    }catch(e){ alert('Copy this into a spreadsheet:\\n\\n'+csv); }\r\n  });\r\n\r\n  \/\/ pots allocation\r\n  function seedPots(){\r\n    if(S.pots && S.pots.length) return;\r\n    S.pots=[{label:'Bills',amount:catTotal('bills')},{label:'Everyday',amount:catTotal('fixed')}];\r\n    S.lines.qol.forEach(function(r){ if((r.amount||0)>0) S.pots.push({label:r.label||'Goal',amount:r.amount}); });\r\n    save();\r\n  }\r\n  function allocSum(){ return S.pots.reduce(function(s,p){return s+(p.amount||0);},0); }\r\n  function allocLeft(){\r\n    var left=grand()-allocSum(), bar=document.getElementById('allocBar');\r\n    document.getElementById('allocLeft').textContent=gbp(left);\r\n    bar.classList.toggle('ok',Math.abs(left)<1);\r\n    bar.classList.toggle('over',left<-0.5);\r\n  }\r\n  function renderTaxPots(){\r\n    var t=taxSplit(), b=document.getElementById('bizPots'); b.innerHTML='';\r\n    function pot(label,place,amt){ b.innerHTML+='<div class=\"pot\"><span>'+label+'<span style=\"display:block;font-size:11px;color:var(--muted)\">held in '+place+'<\/span><\/span><b>'+amt+'<\/b><\/div>'; }\r\n    if(S.structure==='ltd'){\r\n      pot('Corporation tax pot','the business account',gbp(t.corp)+' \/mo');\r\n      pot('Personal tax pot (dividend tax)','your personal savings',gbp(t.personal)+' \/mo');\r\n    } else {\r\n      pot('Personal tax pot (income tax and NI)','your personal savings',gbp(t.personal)+' \/mo');\r\n    }\r\n    if(S.vat==='yes') pot('VAT pot','the business account','from your VAT return');\r\n    if(S.structure==='ltd' || S.vat==='yes') b.innerHTML+='<p style=\"font-size:11.5px;color:var(--muted);margin:9px 0 0\">Personal tax is your money, kept in your own savings. Business taxes are the company\\u2019s, kept in the business account. Keep them apart.<\/p>';\r\n  }\r\n  function renderAlloc(){\r\n    seedPots();\r\n    var box=document.getElementById('potList'); box.innerHTML='';\r\n    S.pots.forEach(function(p,i){\r\n      var d=document.createElement('div'); d.className='line';\r\n      d.innerHTML='<input class=\"lbl\" type=\"text\" value=\"'+(p.label||'').replace(\/\"\/g,'&quot;')+'\" placeholder=\"Pot name\"><div class=\"amt\"><span>\\u00A3<\/span><input class=\"num\" type=\"number\" min=\"0\" step=\"10\" value=\"'+(p.amount||'')+'\"><\/div><button class=\"rm\">\\u00D7<\/button>';\r\n      var lbl=d.querySelector('.lbl'), num=d.querySelector('.num'), rm=d.querySelector('.rm');\r\n      lbl.addEventListener('input',function(){ S.pots[i].label=lbl.value; save(); });\r\n      num.addEventListener('input',function(){ S.pots[i].amount=parseFloat(num.value)||0; save(); allocLeft(); });\r\n      rm.addEventListener('click',function(){ S.pots.splice(i,1); save(); renderAlloc(); });\r\n      box.appendChild(d);\r\n    });\r\n    allocLeft(); renderTaxPots();\r\n  }\r\n  document.getElementById('addPot').addEventListener('click',function(){ S.pots.push({label:'',amount:0}); save(); renderAlloc(); });\r\n\r\n  \/\/ the number\r\n  function renderNumber(){\r\n    var takeM=grand(), takeA=takeM*12;\r\n    var profitA=solveProfit(takeA,S.structure), profitM=profitA\/12, taxM=(profitA-takeA)\/12;\r\n    document.getElementById('cTake').textContent=gbp(takeM)+' \/mo';\r\n    document.getElementById('cTax').textContent=gbp(taxM)+' \/mo';\r\n    document.getElementById('cProfit').textContent=gbp(profitM)+' \/mo';\r\n    document.getElementById('finalNum').textContent=gbp(profitM);\r\n    document.getElementById('finalMile').textContent='That funds a take-home of '+gbp(takeM)+' a month, or '+gbp(takeA)+' a year, the life you just designed.';\r\n  }\r\n\r\n  \/\/ structure toggles (shared across step 5 and 6)\r\n  function syncStruct(){ document.querySelectorAll('.struct').forEach(function(b){ b.classList.toggle('on', b.getAttribute('data-s')===S.structure); }); }\r\n  function setStructure(s){ S.structure=s; save(); syncStruct(); renderTaxPots(); renderNumber(); }\r\n  document.querySelectorAll('.struct').forEach(function(b){ b.addEventListener('click',function(){ setStructure(b.getAttribute('data-s')); }); });\r\n  syncStruct();\r\n\r\n  function syncVat(){ document.querySelectorAll('.vatreg').forEach(function(b){ b.classList.toggle('on', b.getAttribute('data-v')===S.vat); }); }\r\n  document.querySelectorAll('.vatreg').forEach(function(b){ b.addEventListener('click',function(){ S.vat=b.getAttribute('data-v'); save(); syncVat(); renderTaxPots(); }); });\r\n  syncVat();\r\n\r\n  document.getElementById('sendDash').addEventListener('click',function(){\r\n    var profitM=solveProfit(grand()*12,S.structure)\/12, ok=false;\r\n    try{ var d=JSON.parse(localStorage.getItem('bib_dashboard'))||{foundations:{},week:{},history:[]}; if(!d.foundations)d.foundations={}; d.foundations.yourNumber=Math.round(profitM); localStorage.setItem('bib_dashboard',JSON.stringify(d)); ok=true; }catch(e){ok=false;}\r\n    var done=document.getElementById('dashDone'); done.style.display='inline';\r\n    done.textContent = ok?('\\u2713 Added '+gbp(profitM)+' as Your Number'):('Saved for this session. It will sync once hosted.');\r\n  });\r\n\r\n  \/\/ wizard\r\n  var order=[1,2,3,4,5,6];\r\n  var progress=document.getElementById('progress');\r\n  order.forEach(function(){ progress.innerHTML+='<i><\/i>'; });\r\n  var pos=0;\r\n  function showStep(step){ document.querySelectorAll('.stp').forEach(function(s){ s.classList.toggle('active', s.getAttribute('data-step')===String(step)); }); window.scrollTo({top:0,behavior:'smooth'}); }\r\n  function goPos(p){\r\n    pos=p; var step=order[p]; showStep(step);\r\n    progress.querySelectorAll('i').forEach(function(el,i){ el.classList.toggle('on', i<=p); });\r\n    if(step===4) totals();\r\n    if(step===5) renderAlloc();\r\n    if(step===6){ renderNumber(); }\r\n  }\r\n  document.querySelectorAll('.next').forEach(function(b){ b.addEventListener('click',function(){ if(pos<order.length-1) goPos(pos+1); }); });\r\n  document.querySelectorAll('.back').forEach(function(b){ b.addEventListener('click',function(){ if(pos>0) goPos(pos-1); }); });\r\n  goPos(0);\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Quality of Life Audit \u00b7 Build It Backwards Build it backwards \u00b7 toolkit Quality of life audit Start with the life you actually want. We will work all the way back to the one number your business needs to hit to fund it. Prefer a notebook for the thinking bits? Do them on paper, then [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"_eb_attr":"","_templately_pack_id":"","_templately_imported_at":"","_templately_source":"","_templately_import_session_id":"","footnotes":""},"class_list":["post-3188","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/pages\/3188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/comments?post=3188"}],"version-history":[{"count":8,"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/pages\/3188\/revisions"}],"predecessor-version":[{"id":3381,"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/pages\/3188\/revisions\/3381"}],"wp:attachment":[{"href":"https:\/\/www.bare-digital.com\/ashe\/wp-json\/wp\/v2\/media?parent=3188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}