{"id":503,"date":"2025-10-17T11:20:14","date_gmt":"2025-10-17T11:20:14","guid":{"rendered":"https:\/\/playgolf18.com\/calculator\/"},"modified":"2025-11-20T13:41:20","modified_gmt":"2025-11-20T13:41:20","slug":"calculator","status":"publish","type":"page","link":"https:\/\/playgolf18.com\/en\/calculator\/","title":{"rendered":"Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"503\" class=\"elementor elementor-503 elementor-99\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21a319a e-flex e-con-boxed e-con e-parent\" data-id=\"21a319a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a18cfa7 elementor-widget elementor-widget-heading\" data-id=\"a18cfa7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Training Calculator<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6cd3f4 elementor-widget elementor-widget-text-editor\" data-id=\"a6cd3f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Enter your golf performance data. The calculator will show you what to focus on during training \u2013 all anonymously and directly in your browser, including exercise tips. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd1aed7 elementor-widget elementor-widget-eael-creative-button\" data-id=\"fd1aed7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"eael-creative-button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"eael-creative-button-wrapper\">\n\n            <a class=\"eael-creative-button eael-creative-button--wayra eael-cb-icon-position-right\" href=\"https:\/\/playgolf18.com\/funktion\/\" data-text=\"Go!\">\n            \t    \n                <div class=\"creative-button-inner\">\n\n                    \n                    <span class=\"cretive-button-text\">How it works<\/span>\n\n                                            <span class=\"eael-creative-button-icon-right\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chart-bar\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"><\/path><\/svg><\/span>                                    <\/div>\n\t                        <\/a>\n        <\/div>\n        \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b4047e6 e-flex e-con-boxed e-con e-parent\" data-id=\"b4047e6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e61831 elementor-widget elementor-widget-html\" data-id=\"2e61831\" 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\r\n  <style>\r\n    :root {\r\n      --accent: #2e8b57;\r\n      --accent-light: #e9f8ee;\r\n      --muted: #666;\r\n      --border: #ddd;\r\n      --radius: 10px;\r\n      --shadow: 0 4px 16px rgba(0, 0, 0, 0.08);\r\n    }\r\n\r\n    * { box-sizing: border-box; }\r\n\r\n\r\nbody {\r\nmargin: 0;\r\n\r\ncolor: #555;\r\nfont-family: 'Lexend', Arial, Helvetica, sans-serif;\r\nline-height: 1.5;\r\n}\r\n\r\n    .wrap {\r\n      \r\n      margin: 0px auto;\r\n      padding: 0px;\r\n    }\r\n\r\n\r\n\r\n\r\n    .grid {\r\n      display: grid;\r\n      grid-template-columns: 1fr 1fr;\r\n      gap: 24px;\r\n    }\r\n\r\n    @media (max-width: 900px) {\r\n      .grid { grid-template-columns: 1fr; }\r\n    }\r\n\r\n    .card {\r\n      background: #fff;\r\n      border: 1px solid var(--border);\r\n      border-radius: var(--radius);\r\n      box-shadow: var(--shadow);\r\n      overflow: hidden;\r\n    }\r\n\r\n    .card .body { padding: 24px; }\r\n\r\n    h2 {\r\n      font-size: 1.3rem;\r\n      margin-top: 0;\r\n      color: #111;\r\n    }\r\n\r\n    .row {\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: space-between;\r\n      margin-bottom: 14px;\r\n      gap: 10px;\r\n    }\r\n\r\n    label {\r\n      flex: 1;\r\n      font-weight: 600;\r\n      display: flex;\r\n      align-items: center;\r\n      height: 44px;\r\n    }\r\n\r\n    input {\r\n      flex: 1;\r\n      padding: 10px 12px;\r\n      border-radius: var(--radius);\r\n      border: 1px solid #ccc;\r\n      font-size: 1rem;\r\n      height: 44px;\r\n    }\r\n\r\n    .suffix {\r\n      min-width: 50px;\r\n      text-align: right;\r\n      color: var(--muted);\r\n      font-size: 0.9rem;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: flex-end;\r\n      height: 44px;\r\n    }\r\n\r\n    .actions {\r\n      display: flex;\r\n      gap: 10px;\r\n      margin-top: 18px;\r\n    }\r\n\r\n    button {\r\n      padding: 12px 18px;\r\n      border-radius: var(--radius);\r\n      border: none;\r\n      cursor: pointer;\r\n      font-weight: 600;\r\n      font-size: 1rem;\r\n      transition: background 0.2s;\r\n    }\r\n\r\n    .btn-primary {\r\n      background: var(--accent);\r\n      color: #fff;\r\n    }\r\n    .btn-primary:hover { background: #257a4a; }\r\n\r\n    .btn-ghost {\r\n      background: #f7f7f7;\r\n      color: #333;\r\n      border: 1px solid #ccc;\r\n    }\r\n    .btn-ghost:hover { background: #eee; }\r\n\r\n    .result-head, .foot {\r\n      border-bottom: 1px solid var(--border);\r\n      padding: 14px 24px;\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      background: #f4f6f8;\r\n    }\r\n\r\n    .badge {\r\n      background: var(--accent-light);\r\n      padding: 6px 10px;\r\n      border-radius: 999px;\r\n      font-size: 0.8rem;\r\n      color: #222;\r\n      border: 1px solid var(--accent);\r\n    }\r\n\r\n    .pill {\r\n      display: inline-block;\r\n      padding: 6px 10px;\r\n      border-radius: 999px;\r\n      font-size: 0.85rem;\r\n      font-weight: 600;\r\n      background: var(--accent-light);\r\n      color: var(--accent);\r\n      border: 1px solid var(--accent);\r\n    }\r\n\r\n    .result-block { padding: 20px; border-bottom: 1px solid var(--border); }\r\n\r\n    .kpi {\r\n      display: grid;\r\n      grid-template-columns: 1fr 1fr;\r\n      gap: 10px;\r\n      margin-top: 10px;\r\n    }\r\n\r\n    .kpi div {\r\n      background: #fafafa;\r\n      border: 1px dashed var(--border);\r\n      border-radius: var(--radius);\r\n      padding: 10px;\r\n      text-align: center;\r\n    }\r\n\r\n    ul { margin: 10px 0 0 20px; }\r\n\r\n    .muted { color: var(--muted); font-size: 0.9rem; }\r\n\r\n    .rank {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      margin-bottom: 6px;\r\n      font-weight: 600;\r\n    }\r\n\r\n    .rank span {\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      width: 26px;\r\n      height: 26px;\r\n      border-radius: 50%;\r\n      background: var(--accent);\r\n      color: #fff;\r\n      font-size: 0.9rem;\r\n      font-weight: bold;\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n \r\n\r\n    <div class=\"grid\">\r\n      <section class=\"card\">\r\n        <div class=\"body\">\r\n          <h2>Inputs<\/h2>\r\n          <div class=\"row\"><label for=\"hcp\">Handicap<\/label><input id=\"hcp\" type=\"number\" step=\"0.1\" placeholder=\"e.g. 22\"><div class=\"suffix\"><\/div><\/div>\r\n          <div class=\"row\"><label for=\"i7\">7-iron distance<\/label><input id=\"i7\" type=\"number\" step=\"1\" placeholder=\"e.g. 140\"><div class=\"suffix\">Meters<\/div><\/div>\r\n          <div class=\"row\"><label for=\"fw\">Fairways Hit<\/label><input id=\"fw\" type=\"number\" step=\"1\" placeholder=\"e.g. 55\"><div class=\"suffix\">%<\/div><\/div>\r\n          <div class=\"row\"><label for=\"gir\">Greens in Regulation (GIR)<\/label><input id=\"gir\" type=\"number\" step=\"1\" placeholder=\"e.g. 35\"><div class=\"suffix\">%<\/div><\/div>\r\n          <div class=\"row\"><label for=\"putts\">Putts per Round<\/label><input id=\"putts\" type=\"number\" step=\"1\" placeholder=\"e.g. 34\"><div class=\"suffix\">#<\/div><\/div>\r\n          <div class=\"row\"><label for=\"scr\">Scrambling<\/label><input id=\"scr\" type=\"number\" step=\"1\" placeholder=\"e.g. 25\"><div class=\"suffix\">%<\/div><\/div>\r\n          <div class=\"row\"><label for=\"sand\">Sand Saves<\/label><input id=\"sand\" type=\"number\" step=\"1\" placeholder=\"e.g. 18\"><div class=\"suffix\">%<\/div><\/div>\r\n          <div class=\"row\"><label for=\"score\">Score (optional)<\/label><input id=\"score\" type=\"number\" step=\"1\" placeholder=\"e.g. 92\"><div class=\"suffix\">Strokes<\/div><\/div>\r\n          <div class=\"actions\"><button class=\"btn-primary\" id=\"calc\">Start Analysis<\/button><button class=\"btn-ghost\" id=\"reset\">Reset<\/button><\/div>\r\n        <\/div>\r\n      <\/section>\r\n\r\n      <section class=\"card results\" aria-live=\"polite\">\r\n        <div class=\"result-head\">\r\n          <h2>Result<\/h2>\r\n          <div id=\"badges\"><\/div>\r\n        <\/div>\r\n        <div id=\"out\"><div class=\"result-block\"><p class=\"muted\">No analysis yet. Enter your values and click <strong>\"Start Analysis\"<\/strong>. <\/p><\/div><\/div>\r\n        <div class=\"foot\"><span class=\"muted\">100% local \u2013 no data storage<\/span><span id=\"quality\"><\/span><\/div>\r\n      <\/section>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    const $ = (s)=>document.querySelector(s);\r\n    const val=(id)=>{const v=parseFloat($(id).value);return isNaN(v)?null:v};\r\n\r\n    const rules={\r\n      bin(h){\r\n        if(h===null)return'13-20';\r\n        if(h<6)return'<5';\r\n        if(h<=12)return'6-12';\r\n        if(h<=20)return'13-20';\r\n        if(h<=30)return'21-30';\r\n        return'31-45';\r\n      },\r\n      bm:{\r\n        '<5':{gir:[60,70],fw:[65,75],putts:[30,32],scr:[55,65],sand:[45,55]},\r\n        '6-12':{gir:[45,55],fw:[55,65],putts:[32,34],scr:[40,50],sand:[30,40]},\r\n        '13-20':{gir:[35,45],fw:[45,55],putts:[33,36],scr:[30,40],sand:[20,30]},\r\n        '21-30':{gir:[25,35],fw:[35,50],putts:[35,38],scr:[20,30],sand:[10,20]},\r\n        '31-45':{gir:[15,25],fw:[25,40],putts:[36,40],scr:[10,20],sand:[5,15]}\r\n      },\r\n      pctScore(a,[lo,hi],inv=false){if(a==null)return null;const cl=Math.max(0,Math.min(100,a));let n=(cl-lo)\/Math.max(1,hi-lo);n=Math.max(0,Math.min(1,n));if(inv)n=1-n;return n;},\r\n      grade(i){const b=rules.bin(i.hcp),bm=rules.bm[b];const driving=rules.pctScore(i.fw,bm.fw);const approach=rules.pctScore(i.gir,bm.gir);const putting=rules.pctScore(i.putts,bm.putts,true);const shortgame=rules.pctScore(i.scr,bm.scr);const bunker=rules.pctScore(i.sand,bm.sand);const distance=i.i7==null?null:Math.max(0,Math.min(1,(i.i7-110)\/45));const map={driving,approach,putting,shortgame,bunker,distance};const sc=Object.fromEntries(Object.entries(map).map(([k,v])=>[k,v==null?null:Math.round(v*100)]));return{bin:b,scores:sc}},\r\n      advice(k){\r\n        const tips={\r\n          driving:[\r\n            'Trainiere kontrollierte Drives mit 80 % Schwungtempo \u2013 Ziel ist Pr\u00e4zision, nicht L\u00e4nge.',\r\n            'Nutze Ausrichtungshilfen, um deinen Startwinkel zu kontrollieren.',\r\n            '\u00dcbe deine Pre-Shot-Routine f\u00fcr mehr Konstanz und Vertrauen auf dem Abschlag.',\r\n            'Variante: Spiele 10 Drives mit Fokus auf Balance \u2013 z\u00e4hle nur Fairways.'],\r\n          approach:[\r\n            'F\u00fchre ein Distanz-Tagebuch \u2013 notiere reale Carry-Werte jeder Schl\u00e4gerkombination.',\r\n            'Trainiere gezielt 30\u2013100 m Ann\u00e4herungen mit unterschiedlichen Schwungl\u00e4ngen.',\r\n            'Baue Ziel\u00fcbungen auf der Range ein (10 B\u00e4lle \u2013 Zielkreis 10 m).',\r\n            'Spiele \u201eTarget-Games\u201c: 5 Ziele auf der Range treffen, Punkte z\u00e4hlen.'],\r\n          putting:[\r\n            'Lag-Putting Drill: 6\u201310 m Putts \u2013 Ziel ist Abstand < 50 cm.',\r\n            'Startlinien\u00fcbung mit zwei Tees (Gate Drill) \u2013 2\u20133 m Putts.',\r\n            'Clock Drill: 1,5 m rund ums Loch, Ziel: 8 von 10 Putts.',\r\n            'Lese den Break: 5 Putts auf gleicher Linie mit unterschiedlichem Tempo.'],\r\n          shortgame:[\r\n            '\u00dcbe verschiedene Ballpositionen (vorne, Mitte, hinten) und beobachte Flug\/Roll-Verh\u00e4ltnis.',\r\n            'Fokus auf Landepunkt statt Loch \u2013 Ziel ist kontrollierte Rollweite.',\r\n            'Trainiere Chips mit verschiedenen Schl\u00e4gern (PW, GW, SW).',\r\n            'Challenge: 9 B\u00e4lle Up-&-Down, Zielquote 50 %+.'],\r\n          bunker:[\r\n            'Markiere Eintrittspunkt in den Sand (2\u20133 cm vor Ball) und trainiere konstanten Treffpunkt.',\r\n            'Offenes Schlagblatt \u2013 volle Bewegung durch den Sand.',\r\n            '\u00dcbe Distanzen 10\u201320\u201330 m mit gleichbleibender Technik.',\r\n            'Drill: Spiele aus Hanglagen mit gleichem Rhythmus.'],\r\n          distance:[\r\n            'Trainiere Rhythmus und Treffmoment \u2013 Smash \u00fcber Kraft.',\r\n            'Tempo-Drill: 3 B\u00e4lle @70 %, 85 %, 100 % \u2013 finde dein Optimum.',\r\n            'Overspeed-Training (Speedsticks) 2\u00d7 pro Woche.',\r\n            'Mobilit\u00e4ts\u00fcbungen f\u00fcr H\u00fcft- und Rumpfrotation t\u00e4glich 5\u201310 Minuten.']\r\n        };\r\n        return tips[k]||[];\r\n      }\r\n    };\r\n\r\n    function classify(s){const arr=Object.entries(s).filter(([,v])=>v!==null).sort((a,b)=>a[1]-b[1]);return{arr,topWeak:arr.slice(0,3)}};\r\n\r\n    function fmt(n,u=''){return n==null?'\u2013':`${n}${u}`}\r\n\r\n    function render(){\r\n      const i={hcp:val('#hcp'),i7:val('#i7'),fw:val('#fw'),gir:val('#gir'),putts:val('#putts'),scr:val('#scr'),sand:val('#sand'),score:val('#score')};\r\n      const{bin,scores}=rules.grade(i);\r\n      const{arr,topWeak}=classify(scores);\r\n\r\n      if(!Object.values(i).some(v=>v!==null)){$('#out').innerHTML='<div class=\"result-block\"><p class=\"muted\">Noch keine Auswertung. Gib deine Werte ein und klicke <strong>\u201eFokus berechnen\u201c<\/strong>.<\/p><\/div>';$('#badges').innerHTML='';$('#quality').textContent='';return;}\r\n\r\n      const vals=Object.values(scores).filter(v=>v!==null);\r\n      const qi=Math.round(vals.reduce((a,b)=>a+b,0)\/vals.length);\r\n      $('#quality').textContent=`Qualit\u00e4t: ${qi}\/100`;\r\n      $('#badges').innerHTML=`<span class=\"badge\">Handicap: ${bin}<\/span>`;\r\n\r\n      const title={driving:'Driving',approach:'Ann\u00e4herungen',putting:'Putten',shortgame:'Kurzes Spiel',bunker:'Bunker',distance:'Distanz'};\r\n\r\n      const focus=`<div class='result-block'><h3>Die 3 wichtigsten Bereiche f\u00fcr dein Training<\/h3>${topWeak.map(([k],idx)=>`<div class='rank'><span>${idx+1}<\/span> ${title[k]}<\/div>`).join('')}<\/div>`;\r\n\r\n      const blocks=[focus,`<div class='result-block'><div class='kpi'>${arr.map(([k,v])=>`<div><strong>${title[k]}<\/strong><br><span class='muted'>Score: ${v==null?'\u2013':v+'\/100'}<\/span><\/div>`).join('')}<\/div><\/div>`];\r\n\r\n      topWeak.forEach(([k,v])=>{const tips=rules.advice(k);blocks.push(`<div class='result-block'><h3>${title[k]} \u2013 Trainingstipps<\/h3><ul>${tips.map(t=>`<li>${t}<\/li>`).join('')}<\/ul><\/div>`)});\r\n\r\n      $('#out').innerHTML=blocks.join('');\r\n    }\r\n\r\n    $('#calc').addEventListener('click',render);\r\n    $('#reset').addEventListener('click',()=>{['#hcp','#i7','#fw','#gir','#putts','#scr','#sand','#score'].forEach(id=>$(id).value='');render();});\r\n  <\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\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>Training Calculator Enter your golf performance data. The calculator will show you what to focus on during training \u2013 all anonymously and directly in your browser, including exercise tips. How it works Inputs Handicap 7-iron distanceMeters Fairways Hit% Greens in Regulation (GIR)% Putts per Round# Scrambling% Sand Saves% Score (optional)Strokes Start AnalysisReset Result No analysis [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-503","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/pages\/503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/comments?post=503"}],"version-history":[{"count":1,"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/pages\/503\/revisions"}],"predecessor-version":[{"id":507,"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/pages\/503\/revisions\/507"}],"wp:attachment":[{"href":"https:\/\/playgolf18.com\/en\/wp-json\/wp\/v2\/media?parent=503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}