{"id":32181,"date":"2026-07-18T05:40:52","date_gmt":"2026-07-18T05:40:52","guid":{"rendered":"https:\/\/www.othellointernational.com\/esg-disclosure-checker\/"},"modified":"2026-07-21T05:02:48","modified_gmt":"2026-07-21T05:02:48","slug":"esg-disclosure-checker","status":"publish","type":"page","link":"https:\/\/www.othellointernational.com\/th\/esg-disclosure-checker\/","title":{"rendered":"ESG Disclosure Checker \u2014 Free &#038; Private | Othello"},"content":{"rendered":"\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500;1,9..144,600&#038;family=Poppins:wght@300;400;500;600;700&#038;family=JetBrains+Mono:wght@500;600&#038;family=Sarabun:wght@400;500&#038;display=swap\" rel=\"stylesheet\">\n\n<style>\n.oth-co{\n  --k:#000;--k0:#050505;--k1:#0a0a0a;--k2:#141414;--k3:#1a1a1a;--k4:#1f1f1f;\n  --line:#242424;--line2:rgba(255,255,255,.06);\n  --r:#ED4036;--r1:#FF5046;--r2:#C2261C;--r3:#8a1a13;\n  --w:#fff;--w1:rgba(255,255,255,.84);--w2:rgba(255,255,255,.60);--w3:rgba(255,255,255,.42);--w4:rgba(255,255,255,.20);\n  --gold:#d4af37;--gold1:#f4cf57;\n  --s:'Poppins',-apple-system,BlinkMacSystemFont,sans-serif;--d:'Fraunces',Georgia,serif;\n  --m:'JetBrains Mono',Menlo,monospace;--th:'Sarabun',sans-serif;\n  --ease:cubic-bezier(.16,1,.3,1);\n  font-family:var(--s);color:var(--w);background:var(--k);line-height:1.6;font-size:16px;\n  margin:0;padding:0;width:100%;overflow-x:hidden;display:block;\n}\n.oth-co *,.oth-co *::before,.oth-co *::after{box-sizing:border-box}\n.oth-co .wrap{max-width:1340px;margin:0 auto;padding:0 40px}\n.oth-co a{color:inherit}\n.oth-co [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}\n.oth-co [data-reveal].in{opacity:1;transform:translateY(0)}\n.oth-co [data-reveal-stagger] > *{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}\n.oth-co [data-reveal-stagger].in > *{opacity:1;transform:translateY(0)}\n.oth-co [data-reveal-stagger].in > *:nth-child(1){transition-delay:0s}\n.oth-co [data-reveal-stagger].in > *:nth-child(2){transition-delay:.08s}\n.oth-co [data-reveal-stagger].in > *:nth-child(3){transition-delay:.16s}\n.oth-co [data-reveal-stagger].in > *:nth-child(4){transition-delay:.24s}\n.oth-co [data-reveal-stagger].in > *:nth-child(5){transition-delay:.32s}\n.oth-co [data-reveal-stagger].in > *:nth-child(6){transition-delay:.40s}\n\n.oth-co .eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--m);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--r);margin-bottom:26px}\n.oth-co .eyebrow::before{content:\"\";width:36px;height:1px;background:var(--r)}\n.oth-co h2.title{font-size:clamp(34px,4.6vw,58px);line-height:1.06;font-weight:700;letter-spacing:-.025em;margin:0 0 24px;color:var(--w)}\n.oth-co h2.title em{font-family:var(--d);font-style:italic;font-weight:500;color:var(--r)}\n.oth-co .lead{font-size:17.5px;color:var(--w1);max-width:74ch;line-height:1.65}\n.oth-co .lead strong{color:var(--w);font-weight:600}\n.oth-co .lead em{font-family:var(--d);font-style:italic;color:var(--r);font-weight:500}\n.oth-co .section{padding:104px 0;background:var(--k);position:relative}\n.oth-co .section.alt{background:var(--k1)}\n.oth-co .section-head{margin-bottom:52px;max-width:920px}\n.oth-co .section-head.center{margin-left:auto;margin-right:auto;text-align:center}\n.oth-co .section-head.center .eyebrow{justify-content:center}\n.oth-co .section-head.center .eyebrow::after{content:\"\";width:36px;height:1px;background:var(--r);margin-left:14px}\n\n.oth-co .btn{display:inline-flex;align-items:center;gap:12px;padding:17px 30px;font-family:var(--s);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-radius:4px;transition:all .35s var(--ease);cursor:pointer;border:2px solid}\n.oth-co .ico{display:inline-block;vertical-align:-.18em;flex:none;color:inherit}\n.rel-tag .ico{vertical-align:-.14em;margin-right:5px;opacity:.85}\n.eyebrow .ico{vertical-align:-.16em;margin-right:8px;opacity:.92}\n.btn::after{content:\"\";width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'\/%3E%3Cpath d='m12 5 7 7-7 7'\/%3E%3C\/svg%3E\") center\/contain no-repeat;mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'\/%3E%3Cpath d='m12 5 7 7-7 7'\/%3E%3C\/svg%3E\") center\/contain no-repeat;transition:transform .3s var(--ease)}\n.oth-co .btn:hover::after{transform:translateX(5px)}\n.oth-co .btn-primary{background:var(--r);color:var(--w)!important;border-color:var(--r)}\n.oth-co .btn-primary:hover{background:var(--r1);border-color:var(--r1);transform:translateY(-3px);box-shadow:0 16px 40px rgba(237,64,54,.45)}\n.oth-co .btn-outline{background:transparent;color:var(--w)!important;border-color:var(--w4)}\n.oth-co .btn-outline:hover{background:var(--w);color:var(--k)!important;border-color:var(--w);transform:translateY(-3px)}\n\n.oth-co .strip{background:var(--k1);border-bottom:1px solid var(--line);padding:12px 0;font-family:var(--m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--w2)}\n.oth-co .strip-row{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}\n.oth-co .strip-row .l{display:flex;align-items:center;gap:12px}\n.oth-co .strip-dot{width:8px;height:8px;background:var(--r);border-radius:50%;animation:co-pulse 2s ease-in-out infinite}\n@keyframes co-pulse{0%,100%{box-shadow:0 0 0 0 rgba(237,64,54,.6)}50%{box-shadow:0 0 0 10px rgba(237,64,54,0)}}\n.oth-co .strip-row .r{color:var(--w3)}\n.oth-co .strip-row .r b{color:var(--w);font-weight:500}\n.oth-co .crumb{background:var(--k);border-bottom:1px solid var(--line);padding:18px 0;font-family:var(--m);font-size:11px;letter-spacing:.10em;text-transform:uppercase;color:var(--w3)}\n.oth-co .crumb a{color:var(--w2);text-decoration:none;transition:color .2s}\n.oth-co .crumb a:hover{color:var(--r)}\n.oth-co .crumb .sep{margin:0 12px;color:var(--w4)}\n.oth-co .crumb .here{color:var(--w)}\n\n\/* HERO *\/\n.oth-co .hero{padding:84px 0 108px;background:var(--k);position:relative;overflow:hidden}\n.oth-co .hero::before{content:\"\";position:absolute;inset:0;background:radial-gradient(ellipse 1400px 900px at 78% 25%,rgba(237,64,54,.20),transparent 60%),radial-gradient(ellipse 700px 500px at 12% 80%,rgba(237,64,54,.07),transparent 60%);pointer-events:none;animation:hero-glow 8s ease-in-out infinite}\n@keyframes hero-glow{0%,100%{opacity:1}50%{opacity:.7}}\n.oth-co .hero::after{content:\"\";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:64px 64px;pointer-events:none;mask-image:radial-gradient(ellipse 1400px 800px at 50% 30%,black,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 1400px 800px at 50% 30%,black,transparent 75%)}\n.oth-co .hero-inner{position:relative;z-index:2}\n.oth-co .hero-tag{display:inline-flex;align-items:center;gap:14px;padding:10px 22px;background:rgba(237,64,54,.12);border:1px solid rgba(237,64,54,.35);border-radius:100px;font-family:var(--m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--r1);font-weight:600;margin-bottom:30px}\n.oth-co .hero-tag .dot{width:7px;height:7px;background:var(--r);border-radius:50%;animation:co-pulse 2s ease-in-out infinite}\n.oth-co .hero h1{font-size:clamp(38px,5.4vw,74px);line-height:1.02;font-weight:700;letter-spacing:-.035em;margin:0 0 28px;color:var(--w);max-width:20ch}\n.oth-co .hero h1 em{font-family:var(--d);font-style:italic;font-weight:500;color:var(--r);background:linear-gradient(90deg,var(--r) 0%,var(--r1) 30%,var(--gold) 50%,var(--r1) 70%,var(--r) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:co-shimmer 6s linear infinite}\n@keyframes co-shimmer{0%{background-position:200% 50%}100%{background-position:-200% 50%}}\n.oth-co .hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:24px}\n.oth-co .hero-left p{font-size:18px;line-height:1.7;color:var(--w1);margin:0 0 32px;max-width:62ch}\n.oth-co .hero-left p strong{color:var(--w);font-weight:600}\n.oth-co .hero-left p em{font-family:var(--d);font-style:italic;color:var(--r);font-weight:500}\n.oth-co .hs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}\n.oth-co .hs{background:var(--k1);padding:24px 20px;transition:all .4s var(--ease);position:relative;overflow:hidden}\n.oth-co .hs::before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(237,64,54,.15),transparent 70%);opacity:0;transition:opacity .4s var(--ease)}\n.oth-co .hs:hover::before{opacity:1}\n.oth-co .hs:hover{background:var(--k3);transform:translateY(-3px)}\n.oth-co .hs .v{font-family:var(--d);font-style:italic;font-weight:500;font-size:34px;line-height:1;color:var(--r);margin-bottom:6px;letter-spacing:-.02em;position:relative;z-index:2;display:flex;align-items:baseline;gap:2px}\n.oth-co .hs .v .sm{font-size:.5em;color:var(--w2);font-style:normal;font-family:var(--m);font-weight:600}\n.oth-co .hs .lb{font-family:var(--m);font-size:9.5px;letter-spacing:.10em;text-transform:uppercase;color:var(--w2);font-weight:600;margin-bottom:4px;line-height:1.3;position:relative;z-index:2}\n.oth-co .hs .sb{font-size:10.5px;color:var(--w3);line-height:1.4;position:relative;z-index:2}\n.oth-co .hctas{display:flex;gap:14px;flex-wrap:wrap}\n\/* hero right cover card *\/\n.oth-co .cov-card{background:linear-gradient(135deg,var(--k3) 0%,var(--k1) 100%);border:1px solid var(--line);padding:34px 30px;position:relative;overflow:hidden;transition:all .5s var(--ease)}\n.oth-co .cov-card:hover{box-shadow:0 20px 60px rgba(0,0,0,.5),0 0 30px rgba(237,64,54,.15);border-color:rgba(237,64,54,.20)}\n.oth-co .cov-card::before{content:\"\";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--r) 0%,var(--gold) 100%)}\n.oth-co .cov-card .cc-lb{font-family:var(--m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--r);margin-bottom:18px;display:flex;align-items:center;gap:8px;font-weight:600}\n.oth-co .cov-card .cc-lb::before{content:\"\u25cf\";color:var(--r);animation:co-pulse 2s ease-in-out infinite}\n.oth-co .cov-card .cc-head{font-family:var(--d);font-style:italic;font-size:24px;font-weight:500;color:var(--w);letter-spacing:-.02em;line-height:1.2;margin-bottom:20px}\n.oth-co .cov-card .cc-head em{color:var(--r)}\n.oth-co .cov-list{margin:0;padding:0;list-style:none}\n.oth-co .cov-item{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start;transition:transform .3s var(--ease)}\n.oth-co .cov-item:hover{transform:translateX(4px)}\n.oth-co .cov-item:last-child{border-bottom:0;padding-bottom:0}\n.oth-co .cov-item:first-child{padding-top:0}\n.oth-co .cov-num{font-family:var(--d);font-style:italic;font-size:22px;font-weight:600;color:var(--r);line-height:1;padding-top:2px}\n.oth-co .cov-name{font-size:13.5px;font-weight:600;color:var(--w);line-height:1.3}\n\n\/* WHY cards *\/\n.oth-co .why-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}\n.oth-co .why-card{background:var(--k);border:1px solid var(--line);padding:30px 22px;position:relative;transition:all .45s var(--ease);display:flex;flex-direction:column;min-height:300px;overflow:hidden}\n.oth-co .why-card::before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(237,64,54,.16),transparent 70%);opacity:0;transition:opacity .45s var(--ease)}\n.oth-co .why-card:hover::before{opacity:1}\n.oth-co .why-card::after{content:\"\";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--r) 0%,var(--gold) 100%);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}\n.oth-co .why-card:hover::after{transform:scaleX(1)}\n.oth-co .why-card:hover{background:var(--k3);border-color:rgba(237,64,54,.5);transform:translateY(-8px);box-shadow:0 24px 60px rgba(0,0,0,.5)}\n.oth-co .why-card .wc-num{font-family:var(--d);font-style:italic;font-size:50px;font-weight:500;color:var(--r);line-height:.85;letter-spacing:-.04em;margin-bottom:16px;opacity:.75;position:relative;z-index:2;transition:all .45s var(--ease)}\n.oth-co .why-card:hover .wc-num{opacity:1}\n.oth-co .why-card h4{font-family:var(--d);font-size:18px;font-weight:600;color:var(--w);line-height:1.2;margin:0 0 10px;letter-spacing:-.01em;position:relative;z-index:2}\n.oth-co .why-card h4 em{font-style:italic;color:var(--r);font-weight:500}\n.oth-co .why-card p{font-size:13px;line-height:1.6;color:var(--w1);margin:0;flex:1;position:relative;z-index:2}\n.oth-co .why-card p strong{color:var(--w);font-weight:600}\n\n\/* NUMBERS + PROOF *\/\n.oth-co .num-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:32px}\n.oth-co .nb{background:var(--k1);padding:34px 22px;text-align:center;position:relative;overflow:hidden;transition:all .4s var(--ease)}\n.oth-co .nb::before{content:\"\";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(237,64,54,.18),transparent 70%);opacity:0;transition:opacity .4s var(--ease)}\n.oth-co .nb:hover::before{opacity:1}\n.oth-co .nb:hover{background:var(--k3);transform:translateY(-4px)}\n.oth-co .nb .nb-v{font-family:var(--d);font-style:italic;font-size:clamp(36px,4.2vw,54px);font-weight:500;color:var(--w);line-height:1;letter-spacing:-.03em;margin-bottom:8px;display:flex;align-items:baseline;justify-content:center;gap:2px}\n.oth-co .nb .nb-v em{color:var(--r);font-style:italic}\n.oth-co .nb .nb-v .nb-sm{font-size:.5em;color:var(--w2);font-style:normal;font-family:var(--m);font-weight:600}\n.oth-co .nb .nb-lb{font-family:var(--m);font-size:9.5px;letter-spacing:.10em;text-transform:uppercase;color:var(--w2);font-weight:600;line-height:1.4;margin-bottom:4px}\n.oth-co .nb .nb-sb{font-size:11px;color:var(--w3);line-height:1.4}\n.oth-co .proof-feature{background:linear-gradient(135deg,rgba(237,64,54,.10) 0%,var(--k3) 100%);border:1px solid rgba(237,64,54,.30);padding:48px 44px;position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center;transition:all .5s var(--ease)}\n.oth-co .proof-feature:hover{transform:translateY(-3px);box-shadow:0 30px 80px rgba(0,0,0,.5);border-color:rgba(237,64,54,.5)}\n.oth-co .proof-feature::before{content:\"\";position:absolute;top:0;left:0;width:8px;height:100%;background:linear-gradient(180deg,var(--r) 0%,var(--gold) 100%)}\n.oth-co .proof-feature .pf-num{font-family:var(--d);font-style:italic;font-size:clamp(80px,10vw,140px);font-weight:500;line-height:.85;letter-spacing:-.04em;position:relative;z-index:2;background:linear-gradient(135deg,var(--w) 0%,var(--r) 50%,var(--gold) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 200%;animation:co-shimmer 6s linear infinite}\n.oth-co .proof-feature .pf-content{position:relative;z-index:2}\n.oth-co .proof-feature .pf-tag{display:inline-block;font-family:var(--m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--r);color:var(--w);padding:6px 14px;border-radius:2px;margin-bottom:16px;font-weight:700}\n.oth-co .proof-feature h3{font-family:var(--d);font-size:30px;font-weight:600;color:var(--w);line-height:1.15;letter-spacing:-.015em;margin:0 0 10px}\n.oth-co .proof-feature h3 em{font-style:italic;color:var(--r);font-weight:500}\n.oth-co .proof-feature p{font-size:15px;line-height:1.7;color:var(--w1);margin:0}\n.oth-co .proof-feature p strong{color:var(--w);font-weight:600}\n.oth-co .proof-feature p em{font-family:var(--d);font-style:italic;color:var(--r);font-weight:500}\n\n\/* FAQ *\/\n.oth-co .faq-list{display:grid;grid-template-columns:1fr;gap:10px;max-width:1080px;margin:0 auto}\n.oth-co .faq-item{background:var(--k1);border:1px solid var(--line);transition:all .35s var(--ease);overflow:hidden}\n.oth-co .faq-item:hover{border-color:rgba(237,64,54,.3);background:var(--k2)}\n.oth-co .faq-item[open]{border-color:rgba(237,64,54,.5);background:linear-gradient(135deg,rgba(237,64,54,.05) 0%,var(--k1) 60%)}\n.oth-co .faq-item summary{list-style:none;cursor:pointer;padding:22px 26px;display:grid;grid-template-columns:56px 1fr 30px;gap:18px;align-items:center;transition:padding .25s var(--ease)}\n.oth-co .faq-item summary::-webkit-details-marker{display:none}\n.oth-co .faq-item summary:hover{padding-left:32px}\n.oth-co .faq-item[open] summary{padding-bottom:12px;border-bottom:1px dashed var(--line)}\n.oth-co .faq-num{font-family:var(--d);font-style:italic;font-size:30px;font-weight:500;color:var(--r);line-height:1;letter-spacing:-.03em}\n.oth-co .faq-q{font-size:16.5px;font-weight:600;color:var(--w);letter-spacing:-.015em;line-height:1.35}\n.oth-co .faq-q em{font-family:var(--d);font-style:italic;color:var(--r);font-weight:500}\n.oth-co .faq-chev{width:30px;height:30px;border:1.5px solid var(--w3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--w2);font-size:18px;line-height:1;font-weight:600;transition:all .35s var(--ease)}\n.oth-co .faq-item:hover .faq-chev{border-color:var(--r);color:var(--r)}\n.oth-co .faq-item[open] .faq-chev{background:var(--r);color:var(--w);border-color:var(--r);transform:rotate(45deg)}\n.oth-co .faq-a{padding:16px 26px 24px 100px;font-size:14px;line-height:1.7;color:var(--w1)}\n.oth-co .faq-a p{margin:0}\n.oth-co .faq-a p strong{color:var(--w);font-weight:600}\n.oth-co .faq-a a{color:var(--r);text-decoration:none;border-bottom:1px solid rgba(237,64,54,.4)}\n\n\/* RELATED *\/\n.oth-co .rel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}\n.oth-co .rel{background:var(--k);border:1px solid var(--line);padding:24px 22px;text-decoration:none;color:inherit;transition:all .4s var(--ease);position:relative;display:flex;flex-direction:column;overflow:hidden}\n.oth-co .rel:hover{background:var(--k3);border-color:rgba(237,64,54,.5);transform:translateY(-5px);box-shadow:0 16px 40px rgba(0,0,0,.4)}\n.oth-co .rel::before{content:\"\";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--r) 0%,var(--gold) 100%);transform:scaleX(.3);transform-origin:left;transition:transform .4s var(--ease)}\n.oth-co .rel:hover::before{transform:scaleX(1)}\n.oth-co .rel .rel-tag{font-family:var(--m);font-size:9.5px;letter-spacing:.12em;color:var(--w3);text-transform:uppercase;font-weight:600;margin-bottom:10px}\n.oth-co .rel h4{font-family:var(--d);font-size:18px;font-weight:600;color:var(--w);line-height:1.2;margin:0 0 8px}\n.oth-co .rel h4 em{font-style:italic;color:var(--r);font-weight:500}\n.oth-co .rel p{font-size:12px;line-height:1.55;color:var(--w1);margin:0 0 14px;flex:1}\n.oth-co .rel .rel-cta{font-family:var(--m);font-size:10px;letter-spacing:.10em;color:var(--r);text-transform:uppercase;font-weight:700;display:flex;align-items:center;gap:6px}\n.oth-co .rel .rel-cta::after{content:\"\";display:inline-block;width:13px;height:13px;vertical-align:-.12em;background:currentColor;-webkit-mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'\/%3E%3Cpath d='m12 5 7 7-7 7'\/%3E%3C\/svg%3E\") center\/contain no-repeat;mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'\/%3E%3Cpath d='m12 5 7 7-7 7'\/%3E%3C\/svg%3E\") center\/contain no-repeat;transition:transform .25s}\n.oth-co .rel:hover .rel-cta::after{transform:translateX(4px)}\n\n\/* FINAL CTA *\/\n.oth-co .final{padding:110px 0;background:linear-gradient(180deg,var(--k1) 0%,var(--k0) 100%);position:relative;overflow:hidden;border-top:1px solid var(--line)}\n.oth-co .final::before{content:\"\";position:absolute;inset:0;background:radial-gradient(ellipse 1300px 800px at 50% 30%,rgba(237,64,54,.20),transparent 60%);pointer-events:none;animation:hero-glow 8s ease-in-out infinite}\n.oth-co .final-inner{position:relative;z-index:2;max-width:1000px;margin:0 auto;text-align:center}\n.oth-co .final .eyebrow{justify-content:center}\n.oth-co .final .eyebrow::after{content:\"\";width:36px;height:1px;background:var(--r);margin-left:14px}\n.oth-co .final h2{font-size:clamp(34px,5vw,64px);line-height:1.04;font-weight:700;letter-spacing:-.025em;margin:0 0 24px;color:var(--w)}\n.oth-co .final h2 em{font-family:var(--d);font-style:italic;color:var(--r);font-weight:500;background:linear-gradient(90deg,var(--r) 0%,var(--r1) 30%,var(--gold) 50%,var(--r1) 70%,var(--r) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:co-shimmer 6s linear infinite}\n.oth-co .final p.flead{font-size:18px;line-height:1.65;color:var(--w1);max-width:66ch;margin:0 auto 40px}\n.oth-co .final p.flead strong{color:var(--w);font-weight:600}\n.oth-co .final-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}\n.oth-co .final-note{margin-top:28px;font-family:var(--d);font-style:italic;font-size:15px;color:var(--w2);line-height:1.6}\n.oth-co .final-note em{color:var(--r)}\n\n@media (max-width:1024px){\n  .oth-co .hero-grid{grid-template-columns:1fr;gap:40px}\n  .oth-co .hs-grid{grid-template-columns:repeat(2,1fr)}\n  .oth-co .why-grid{grid-template-columns:repeat(2,1fr)}\n  .oth-co .num-row{grid-template-columns:repeat(2,1fr)}\n  .oth-co .proof-feature{grid-template-columns:1fr;gap:24px;padding:36px 26px}\n  .oth-co .rel-grid{grid-template-columns:repeat(2,1fr)}\n}\n@media (max-width:600px){\n  .oth-co .wrap{padding:0 22px}\n  .oth-co .hero{padding:44px 0 60px}\n  .oth-co .section{padding:60px 0}\n  .oth-co .hs-grid{grid-template-columns:1fr 1fr}\n  .oth-co .why-grid{grid-template-columns:1fr}\n  .oth-co .num-row{grid-template-columns:1fr 1fr}\n  .oth-co .rel-grid{grid-template-columns:1fr}\n  .oth-co .hctas .btn,.oth-co .final-cta .btn{justify-content:center;width:100%}\n  .oth-co .faq-item summary{grid-template-columns:34px 1fr 26px;padding:16px 18px;gap:14px}\n  .oth-co .faq-num{font-size:22px}\n  .oth-co .faq-q{font-size:15px}\n  .oth-co .faq-a{padding:12px 18px 20px 64px}\n}\n@media (prefers-reduced-motion:reduce){\n  .oth-co *,.oth-co *::before,.oth-co *::after{animation-duration:.01ms!important;transition-duration:.01ms!important}\n  .oth-co [data-reveal],.oth-co [data-reveal-stagger] > *{opacity:1!important;transform:none!important}\n}\n<\/style>\n\n<style>\n.oth-co .dc-priv{display:inline-flex;align-items:center;gap:8px;font-family:var(--m);font-size:11px;letter-spacing:.05em;color:#8fd0a8;border:1px solid #2f4a3a;background:rgba(60,90,70,.12);padding:7px 14px;border-radius:100px;margin-bottom:18px}\n.oth-co .dc-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}\n.oth-co .dc-tab{font-family:var(--m);font-size:12px;letter-spacing:.04em;padding:11px 20px;border:1px solid var(--line);background:var(--k1);color:var(--w2);cursor:pointer;transition:all .15s}\n.oth-co .dc-tab.on{background:var(--r);border-color:var(--r);color:#fff;font-weight:700}\n.oth-co .dc-tab:hover:not(.on){border-color:var(--r);color:var(--w)}\n.oth-co .dc-panel{display:none}\n.oth-co .dc-panel.on{display:block}\n.oth-co .dc-lab{font-family:var(--m);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--w2);margin:0 0 8px;font-weight:700}\n.oth-co .dc-ta{width:100%;min-height:150px;background:var(--k1);border:1px solid var(--line);color:var(--w);font-family:var(--b);font-size:13.5px;line-height:1.6;padding:14px 16px;outline:none;resize:vertical}\n.oth-co .dc-ta:focus{border-color:var(--r)}\n.oth-co .dc-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.oth-co .dc-go{margin-top:16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}\n.oth-co .dc-note{font-family:var(--m);font-size:10.5px;color:var(--w3);letter-spacing:.03em}\n.oth-co .dc-res{margin-top:28px;display:none}\n.oth-co .dc-res.on{display:block}\n.oth-co .dc-gauge{display:flex;align-items:center;gap:22px;background:var(--k1);border:1px solid var(--line);border-top:2px solid var(--r);padding:24px;margin-bottom:20px;flex-wrap:wrap}\n.oth-co .dc-gauge .big{font-family:var(--d);font-style:italic;font-size:44px;color:var(--r);line-height:1}\n.oth-co .dc-gauge .gl{flex:1;min-width:220px}\n.oth-co .dc-gauge .gl h4{font-family:var(--b);font-size:18px;color:var(--w);margin:0 0 4px}\n.oth-co .dc-gauge .gl p{font-size:13px;color:var(--w1);margin:0;line-height:1.5}\n.oth-co .dc-grp{margin-bottom:22px}\n.oth-co .dc-grp h4{font-family:var(--m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--r);font-weight:700;margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid var(--line)}\n.oth-co .dc-item{display:flex;align-items:flex-start;gap:12px;padding:9px 0;font-size:13.5px;color:var(--w1);line-height:1.5}\n.oth-co .dc-item .ic{flex-shrink:0;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}\n.oth-co .dc-item .ic.ok{background:rgba(60,90,70,.25);color:#8fd0a8;border:1px solid #2f4a3a}\n.oth-co .dc-item .ic.no{background:rgba(237,64,54,.15);color:var(--r);border:1px solid rgba(237,64,54,.4)}\n.oth-co .dc-item .ic.wn{background:rgba(200,160,60,.15);color:#d8b451;border:1px solid rgba(200,160,60,.4)}\n.oth-co .dc-item b{color:var(--w);font-weight:600}\n.oth-co .dc-item .mini{display:block;font-family:var(--m);font-size:11px;color:var(--w3);margin-top:2px}\n@media(max-width:760px){.oth-co .dc-two{grid-template-columns:1fr}.oth-co .dc-gauge .big{font-size:36px}}\n<\/style>\n<div class=\"oth-co\">\n\n  <div class=\"strip\"><div class=\"wrap\"><div class=\"strip-row\">\n    <div class=\"l\"><span class=\"strip-dot\"><\/span>Free tool \u00b7 Disclosure checker<\/div>\n    <div class=\"r\">Runs in your browser \u00b7 <b>nothing is uploaded<\/b><\/div>\n  <\/div><\/div><\/div>\n\n  <div class=\"crumb\"><div class=\"wrap\"><a href=\"\/\">Home<\/a><span class=\"sep\">\/<\/span><a href=\"\/esg-scorecard\/\">Free Tools<\/a><span class=\"sep\">\/<\/span><span class=\"here\">Disclosure Checker<\/span><\/div><\/div>\n\n  <section class=\"hero\"><div class=\"wrap\"><div class=\"hero-inner\">\n    <div class=\"hero-tag\" data-reveal><span class=\"dot\"><\/span>Paste a disclosure. See the gaps in seconds.<\/div>\n    <h1 data-reveal>ESG Disclosure <em>Checker.<\/em><\/h1>\n    <div class=\"hero-grid\">\n      <div class=\"hero-left\">\n        <p data-reveal>A fast triage for your ESG disclosure. Check an <strong>English<\/strong> section for the elements raters look for and how it reads \u2014 or paste your <strong>Thai and English<\/strong> versions to catch figures that drift between them. It runs <em>entirely in your browser<\/em>: nothing is uploaded, sent or stored.<\/p>\n        <div class=\"dc-priv\" data-reveal>\ud83d\udd12 100% in-browser \u00b7 your text never leaves this page<\/div>\n      <\/div>\n      <div data-reveal>\n        <div class=\"cov-card\">\n          <div class=\"cc-lb\">\u2605 What it catches<\/div>\n          <div class=\"cc-head\">Missing disclosures, untrusted numbers, and <em>Thai&harr;English figure drift.<\/em><\/div>\n          <ul class=\"cov-list\">\n            <li class=\"cov-item\"><div class=\"cov-num\">01<\/div><div class=\"cov-name\">Framework &amp; methodology coverage<\/div><\/li>\n            <li class=\"cov-item\"><div class=\"cov-num\">02<\/div><div class=\"cov-name\">English readability for investors<\/div><\/li>\n            <li class=\"cov-item\"><div class=\"cov-num\">03<\/div><div class=\"cov-name\">Figures that don&#8217;t match across languages<\/div><\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div><\/div><\/section>\n\n  <section class=\"section\"><div class=\"wrap\">\n    <div class=\"dc-tabs\" data-reveal>\n      <div class=\"dc-tab on\" data-mode=\"en\">Check English disclosure<\/div>\n      <div class=\"dc-tab\" data-mode=\"bi\">Check Thai &harr; English consistency<\/div>\n    <\/div>\n\n    <div class=\"dc-panel on\" data-panel=\"en\" data-reveal>\n      <p class=\"dc-lab\">Paste your English disclosure text (a climate\/ESG section works best)<\/p>\n      <textarea class=\"dc-ta\" id=\"dcEn\" placeholder=\"Paste the English text of your sustainability or climate disclosure here\u2026\"><\/textarea>\n    <\/div>\n\n    <div class=\"dc-panel\" data-panel=\"bi\" data-reveal>\n      <div class=\"dc-two\">\n        <div><p class=\"dc-lab\">Thai version (\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22)<\/p><textarea class=\"dc-ta\" id=\"dcTh\" placeholder=\"\u0e27\u0e32\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17\u0e22\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e1c\u0e22\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u2026\"><\/textarea><\/div>\n        <div><p class=\"dc-lab\">English version<\/p><textarea class=\"dc-ta\" id=\"dcEn2\" placeholder=\"Paste the matching English version\u2026\"><\/textarea><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"dc-go\">\n      <button class=\"btn btn-primary\" id=\"dcRun\">Check disclosure<\/button>\n      <button class=\"btn btn-outline\" id=\"dcClear\">Clear<\/button>\n      <span class=\"dc-note\">Heuristic triage \u2014 not a rating, and not a substitute for an expert review.<\/span>\n    <\/div>\n\n    <div class=\"dc-res\" id=\"dcRes\"><\/div>\n  <\/div><\/section>\n\n  <section class=\"section alt\"><div class=\"wrap\">\n    <div class=\"section-head center\" data-reveal>\n      <div class=\"eyebrow\"><svg class=\"ico\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\" \/> <path d=\"M14 2v5a1 1 0 0 0 1 1h5\" \/> <path d=\"M10 9H8\" \/> <path d=\"M16 13H8\" \/> <path d=\"M16 17H8\" \/><\/svg>Questions \u00b7 \u0e04\u0e33\u0e16\u0e32\u0e21\u0e17\u0e35\u0e48\u0e1e\u0e1a\u0e1a\u0e48\u0e2d\u0e22<\/div>\n      <h2 class=\"title\">About the <em>checker.<\/em><\/h2>\n    <\/div>\n    <div class=\"faq-list\">\n      <details class=\"faq-item\" open><summary><span class=\"faq-num\">01<\/span><span class=\"faq-q\">Is my report uploaded or stored anywhere?<\/span><span class=\"faq-chev\">+<\/span><\/summary><div class=\"faq-a\"><p>No. The checker runs entirely inside your own web browser using JavaScript \u2014 the text you paste is never uploaded, transmitted or saved. There is no server, no account and no log. That is deliberate: the disclosure you would want to check is usually pre-publication and confidential, and the confidentiality risk of pasting it into a public AI tool is exactly what stops most listed companies from doing so. Here, nothing leaves your device. You can confirm this by disconnecting from the internet after the page loads \u2014 the check still works.<\/p><\/div><\/details><details class=\"faq-item\"><summary><span class=\"faq-num\">02<\/span><span class=\"faq-q\">What does the checker actually check?<\/span><span class=\"faq-chev\">+<\/span><\/summary><div class=\"faq-a\"><p>Two things. In English mode it does a rules-based scan for the disclosure elements FTSE Russell, MSCI and ISSB look for \u2014 Scope 1\/2\/3, base year, GHG methodology, assurance, targets, materiality, framework alignment \u2014 plus an English-readability read (sentence length and complexity). In bilingual mode it compares the figures in your Thai and English versions and flags numbers that appear in one but not the other, or that differ \u2014 the single most common and most damaging translation error in a disclosure. It reports what is present or drifting; it does not judge whether the underlying performance is good.<\/p><\/div><\/details><details class=\"faq-item\"><summary><span class=\"faq-num\">03<\/span><span class=\"faq-q\">Is this a substitute for a professional review?<\/span><span class=\"faq-chev\">+<\/span><\/summary><div class=\"faq-a\"><p>No, and it is not meant to be. It is a fast triage that catches obvious gaps and figure drift \u2014 the things a rules engine can see. It cannot judge accuracy, tone, whether a translation reads correctly to a London analyst, or whether a claim is supportable. Those need a human expert reading the document. Think of it as a smoke detector: a clean result is reassuring but not a guarantee, and a flagged result almost always means there is real work to do. That review is what Othello provides.<\/p><\/div><\/details><details class=\"faq-item\"><summary><span class=\"faq-num\">04<\/span><span class=\"faq-q\">Why does figure consistency matter so much?<\/span><span class=\"faq-chev\">+<\/span><\/summary><div class=\"faq-a\"><p>Because a rater or investor reads your English disclosure as the source of truth, and a single figure that says 1,243 tCO2e in English where the Thai says 1,234 \u2014 or a target table row that was dropped in translation \u2014 quietly destroys trust in every other number on the page. It is also the easiest error to make when the Thai and English versions are drafted separately. Othello builds the two from one clause-mapped source so the figures can never drift; this tool shows you whether yours already have.<\/p><\/div><\/details>\n    <\/div>\n  <\/div><\/section>\n\n  <section class=\"final\"><div class=\"wrap\"><div class=\"final-inner\">\n    <div class=\"eyebrow\" data-reveal>Engage Othello<\/div>\n    <h2 data-reveal>A clean triage isn&#8217;t a <em>clean bill of health.<\/em><\/h2>\n    <p class=\"flead\" data-reveal>This tool sees what rules can see. A person reading your disclosure under NDA sees the rest \u2014 accuracy, tone, whether it reads right to a London analyst, and whether every claim holds. That review, and the bilingual disclosure that never drifts, is what we build.<\/p>\n    <div class=\"final-cta\" data-reveal>\n      <a href=\"\/contact\/\" class=\"btn btn-primary\">Get an expert review<\/a>\n      <a href=\"\/clause-mapped-bilingual-one-report\/\" class=\"btn btn-outline\">See the service<\/a>\n    <\/div>\n    <div class=\"final-note\" data-reveal>ISO 17100-aligned \u00b7 NDA from first email \u00b7 nothing you paste here is stored<\/div>\n  <\/div><\/div><\/section>\n\n<\/div>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebApplication\",\"name\":\"ESG Disclosure Checker\",\"applicationCategory\":\"BusinessApplication\",\"operatingSystem\":\"Any (web browser)\",\"url\":\"https:\/\/www.othellointernational.com\/esg-disclosure-checker\/\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"THB\"},\"description\":\"A free, browser-based checker for Thai listed-company ESG disclosure: framework and methodology coverage, English readability, and Thai\/English figure consistency. Runs entirely client-side \u2014 nothing is uploaded or stored.\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Othello International\",\"url\":\"https:\/\/www.othellointernational.com\/\"}},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Is my report uploaded or stored anywhere?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. The checker runs entirely inside your own web browser using JavaScript \u2014 the text you paste is never uploaded, transmitted or saved. There is no server, no account and no log. That is deliberate: the disclosure you would want to check is usually pre-publication and confidential, and the confidentiality risk of pasting it into a public AI tool is exactly what stops most listed companies from doing so. Here, nothing leaves your device. You can confirm this by disconnecting from the internet after the page loads \u2014 the check still works.\"}},{\"@type\":\"Question\",\"name\":\"What does the checker actually check?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Two things. In English mode it does a rules-based scan for the disclosure elements FTSE Russell, MSCI and ISSB look for \u2014 Scope 1\/2\/3, base year, GHG methodology, assurance, targets, materiality, framework alignment \u2014 plus an English-readability read (sentence length and complexity). In bilingual mode it compares the figures in your Thai and English versions and flags numbers that appear in one but not the other, or that differ \u2014 the single most common and most damaging translation error in a disclosure. It reports what is present or drifting; it does not judge whether the underlying performance is good.\"}},{\"@type\":\"Question\",\"name\":\"Is this a substitute for a professional review?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No, and it is not meant to be. It is a fast triage that catches obvious gaps and figure drift \u2014 the things a rules engine can see. It cannot judge accuracy, tone, whether a translation reads correctly to a London analyst, or whether a claim is supportable. Those need a human expert reading the document. Think of it as a smoke detector: a clean result is reassuring but not a guarantee, and a flagged result almost always means there is real work to do. That review is what Othello provides.\"}},{\"@type\":\"Question\",\"name\":\"Why does figure consistency matter so much?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Because a rater or investor reads your English disclosure as the source of truth, and a single figure that says 1,243 tCO2e in English where the Thai says 1,234 \u2014 or a target table row that was dropped in translation \u2014 quietly destroys trust in every other number on the page. It is also the easiest error to make when the Thai and English versions are drafted separately. Othello builds the two from one clause-mapped source so the figures can never drift; this tool shows you whether yours already have.\"}}]}]}<\/script>\n<script>\n(function(){\n  var $=function(id){return document.getElementById(id);};\n  var res=$(\"dcRes\");\n  \/\/ ---- mode tabs ----\n  var mode=\"en\";\n  document.querySelectorAll(\".dc-tab\").forEach(function(t){t.addEventListener(\"click\",function(){\n    mode=t.getAttribute(\"data-mode\");\n    document.querySelectorAll(\".dc-tab\").forEach(function(x){x.classList.toggle(\"on\",x===t);});\n    document.querySelectorAll(\".dc-panel\").forEach(function(p){p.classList.toggle(\"on\",p.getAttribute(\"data-panel\")===mode);});\n    res.classList.remove(\"on\");\n  });});\n  $(\"dcClear\").addEventListener(\"click\",function(){[\"dcEn\",\"dcTh\",\"dcEn2\"].forEach(function(i){if($(i))$(i).value=\"\";});res.classList.remove(\"on\");res.innerHTML=\"\";});\n\n  \/\/ ---- helpers ----\n  function esc(s){return String(s).replace(\/[&<>]\/g,function(c){return{\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\"}[c];});}\n  function has(txt,terms){for(var i=0;i<terms.length;i++){if(txt.indexOf(terms[i])>-1)return terms[i];}return null;}\n  function item(state,label,mini){var cls=state===\"ok\"?\"ok\":(state===\"wn\"?\"wn\":\"no\");var ic=state===\"ok\"?\"&#10003;\":(state===\"wn\"?\"!\":\"&times;\");return '<div class=\"dc-item\"><span class=\"ic '+cls+'\">'+ic+'<\/span><div><b>'+label+'<\/b>'+(mini?'<span class=\"mini\">'+mini+'<\/span>':'')+'<\/div><\/div>';}\n  function nums(txt){var m=txt.match(\/\\d[\\d,]*(?:\\.\\d+)?\/g)||[];var out={};for(var i=0;i<m.length;i++){var n=m[i].replace(\/,\/g,\"\");if(n.length<2)continue;out[n]=(out[n]||0)+1;}return out;}\n  function syl(w){w=w.toLowerCase().replace(\/[^a-z]\/g,\"\");if(w.length<=3)return 1;w=w.replace(\/(?:e)$\/,\"\");var m=w.match(\/[aeiouy]{1,2}\/g);return m?m.length:1;}\n\n  \/\/ ---- English coverage definition ----\n  var GROUPS=[\n    {t:\"Coverage \u2014 the disclosures raters look for\",items:[\n      {l:\"Scope 1 emissions\",k:[\"scope 1\"]},\n      {l:\"Scope 2 emissions\",k:[\"scope 2\"]},\n      {l:\"Scope 3 emissions\",k:[\"scope 3\"],warn:true},\n      {l:\"Emissions figures (tCO2e \/ GHG)\",k:[\"tco2e\",\"tco2\",\"co2e\",\"greenhouse gas\",\"ghg emission\"]},\n      {l:\"Reduction target \/ net zero\",k:[\"target\",\"net zero\",\"net-zero\",\"carbon neutral\",\"carbon-neutral\"]},\n      {l:\"Climate governance \/ board oversight\",k:[\"board\",\"oversight\",\"governance\",\"committee\"]},\n      {l:\"Climate risk \/ scenario analysis\",k:[\"climate-related risk\",\"climate risk\",\"transition risk\",\"physical risk\",\"scenario\"]},\n      {l:\"Materiality\",k:[\"materiality\",\"material topic\",\"material issue\"]},\n      {l:\"Framework alignment (TCFD\/ISSB\/GRI)\",k:[\"tcfd\",\"ifrs s2\",\"issb\",\"gri\",\"sasb\"]}\n    ]},\n    {t:\"Trust tags \u2014 what a rater needs to believe your numbers\",items:[\n      {l:\"Base year stated\",k:[\"base year\",\"baseline year\"],warn:true},\n      {l:\"GHG methodology (GHG Protocol \/ ISO 14064)\",k:[\"ghg protocol\",\"greenhouse gas protocol\",\"iso 14064\"],warn:true},\n      {l:\"Market-based \/ location-based (Scope 2)\",k:[\"market-based\",\"location-based\"],warn:true},\n      {l:\"Assurance \/ verification\",k:[\"assurance\",\"assured\",\"verified\",\"third-party verification\",\"limited assurance\"],warn:true}\n    ]}\n  ];\n\n  function runEN(raw){\n    var txt=(raw||\"\").toLowerCase();\n    if(txt.replace(\/\\s\/g,\"\").length<120){return '<div class=\"dc-gauge\"><div class=\"gl\"><h4>Paste a bit more text<\/h4><p>Add at least a paragraph or two of your English disclosure so the check is meaningful.<\/p><\/div><\/div>';}\n    var html=\"\",found=0,tot=0,tagsMissing=0;\n    GROUPS.forEach(function(g){\n      html+='<div class=\"dc-grp\"><h4>'+g.t+'<\/h4>';\n      g.items.forEach(function(it){\n        tot++;var hit=has(txt,it.k);\n        if(hit){found++;html+=item(\"ok\",it.l,\"found: &ldquo;\"+esc(hit)+\"&rdquo;\");}\n        else{if(g.t.indexOf(\"Trust\")===0)tagsMissing++;html+=item(it.warn?\"no\":\"wn\",it.l,\"not found in the text\");}\n      });\n      html+='<\/div>';\n    });\n    \/\/ readability\n    var sents=(raw.match(\/[^.!?]+[.!?]+\/g)||[raw]).filter(function(s){return s.trim().length>0;});\n    var words=(raw.match(\/[A-Za-z][A-Za-z'-]*\/g)||[]);\n    var avg=words.length\/Math.max(sents.length,1);\n    var longS=sents.filter(function(s){return (s.match(\/[A-Za-z][A-Za-z'-]*\/g)||[]).length>40;}).length;\n    var sylTot=0;for(var i=0;i<words.length;i++)sylTot+=syl(words[i]);\n    var flesch=206.835-1.015*avg-84.6*(sylTot\/Math.max(words.length,1));\n    flesch=Math.max(0,Math.min(100,Math.round(flesch)));\n    var rBand=flesch>=45?[\"ok\",\"Reasonably readable\"]:(flesch>=25?[\"wn\",\"Dense \u2014 hard for a non-specialist\"]:[\"no\",\"Very dense \u2014 likely to lose an investor reader\"]);\n    html+='<div class=\"dc-grp\"><h4>English readability<\/h4>'+\n      item(rBand[0],rBand[1],\"Flesch reading ease ~\"+flesch+\" \u00b7 avg sentence \"+Math.round(avg)+\" words\")+\n      item(longS===0?\"ok\":(longS<=3?\"wn\":\"no\"),longS+\" very long sentence\"+(longS===1?\"\":\"s\")+\" (40+ words)\",longS?\"long sentences are where meaning gets lost in translation\":\"\")+\n      '<\/div>';\n    \/\/ gauge\n    var pctv=Math.round(found\/tot*100);\n    var band=pctv>=80&&tagsMissing===0?[\"High\",\"Most expected elements are present.\"]:(pctv>=55?[\"Medium\",\"Solid, but there are gaps a rater would notice.\"]:[\"Low\",\"Several core disclosures appear to be missing.\"]);\n    var gauge='<div class=\"dc-gauge\"><div class=\"big\">'+found+'\/'+tot+'<\/div><div class=\"gl\"><h4>'+band[0]+' coverage signal<\/h4><p>'+band[1]+(tagsMissing?' <strong style=\"color:var(--r)\">'+tagsMissing+' rater-trust tag'+(tagsMissing===1?\"\":\"s\")+' missing<\/strong> \u2014 numbers without a base year, methodology or assurance are discounted.':'')+'<\/p><\/div><\/div>';\n    return gauge+html+'<p class=\"dc-note\" style=\"margin-top:6px\">This scans for the presence of expected elements \u2014 not their accuracy or quality. A clean result still needs a human read.<\/p>';\n  }\n\n  function runBI(th,en){\n    if((th||\"\").replace(\/\\s\/g,\"\").length<80||(en||\"\").replace(\/\\s\/g,\"\").length<80){return '<div class=\"dc-gauge\"><div class=\"gl\"><h4>Paste both versions<\/h4><p>Add enough of the Thai and the matching English text for a meaningful comparison.<\/p><\/div><\/div>';}\n    var A=nums(th),B=nums(en);\n    \/\/ reconcile Buddhist (B.E.) vs Gregorian (C.E.) years \u2014 543-year offset \u2014 so correct year\n    \/\/ conversions aren't flagged as drift; only real figure differences remain.\n    function yrMatch(k,set){var n=+k;if(set[k])return true;if(n>=2400&&n<=2700){var a=(n-543)+\"\";if(set[a])return true;}if(n>=1857&&n<=2157){var b=(n+543)+\"\";if(set[b])return true;}return false;}\n    var onlyTh=[],onlyEn=[];\n    for(var k in A){if(!yrMatch(k,B))onlyTh.push(k);}\n    for(var k2 in B){if(!yrMatch(k2,A))onlyEn.push(k2);}\n    var nA=Object.keys(A).length,nB=Object.keys(B).length;\n    var drift=onlyTh.length+onlyEn.length;\n    var band=drift===0?[\"ok\",\"No figure drift detected\",\"Every distinct number in one version appears in the other.\"]:\n      (drift<=4?[\"wn\",\"Minor figure drift\",\"A few numbers don't match across the two versions \u2014 some may be legitimate (rounding, formatting), some may be errors.\"]:\n      [\"no\",\"Significant figure drift\",\"Many numbers differ between the versions \u2014 a strong sign figures were dropped or mistyped in translation.\"]);\n    var html='<div class=\"dc-gauge\"><div class=\"big\">'+drift+'<\/div><div class=\"gl\"><h4>'+band[1]+'<\/h4><p>'+band[2]+'<\/p><\/div><\/div>';\n    html+='<div class=\"dc-grp\"><h4>Figure comparison<\/h4>'+\n      item(nA&&nB?\"ok\":\"no\",\"Thai has \"+nA+\" distinct figures \u00b7 English has \"+nB,\"a large gap in count often means a table row or metric was dropped\")+\n      item(onlyEn.length?\"no\":\"ok\",onlyEn.length+\" figure(s) in English but not in Thai\",onlyEn.length?\"e.g. \"+esc(onlyEn.slice(0,8).join(\", \")):\"\")+\n      item(onlyTh.length?\"no\":\"ok\",onlyTh.length+\" figure(s) in Thai but not in English\",onlyTh.length?\"e.g. \"+esc(onlyTh.slice(0,8).join(\", \")):\"\")+\n      '<\/div>';\n    \/\/ length sanity\n    var lr=en.replace(\/\\s\/g,\"\").length\/Math.max(th.replace(\/\\s\/g,\"\").length,1);\n    var lrOk=lr>=0.6&&lr<=2.2;\n    html+='<div class=\"dc-grp\"><h4>Length check<\/h4>'+\n      item(lrOk?\"ok\":\"wn\",\"English\/Thai length ratio \"+lr.toFixed(2),lrOk?\"within a normal range\":\"an unusual ratio can hint that a section was shortened or omitted in one version\")+\n      '<\/div>';\n    html+='<p class=\"dc-note\" style=\"margin-top:6px\">Buddhist (B.E.) and Gregorian (C.E.) years are reconciled automatically. Figure matching is exact on the digits; differences from rounding or formatting are flagged too and need a human to judge. It does not check that the words around each number were translated correctly.<\/p>';\n    return html;\n  }\n\n  $(\"dcRun\").addEventListener(\"click\",function(){\n    var out;\n    if(mode===\"en\"){out=runEN($(\"dcEn\").value);}\n    else{out=runBI($(\"dcTh\").value,$(\"dcEn2\").value);}\n    res.innerHTML=out;res.classList.add(\"on\");\n    res.scrollIntoView({behavior:\"smooth\",block:\"start\"});\n  });\n})();\n<\/script>\n\n<script>\n(function(){\n  function init(){\n    document.querySelectorAll('.oth-co').forEach(function(root){\n      if(root.dataset.othInit)return; root.dataset.othInit='1';\n      if('IntersectionObserver' in window){\n        var revObs=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');revObs.unobserve(e.target);}});},{threshold:.12,rootMargin:'0px 0px -50px 0px'});\n        root.querySelectorAll('[data-reveal],[data-reveal-stagger]').forEach(function(el){revObs.observe(el);});\n        var cObs=new IntersectionObserver(function(es){es.forEach(function(e){\n          if(!e.isIntersecting)return;var el=e.target;if(el.dataset.counted)return;el.dataset.counted='1';\n          var to=parseFloat(el.dataset.countTo),dec=parseInt(el.dataset.countDecimals||'0',10),dur=1800,start=performance.now();\n          var hasComma=(el.textContent||'').indexOf(',')!==-1;\n          function fmt(n){var v=dec>0?n.toFixed(dec):Math.floor(n).toString();if(hasComma&&dec===0){v=v.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g,',');}return v;}\n          function tick(now){var p=Math.min((now-start)\/dur,1),eased=1-Math.pow(1-p,3);el.textContent=fmt(to*eased);if(p<1){requestAnimationFrame(tick);}else{el.textContent=fmt(to);}}\n          requestAnimationFrame(tick);cObs.unobserve(el);\n        });},{threshold:.5});\n        root.querySelectorAll('[data-count-to]').forEach(function(el){cObs.observe(el);});\n      }else{\n        root.querySelectorAll('[data-reveal],[data-reveal-stagger]').forEach(function(el){el.classList.add('in');});\n      }\n    });\n  }\n  if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init);}else{init();}\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Free tool \u00b7 Disclosure checker Runs in your browser \u00b7 nothing is uploaded Home\/Free Tools\/Disclosure Checker Paste a disclosure. See the gaps in seconds. ESG Disclosure Checker. A fast triage for your ESG disclosure. Check an English section for the elements raters look for and how it reads \u2014 or paste your Thai and English [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_focuskw":"","_yoast_wpseo_canonical":"","rank_math_title":"ESG Disclosure Checker (Free, Private, In-Browser) | Othello","rank_math_description":"Free browser-based ESG disclosure checker for Thai listed companies: framework & methodology coverage, English readability, and Thai\/English figure consistency. Nothing is uploaded or stored.","rank_math_focus_keyword":"","rank_math_canonical_url":"","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_meta-robots-nofollow":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","footnotes":"","rank_math_robots":[]},"class_list":["post-32181","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/pages\/32181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/comments?post=32181"}],"version-history":[{"count":5,"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/pages\/32181\/revisions"}],"predecessor-version":[{"id":32430,"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/pages\/32181\/revisions\/32430"}],"wp:attachment":[{"href":"https:\/\/www.othellointernational.com\/th\/wp-json\/wp\/v2\/media?parent=32181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}