Singapore SGX Climate Reporting Platform
Sustainability reporting software. Singapore SGX climate reporting software. Climate disclosures aligned to ISSB for issuers listed on the SGX, with phased timelines and outputs re ady for assurance. @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap'); /* hide Dawn theme native purchase UI */ .product-form, .product__quantity, .price__container, .price, .product__tax, .product-form__buttons, .shopify-payment-button, .payment-button, [data-productid] form, .product__info-container .price, .product__info-container .product-form { display: none !important; } .ux *, .ux *::before, .ux *::after { margin:0; padding:0; box-sizing:border-box; } .ux img { display:block; max-width:100%; height:auto; } .ux button { font-family:inherit; cursor:pointer; } .ux { --navy:#0A1628; --navy2:#0F1E38; --teal:#4E9D8F; --teal-l:#6DB8AC; --teal-x:#9FD3CB; --page:#F7F7F5; --card:#FFFFFF; --ink:#1A2533; --mut:#5A6570; --rule:rgba(10,22,40,0.08); --r:12px; --r-lg:18px; --sh-sm:0 1px 2px rgba(10,22,40,.05); --sh:0 6px 24px rgba(10,22,40,.10); --sh-lg:0 24px 60px rgba(10,22,40,.18); font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:var(--ink); line-height:1.6; background:var(--page); max-width:1080px; margin:0 auto; padding:0 24px; } .ux .serif { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; letter-spacing:.2px; } .ux .eyebrow { font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:500; color:var(--teal); } .ux .sec { margin:84px 0; } .ux .h2 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(28px,4.2vw,44px); color:var(--navy); line-height:1.1; letter-spacing:.2px; margin:8px 0 0; } .ux .center { text-align:center; } /* hero */ .ux .hero { background:var(--navy); border-radius:var(--r-lg); padding:clamp(36px,5vw,64px); margin-top:20px; position:relative; overflow:hidden; } .ux .hero::before { content:''; position:absolute; top:-140px; right:-120px; width:460px; height:460px; background:radial-gradient(circle,rgba(78,157,143,.20),transparent 70%); } .ux .hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; } .ux .hero-badge { display:inline-block; background:rgba(78,157,143,.16); border:1px solid rgba(109,184,172,.45); color:var(--teal-x); padding:6px 14px; border-radius:20px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; margin-bottom:20px; } .ux .hero h1 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(34px,4.6vw,56px); color:#fff; line-height:1.06; letter-spacing:.3px; margin-bottom:16px; } .ux .hero h1 em { font-style:normal; color:var(--teal-x); } .ux .hero p { font-size:16px; color:rgba(255,255,255,.78); margin-bottom:22px; max-width:520px; } .ux .chips { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; } .ux .chip { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.85); padding:5px 12px; border-radius:6px; font-size:12px; font-weight:500; } .ux .shot { border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.12); box-shadow:var(--sh-lg); background:#0c1a30; } .ux .shot-bar { display:flex; gap:6px; padding:10px 12px; background:#0c1a30; border-bottom:1px solid rgba(255,255,255,.08); } .ux .shot-bar i { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.18); display:block; } .ux .shot img { width:100%; } .ux .hero-photo { border-radius:14px; overflow:hidden; box-shadow:var(--sh-lg); border:1px solid rgba(255,255,255,.12); aspect-ratio:4/3; } .ux .hero-photo img { width:100%; height:100%; object-fit:cover; display:block; } .ux .imgband { position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:300px; display:flex; align-items:flex-end; box-shadow:var(--sh); } .ux .imgband img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; } .ux .imgband::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,22,40,.88),rgba(10,22,40,.32)); } .ux .imgband-in { position:relative; z-index:1; padding:clamp(30px,5vw,54px); max-width:600px; } .ux .imgband-in .eyebrow { color:var(--teal-x); } .ux .imgband-in h2 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(26px,3.6vw,38px); color:#fff; line-height:1.12; margin:8px 0 0; } .ux .imgband-in p { color:rgba(255,255,255,.82); font-size:15px; line-height:1.6; margin-top:12px; } .ux .cta-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:.26; } /* hero (hybrid: light, human, live GHG panel) */ .ux .heroX { display:grid; grid-template-columns:1.04fr .96fr; background:#fff; border:1px solid var(--rule); border-radius:var(--r-lg); overflow:hidden; min-height:544px; margin-top:20px; box-shadow:var(--sh); } .ux .heroX-left { align-self:center; padding:clamp(34px,4.2vw,58px); } .ux .heroX-eyebrow { font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.15em; font-size:11px; font-weight:500; color:var(--teal); } .ux .heroX-h1 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(40px,5vw,62px); color:var(--navy); line-height:1.04; letter-spacing:.2px; margin:14px 0 16px; } .ux .heroX-h1 em { font-style:normal; color:var(--teal); } .ux .heroX-lead { font-size:16px; line-height:1.62; color:var(--mut); max-width:440px; margin-bottom:22px; } .ux .heroX-chips { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; } .ux .heroX-chips span { background:#F2F5F3; border:1px solid var(--rule); color:var(--ink); padding:6px 13px; border-radius:20px; font-size:12px; font-weight:500; } .ux .heroX-ctas { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:16px; } .ux .heroX-btn { text-decoration:none; padding:15px 26px; border-radius:10px; font-size:15px; font-weight:700; transition:transform .15s,background .2s; } .ux .heroX-btn.primary { background:var(--teal); color:#fff; box-shadow:0 10px 24px rgba(78,157,143,.4); } .ux .heroX-btn.primary:hover { background:var(--teal-l); transform:translateY(-2px); } .ux .heroX-btn.ghost { color:var(--navy); border:1px solid var(--rule); } .ux .heroX-btn.ghost:hover { background:#F2F5F3; } .ux .heroX-auth { display:flex; gap:14px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--mut); } .ux .heroX-auth span { position:relative; padding-left:14px; } .ux .heroX-auth span::before { content:''; position:absolute; left:0; top:3px; width:6px; height:6px; border-radius:50%; background:var(--teal); } .ux .heroX-stage { position:relative; background:linear-gradient(158deg,#E4F2ED 0%,#CBE6DF 100%); overflow:hidden; } .ux .heroX-stage::before { content:''; position:absolute; top:-120px; right:-90px; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle,rgba(78,157,143,.28),transparent 68%); } .ux .heroX-photo { position:absolute; top:44px; right:-26px; width:72%; aspect-ratio:3/4; border-radius:16px; overflow:hidden; box-shadow:0 20px 46px rgba(10,22,40,.24); border:3px solid #fff; } .ux .heroX-photo img { width:100%; height:100%; object-fit:cover; display:block; } .ux .heroX-pill { position:absolute; top:26px; left:24px; z-index:3; background:var(--navy); color:#fff; padding:9px 15px; border-radius:22px; font-size:12px; font-weight:600; box-shadow:0 8px 20px rgba(10,22,40,.22); animation:hxfloat2 6.8s ease-in-out infinite; } .ux .heroX-pill b { color:var(--teal-x); } .ux .heroX-panel { position:absolute; bottom:34px; left:22px; z-index:3; width:64%; background:#fff; border-radius:14px; padding:16px 18px; box-shadow:0 16px 40px rgba(10,22,40,.24); animation:hxfloat 5.5s ease-in-out infinite; } .ux .heroX-ph { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; } .ux .heroX-ph b { font-size:12px; color:var(--mut); font-weight:600; text-transform:uppercase; letter-spacing:.05em; } .ux .heroX-live { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; color:var(--teal); } .ux .heroX-live i { width:8px; height:8px; border-radius:50%; background:var(--teal); animation:hxpulse 1.6s ease-in-out infinite; } @keyframes hxpulse { 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.18); opacity:.7; } } .ux .heroX-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; } .ux .heroX-row b { font-size:11.5px; color:var(--ink); width:58px; flex-shrink:0; font-weight:500; } .ux .heroX-bar { flex:1; height:8px; border-radius:5px; background:rgba(10,22,40,.07); overflow:hidden; } .ux .heroX-bar i { display:block; position:relative; overflow:hidden; height:100%; border-radius:5px; background:linear-gradient(90deg,var(--teal),var(--teal-l)); width:0; animation:hxgrow 1.4s cubic-bezier(.2,.7,.2,1) forwards; } .ux .heroX-bar i::after { content:''; position:absolute; top:0; left:0; height:100%; width:55%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); transform:translateX(-120%); animation:hxshimmer 3.2s ease-in-out infinite; animation-delay:1.5s; } @keyframes hxshimmer { 0%{ transform:translateX(-120%); } 55%,100%{ transform:translateX(330%); } } @keyframes hxfloat { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-7px); } } @keyframes hxfloat2 { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(5px); } } .ux .heroX-row:nth-child(3) .heroX-bar i { animation-delay:.15s; } .ux .heroX-row:nth-child(4) .heroX-bar i { animation-delay:.3s; } @keyframes hxgrow { to { width:var(--w); } } .ux .heroX-tot { margin-top:12px; padding-top:12px; border-top:1px solid var(--rule); display:flex; align-items:baseline; gap:8px; } .ux .heroX-tot b { font-family:'IBM Plex Sans',sans-serif; font-size:26px; color:var(--navy); } .ux .heroX-tot small { font-size:11.5px; color:var(--mut); } @media (max-width:820px){ .ux .heroX{ grid-template-columns:1fr; } .ux .heroX-stage{ min-height:440px; } } /* plans / pricing */ .ux .plan-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:stretch; } .ux .plan { background:var(--card); border:1px solid var(--rule); border-radius:var(--r-lg); padding:30px 26px; box-shadow:var(--sh-sm); display:flex; flex-direction:column; position:relative; height:100%; } .ux .plan-feat { border:2px solid var(--teal); box-shadow:var(--sh); } .ux .plan-ent { background:var(--navy); } .ux .plan-ent h3, .ux .plan-ent .plan-price { color:#fff; } .ux .plan-ent .plan-sub, .ux .plan-ent .plan-list li { color:rgba(255,255,255,.75); } .ux .plan-ent .plan-list li::before { background:var(--teal-l); } .ux .plan-tag { display:inline-block; align-self:flex-start; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.1em; font-size:10px; font-weight:500; color:var(--teal); background:rgba(78,157,143,.1); padding:4px 10px; border-radius:20px; margin-bottom:14px; } .ux .plan-ent .plan-tag { color:var(--teal-x); background:rgba(78,157,143,.2); } .ux .plan h3 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:26px; color:var(--navy); line-height:1.1; margin-bottom:8px; } .ux .plan-price { font-family:'IBM Plex Sans',sans-serif; font-size:19px; font-weight:600; color:var(--navy); line-height:1; margin-bottom:10px; } .ux .plan-price span { font-family:'IBM Plex Sans',sans-serif; font-size:13px; color:var(--mut); font-weight:400; } .ux .plan-ent .plan-price span { color:rgba(255,255,255,.6); } .ux .plan-btn-price { display:block; font-size:11.5px; font-weight:500; color:var(--mut); margin-top:3px; } .ux .plan-sub { font-size:13px; color:var(--mut); line-height:1.6; margin-bottom:18px; } .ux .plan-list { list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:22px; flex:1; } .ux .plan-list li { display:flex; gap:9px; font-size:13.5px; color:var(--ink); line-height:1.45; } .ux .plan-list li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--teal); margin-top:6px; flex-shrink:0; } .ux .plan-btn { display:block; text-align:center; text-decoration:none; padding:13px 20px; font-size:14.5px; font-weight:700; border-radius:9px; transition:background .2s,transform .15s,border-color .2s; } .ux .plan-btn.primary { background:var(--teal); color:#fff; box-shadow:0 6px 18px rgba(78,157,143,.35); } .ux .plan-btn.primary:hover { background:var(--teal-l); transform:translateY(-2px); } .ux .plan-btn.ghost { background:transparent; color:var(--navy); border:1px solid var(--rule); } .ux .plan-btn.ghost:hover { background:var(--page); border-color:rgba(10,22,40,.2); transform:translateY(-2px); } .ux .plan-ent .plan-btn.ghost { color:#fff; border-color:rgba(255,255,255,.28); } .ux .plan-ent .plan-btn.ghost:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.3); } .ux .plan-buy { margin-top:10px; } .ux .plan-buy .plan-btn.ghost { width:100%; } .ux .plan-note { display:flex; align-items:center; justify-content:center; min-height:60px; text-align:center; font-size:12px; color:var(--mut); margin-top:10px; } .ux .plan-ent .plan-note { color:var(--teal-x); font-size:13px; font-weight:500; } /* trust row */ .ux .trust { display:flex; justify-content:center; gap:26px; flex-wrap:wrap; margin-top:30px; } .ux .trust span { display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--mut); font-weight:500; } .ux .trust svg { width:15px; height:15px; color:var(--teal); } /* bento */ .ux .bento { display:grid; grid-template-columns:1.35fr 1fr; grid-auto-rows:minmax(210px,auto); gap:16px; } .ux .bento-card { border-radius:var(--r-lg); padding:28px; overflow:hidden; position:relative; display:flex; flex-direction:column; justify-content:space-between; box-shadow:var(--sh-sm); } .ux .bnavy { background:var(--navy); } .ux .blight { background:var(--card); border:1px solid var(--rule); justify-content:flex-start; } .ux .bnavy h3 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:27px; color:#fff; line-height:1.1; margin-bottom:8px; } .ux .bnavy p { font-size:13.5px; color:rgba(255,255,255,.72); line-height:1.6; max-width:360px; } .ux .blight h3 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:24px; color:var(--navy); margin:20px 0 6px; } .ux .blight p { font-size:13.5px; color:var(--mut); line-height:1.6; } .ux .s3bars { margin-top:22px; display:flex; flex-direction:column; gap:11px; } .ux .s3row { display:flex; align-items:center; gap:12px; } .ux .s3row span { font-size:12px; color:rgba(255,255,255,.82); width:134px; flex-shrink:0; } .ux .s3row i { position:relative; overflow:hidden; height:8px; border-radius:5px; background:linear-gradient(90deg,var(--teal),var(--teal-l)); display:block; width:0; animation:s3grow 1.3s cubic-bezier(.2,.7,.2,1) forwards; } .ux .s3row i::after { content:''; position:absolute; top:0; left:0; height:100%; width:55%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent); transform:translateX(-120%); animation:hxshimmer 3.6s ease-in-out infinite; animation-delay:1.4s; } @keyframes s3grow { to { width:var(--w); } } .ux .gauge { position:relative; width:128px; height:128px; animation:gaugebreathe 4.5s ease-in-out infinite; } @keyframes gaugebreathe { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.035); } } .ux .gauge svg { transform:rotate(-90deg); width:128px; height:128px; } .ux .g-track { fill:none; stroke:rgba(10,22,40,.08); stroke-width:12; } .ux .g-fill { fill:none; stroke:var(--teal); stroke-width:12; stroke-linecap:round; stroke-dasharray:327; stroke-dashoffset:327; animation:gfill 1.5s ease forwards; } @keyframes gfill { to { stroke-dashoffset:26; } } .ux .gauge-num { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 22px; text-align:center; } .ux .gauge-num b { font-family:'IBM Plex Sans',sans-serif; font-size:30px; color:var(--navy); line-height:1; } .ux .gauge-num small { font-size:10px; color:var(--mut); margin-top:4px; line-height:1.2; max-width:66px; } .ux .speed { margin-top:26px; } .ux .speed-track { position:relative; height:10px; border-radius:6px; background:rgba(255,255,255,.1); } .ux .speed-track i { position:absolute; left:0; top:0; bottom:0; width:0; border-radius:6px; background:linear-gradient(90deg,var(--teal),var(--teal-l)); animation:spgrow 1.3s ease forwards; } @keyframes spgrow { to { width:22%; } } .ux .speed-marker { position:absolute; left:22%; top:-24px; transform:translateX(-50%); font-size:11px; font-weight:600; color:var(--teal-x); background:rgba(78,157,143,.18); padding:2px 9px; border-radius:10px; white-space:nowrap; animation:markerfloat 5s ease-in-out infinite; } @keyframes markerfloat { 0%,100%{ transform:translateX(-50%) translateY(0); } 50%{ transform:translateX(-50%) translateY(-4px); } } .ux .speed-scale { display:flex; justify-content:space-between; margin-top:9px; font-size:11px; color:rgba(255,255,255,.5); } .ux .bphoto { padding:0; min-height:230px; } .ux .bphoto img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; } .ux .bphoto::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,22,40,.08),rgba(10,22,40,.84)); } .ux .bphoto-in { position:relative; z-index:1; margin-top:auto; padding:26px 28px; } .ux .bphoto-in h3 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:24px; color:#fff; margin-bottom:6px; } .ux .bphoto-in p { font-size:13px; color:rgba(255,255,255,.88); max-width:320px; } /* stats */ .ux .stats { background:var(--navy); border-radius:var(--r-lg); padding:44px 28px; display:grid; grid-template-columns:repeat(4,1fr); } .ux .stat { text-align:center; padding:0 14px; position:relative; } .ux .stat+.stat::before { content:''; position:absolute; left:0; top:8px; bottom:8px; width:1px; background:rgba(255,255,255,.12); } .ux .stat b { display:block; font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(34px,5vw,50px); color:var(--teal-x); line-height:1; } .ux .stat small { display:block; font-size:12.5px; color:rgba(255,255,255,.6); margin-top:8px; } /* feature rows */ .ux .feat { display:flex; gap:52px; align-items:center; margin-bottom:64px; } .ux .feat:last-child { margin-bottom:0; } .ux .feat.rev { flex-direction:row-reverse; } .ux .feat-img { flex:0 0 54%; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-lg); border:1px solid var(--rule); background:var(--card); } .ux .feat-txt { flex:1; min-width:0; } .ux .feat-txt h3 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(23px,3vw,30px); color:var(--navy); line-height:1.15; margin:8px 0 12px; } .ux .feat-txt p { font-size:15px; color:var(--mut); line-height:1.7; } .ux .flist { list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:9px; } .ux .flist li { display:flex; gap:10px; font-size:14px; color:var(--ink); } .ux .flist li::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--teal); margin-top:6px; flex-shrink:0; } /* data & security */ .ux .modes { display:grid; grid-template-columns:1fr 1fr; gap:18px; } .ux .mode { background:var(--card); border:1px solid var(--rule); border-radius:var(--r-lg); padding:30px; box-shadow:var(--sh-sm); } .ux .mode-ic { width:42px; height:42px; border-radius:11px; background:rgba(78,157,143,.12); display:flex; align-items:center; justify-content:center; margin-bottom:16px; } .ux .mode-ic svg { width:22px; height:22px; color:var(--teal); } .ux .mode h3 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:23px; color:var(--navy); line-height:1.15; margin-bottom:10px; } .ux .mode p { font-size:14.5px; color:var(--mut); line-height:1.7; } .ux .secrow { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:22px; } .ux .secitem { display:flex; gap:11px; font-size:13.5px; color:var(--mut); line-height:1.55; } .ux .secitem svg { width:19px; height:19px; color:var(--teal); flex-shrink:0; margin-top:1px; } .ux .secitem b { display:block; color:var(--ink); font-weight:600; font-size:14px; margin-bottom:2px; } /* comparison */ .ux .cmp-wrap { overflow-x:auto; border:1px solid var(--rule); border-radius:var(--r-lg); box-shadow:var(--sh-sm); background:var(--card); } .ux .cmp { width:100%; border-collapse:collapse; font-size:14px; min-width:560px; } .ux .cmp th, .ux .cmp td { padding:15px 18px; text-align:left; border-bottom:1px solid var(--rule); } .ux .cmp thead th { font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--mut); font-weight:500; } .ux .cmp thead th.col-us { color:var(--navy); font-weight:700; } .ux .cmp .feat-name { color:var(--ink); font-weight:500; } .ux .cmp .col-us { background:rgba(78,157,143,.08); } .ux .cmp td.col-us { color:var(--navy); font-weight:600; } .ux .cmp tbody tr:last-child td { border-bottom:none; } .ux .cmp .yes { color:var(--teal); font-weight:700; } .ux .cmp .no { color:var(--mut); } /* pain points */ .ux .pains { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; } .ux .pain { background:var(--card); border:1px solid var(--rule); border-radius:var(--r); padding:22px; box-shadow:var(--sh-sm); } .ux .pain h4 { font-size:14px; font-weight:700; color:#9B2020; margin-bottom:8px; } .ux .pain p { font-size:13px; color:var(--mut); line-height:1.6; } .ux .pain .fix { margin-top:12px; padding-top:12px; border-top:1px solid var(--rule); font-size:13px; font-weight:600; color:#2F6F62; display:flex; gap:8px; } .ux .pain .fix svg { width:16px; height:16px; flex-shrink:0; color:#2F6F62; margin-top:1px; } /* steps */ .ux .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; } .ux .step { text-align:center; } .ux .step b { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; background:var(--navy); color:#fff; border-radius:50%; font-family:'IBM Plex Sans',sans-serif; font-size:22px; margin-bottom:14px; } .ux .step h3 { font-size:16px; font-weight:600; color:var(--navy); margin-bottom:6px; } .ux .step p { font-size:13.5px; color:var(--mut); line-height:1.6; } /* included */ .ux .incl { background:var(--navy); border-radius:var(--r-lg); padding:clamp(36px,5vw,56px); } .ux .incl .h2 { color:#fff; } .ux .incl .eyebrow { color:var(--teal-x); } .ux .incl-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; margin-top:32px; } .ux .incl-item { display:flex; gap:11px; font-size:14px; color:rgba(255,255,255,.82); } .ux .incl-item svg { width:18px; height:18px; color:var(--teal-l); flex-shrink:0; margin-top:2px; } /* faq */ .ux .faq { border-top:1px solid var(--rule); } .ux .faq details { border-bottom:1px solid var(--rule); } .ux .faq summary { list-style:none; cursor:pointer; padding:20px 0; font-size:15px; font-weight:600; color:var(--navy); display:flex; justify-content:space-between; gap:16px; } .ux .faq summary::-webkit-details-marker { display:none; } .ux .faq summary::after { content:'+'; color:var(--teal); font-size:20px; line-height:1; } .ux .faq details[open] summary::after { content:'\2013'; } .ux .faq p { padding:0 0 20px; font-size:14px; color:var(--mut); line-height:1.7; } /* related insights */ .ux .ri { border-top:1px solid var(--rule); } .ux .ri a { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 4px; border-bottom:1px solid var(--rule); text-decoration:none; transition:padding-left .15s; } .ux .ri a:hover { padding-left:10px; } .ux .ri .ri-t { display:block; font-family:'IBM Plex Sans',sans-serif; font-size:20px; color:var(--navy); line-height:1.2; } .ux .ri .ri-d { display:block; font-size:13.5px; color:var(--mut); margin-top:4px; } .ux .ri .ri-arw { color:var(--teal); font-size:22px; flex-shrink:0; } /* cta */ .ux .cta { background:var(--navy); border-radius:var(--r-lg); padding:clamp(44px,6vw,68px); text-align:center; position:relative; overflow:hidden; } .ux .cta::before { content:''; position:absolute; top:-100px; right:-80px; width:360px; height:360px; background:radial-gradient(circle,rgba(78,157,143,.16),transparent 70%); } .ux .cta-in { position:relative; z-index:1; } .ux .cta .eyebrow { color:var(--teal-x); } .ux .cta h2 { font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(28px,4vw,42px); color:#fff; line-height:1.1; margin:8px 0 10px; } .ux .cta p { color:rgba(255,255,255,.65); font-size:15px; margin-bottom:28px; } .ux .foot { padding:36px 0; text-align:center; font-size:12px; color:#9aa3ad; border-top:1px solid var(--rule); margin-top:56px; } @media (max-width:820px){ .ux .hero-grid{ grid-template-columns:1fr; gap:28px; } .ux .feat,.ux .feat.rev{ flex-direction:column; gap:24px; } .ux .feat-img{ flex:none; width:100%; } .ux .stats{ grid-template-columns:repeat(2,1fr); gap:24px; } .ux .stat+.stat::before{ display:none; } .ux .steps{ grid-template-columns:1fr; } .ux .sec{ margin:56px 0; } .ux .modes{ grid-template-columns:1fr; } .ux .secrow{ grid-template-columns:1fr; } .ux .plan-grid{ grid-template-columns:1fr; } .ux .bento{ grid-template-columns:1fr; } } .ux .trial-primary { display:inline-block; background:var(--teal); color:#fff; text-decoration:none; padding:15px 32px; font-size:16px; font-weight:700; border-radius:9px; box-shadow:0 8px 22px rgba(78,157,143,.4); transition:background .2s,transform .15s; } .ux .trial-primary:hover { background:var(--teal-l); transform:translateY(-2px); } .ux .ent { margin-top:20px; } .ux .cta-sub { margin-top:16px; font-size:13.5px; color:rgba(255,255,255,.55); } .ux .cta-sub a { color:var(--teal-x); font-weight:600; text-decoration:none; } .ux .plan-ent h3, .ux .plan-ent .plan-price { color:#fff; } .ux .plan-cta { display:flex; flex-direction:column; gap:10px; min-height:128px; margin-top:4px; } .ux .plan-cta form.plan-buy { width:100%; margin:0; } .ux .plan-cta .plan-btn.tall { flex:1; display:flex; align-items:center; justify-content:center; font-size:16px; } The ISSB global baseline · IFRS S1 & S2 · Singapore SGX climate reporting,structured and complete Complete your IFRS S1 and S2 climate disclosures with a guided, end-to-end workflow, built on the ISSB global baseline, with phased SGX timelines and GHG factors matched to your reporting year. IFRS S1IFRS S2SGXPhased timelinesScenario analysisAssurance-ready Start my free 7-day trial See plans and pricing Built on IFRS S1 and S2EMA / NEA and IPCC factorsSGX phased timelines Scope 1, 2 & 3 built in GHG inventoryLive Scope 1 Scope 2 Scope 3 12,480tCO2e, Scope 1–3 .elsamp{ margin:28px 0 0; } .elsamp-card{ display:grid; grid-template-columns:300px 1fr; gap:34px; align-items:center; background:var(--card,#fff); border:1px solid var(--rule,rgba(10,22,40,.08)); border-radius:var(--r-lg,18px); padding:30px 34px; box-shadow:var(--sh,0 6px 24px rgba(10,22,40,.10)); position:relative; overflow:hidden; } .elsamp-card::before{ content:''; position:absolute; top:-120px; right:-90px; width:320px; height:320px; background:radial-gradient(circle,rgba(78,157,143,.13),transparent 70%); pointer-events:none; } .elsamp-shot{ position:relative; z-index:1; } .elsamp-shot img{ display:block; width:100%; height:auto; } .elsamp-body{ position:relative; z-index:1; min-width:0; } .elsamp-eyebrow{ font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:500; color:var(--teal,#4E9D8F); } .elsamp-body h3{ font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:clamp(21px,2.6vw,27px); color:var(--navy,#0A1628); line-height:1.18; margin:9px 0 10px; max-width:560px; } .elsamp-body p{ font-size:14.5px; line-height:1.65; color:var(--mut,#5A6570); margin:0 0 16px; max-width:520px; } .elsamp-meta{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; } .elsamp-meta span{ background:#F2F5F3; border:1px solid var(--rule,rgba(10,22,40,.08)); color:var(--ink,#1A2533); padding:5px 12px; border-radius:20px; font-size:12px; font-weight:500; } .elsamp-go{ display:inline-flex; align-items:center; gap:9px; background:var(--teal,#4E9D8F); color:#fff; border:0; padding:14px 26px; border-radius:10px; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; text-decoration:none; box-shadow:0 8px 22px rgba(78,157,143,.36); transition:background .2s,transform .15s; } .elsamp-go:hover{ background:var(--teal-l,#6DB8AC); transform:translateY(-2px); } .elsamp-go svg{ width:17px; height:17px; flex-shrink:0; } @media (max-width:820px){ .elsamp-card{ grid-template-columns:1fr; gap:22px; padding:26px 22px; } .elsamp-shot{ max-width:230px; } } /* ── modal ─────────────────────────────────────────────────────────────── */ .elsamp-ov{ position:fixed; inset:0; z-index:2147483000; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(10,22,40,.62); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; line-height:1.6; color:#1A2533; } .elsamp-ov.is-open{ display:flex; } .elsamp-box{ background:#fff; border-radius:18px; width:100%; max-width:920px; max-height:92vh; overflow:auto; position:relative; box-shadow:0 24px 60px rgba(10,22,40,.34); display:grid; grid-template-columns:290px 1fr; animation:elsampIn .22s cubic-bezier(.2,.7,.2,1); } @keyframes elsampIn{ from{ opacity:0; transform:translateY(14px) scale(.985); } to{ opacity:1; transform:none; } } .elsamp-aside{ background:linear-gradient(158deg,#E4F2ED 0%,#CBE6DF 100%); padding:30px 26px; display:flex; flex-direction:column; justify-content:center; } .elsamp-aside img{ display:block; width:100%; height:auto; } .elsamp-aside .elsamp-eyebrow{ margin-bottom:10px; } .elsamp-aside ul{ list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; } .elsamp-aside li{ display:flex; gap:9px; font-size:13px; color:#0A1628; line-height:1.45; } .elsamp-aside li::before{ content:''; width:6px; height:6px; border-radius:50%; background:#4E9D8F; margin-top:6px; flex-shrink:0; } .elsamp-main{ padding:32px 34px 28px; min-width:0; } .elsamp-x{ position:absolute; top:14px; right:16px; width:34px; height:34px; border:0; border-radius:50%; background:rgba(10,22,40,.06); color:#0A1628; font-size:20px; line-height:1; cursor:pointer; font-family:inherit; z-index:2; } .elsamp-x:hover{ background:rgba(10,22,40,.12); } .elsamp-main h2{ font-family:'IBM Plex Sans',sans-serif; font-weight:700; letter-spacing:-.01em; font-size:25px; color:#0A1628; line-height:1.16; margin:8px 0 6px; } .elsamp-main > form > div > p, .elsamp-done > p{ font-size:14px; color:#5A6570; margin:0 0 16px; } .elsamp-f{ display:flex; flex-direction:column; gap:12px; } .elsamp-two{ display:grid; grid-template-columns:1fr 1fr; gap:12px; } .elsamp-fld label{ display:block; font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.1em; font-size:10.5px; font-weight:500; color:#5A6570; margin-bottom:6px; } .elsamp-fld input, .elsamp-fld select{ width:100%; padding:12px 13px; border:1px solid rgba(10,22,40,.16); border-radius:9px; font-size:14.5px; font-family:inherit; color:#1A2533; background:#fff; box-sizing:border-box; -webkit-appearance:none; appearance:none; } .elsamp-fld select{ background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6570' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 11px center; background-size:16px; padding-right:34px; } .elsamp-fld input:focus, .elsamp-fld select:focus{ outline:0; border-color:#4E9D8F; box-shadow:0 0 0 3px rgba(78,157,143,.16); } .elsamp-check{ display:flex; gap:10px; align-items:flex-start; font-size:12.5px; color:#5A6570; line-height:1.5; } .elsamp-check input{ width:16px; height:16px; margin-top:2px; flex-shrink:0; accent-color:#4E9D8F; } .elsamp-check a{ color:#4E9D8F; } .elsamp-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; } .elsamp-err{ font-size:13px; color:#9B2020; font-weight:600; display:none; margin:0; } .elsamp-err.is-on{ display:block; } .elsamp-submit{ background:#4E9D8F; color:#fff; border:0; padding:15px 22px; border-radius:10px; font-size:15.5px; font-weight:700; font-family:inherit; cursor:pointer; width:100%; box-shadow:0 8px 22px rgba(78,157,143,.36); transition:background .2s; } .elsamp-submit:hover{ background:#6DB8AC; } .elsamp-submit[disabled]{ opacity:.6; cursor:default; } .elsamp-done{ display:none; } .elsamp-done.is-on{ display:block; } .elsamp-tick{ width:46px; height:46px; border-radius:50%; background:rgba(78,157,143,.14); display:flex; align-items:center; justify-content:center; margin-bottom:16px; } .elsamp-tick svg{ width:24px; height:24px; color:#4E9D8F; } .elsamp-acts{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; } .elsamp-act{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; cursor:pointer; padding:13px 22px; border-radius:10px; font-size:14.5px; font-weight:700; font-family:inherit; border:1px solid transparent; } .elsamp-act.primary{ background:#4E9D8F; color:#fff; box-shadow:0 8px 22px rgba(78,157,143,.36); } .elsamp-act.primary:hover{ background:#6DB8AC; } .elsamp-act.ghost{ background:#fff; color:#0A1628; border-color:rgba(10,22,40,.16); } .elsamp-act.ghost:hover{ background:#F2F5F3; } .elsamp-act svg{ width:16px; height:16px; } @media (max-width:760px){ .elsamp-box{ grid-template-columns:1fr; } .elsamp-aside{ display:none; } .elsamp-main{ padding:44px 22px 26px; } .elsamp-two{ grid-template-columns:1fr; } } See the actual output The disclosure pack, exactly as EcoLedger produces it A complete ISSB-basis climate disclosure with the SGX Mainboard cohort and phase-in position stated. Governance, strategy, scenario analysis, the full greenhouse gas inventory and the metrics and targets register, with an IRO register and a datapoint coverage table behind them. SGX listing rulesIFRS S1 & S2PDF, Word & Excel View a Sample Report × Inside the sample Governance and risk management Three scenarios to 2030 and 2050 Scope 1, 2 and 3 with all 15 categories Targets, assurance position and sign-off Sample report Request the sample report Then view it online or download the PDF, whichever you prefer. First name Last name Work email Your role Select… Sustainability / ESG lead Finance / CFO ESG analyst Company secretary / governance Consultant / advisor Auditor / assurance Other Framework focus ISSB / IFRS S1 & S2 CSRD / ESRS EU Taxonomy UK SRS Carbon accounting / GHG Protocol California SB 253 & SB 261 Other / not sure I agree to receive launch updates and resources from EcoLedger. I can unsubscribe any time. See our privacy policy. Leave this empty Unlock the sample report Your sample is ready Read it in your browser, or download the PDF to keep. View online Download PDF (function(){ /* ════════════ SET THESE VALUES ═════════════════════════════════════════ 1. SAMPLE_URL the file's Shopify Files URL (Content > Files > Upload) 2. SHOT_URL the preview image's Files URL (leave '' to hide the image) 3. HS_FORM the HubSpot form GUID this submits to 4. HS_PORTAL your HubSpot portal ID (already filled in) The block hides itself entirely until SAMPLE_URL is set, so a half-finished paste can never show a customer a broken button. */ var SAMPLE_URL = 'https://cdn.shopify.com/s/files/1/0958/1730/2341/files/EcoLedger_Sample_SG_IFRS_S1_and_S2_SGX.pdf?v=1787509040'; /* e.g. 'https://cdn.shopify.com/s/files/1/0958/1730/2341/files/EcoLedger_Sample_SG_IFRS_S1_and_S2_SGX.pdf?v=123' */ var SHOT_URL = 'https://cdn.shopify.com/s/files/1/0958/1730/2341/files/EcoLedger_sample_preview_SG_IFRS_S1_and_S2_SGX.png?v=1787509041'; /* e.g. 'https://cdn.shopify.com/s/files/1/0958/1730/2341/files/EcoLedger_sample_preview_SG_IFRS_S1_and_S2_SGX.png?v=123' */ var HS_FORM = '4947440f-e811-42d2-a0de-d15a3e124893'; /* EcoLedger — Sample report request */ var HS_PORTAL = '148816334'; var HS_REGION = 'eu1'; /* your HubSpot account is on EU1 */ var HS_SUBSCRIPTION = 3309258980; /* Newsletter subscription type */ var FILENAME = 'EcoLedger_Sample_SG_IFRS_S1_and_S2_SGX.pdf'; /* the name the download is saved as */ var PAGE_NAME = 'Singapore SGX Climate Reporting Software'; /* ═══════════════════════════════════════════════════════════════════════ */ var KEY = 'ecoledger_sample_unlocked'; var strip = document.getElementById('elsampStrip'); var ov = document.getElementById('elsampOv'); if(!strip || !ov) return; if(!SAMPLE_URL){ try{ console.warn('[EcoLedger sample block] SAMPLE_URL is not set, so the block is hidden. Upload the file in Content > Files and paste its URL.'); }catch(e){} strip.style.display = 'none'; if(ov.parentNode) ov.parentNode.removeChild(ov); return; } if(SHOT_URL){ var a = document.getElementById('elsampShot'), b = document.getElementById('elsampShot2'); if(a) a.src = SHOT_URL; if(b) b.src = SHOT_URL; } else { var sh = document.querySelector('.elsamp-shot'); if(sh) sh.style.display = 'none'; var cd = document.querySelector('.elsamp-card'); if(cd) cd.style.gridTemplateColumns = '1fr'; var as = document.querySelector('.elsamp-aside img'); if(as) as.style.display = 'none'; } /* Lift the overlay out to so no theme wrapper can clip position:fixed. */ if(ov.parentNode !== document.body) document.body.appendChild(ov); var form = document.getElementById('elsampForm'), done = document.getElementById('elsampDone'), err = document.getElementById('elsampErr'), btn = document.getElementById('elsampSubmit'), view = document.getElementById('elsampView'), dl = document.getElementById('elsampDl'), last = null; view.href = SAMPLE_URL; function unlocked(){ try{ return localStorage.getItem(KEY) === '1'; }catch(e){ return false; } } function remember(){ try{ localStorage.setItem(KEY,'1'); }catch(e){} } function cookie(n){ var m = document.cookie.match('(^|;)\\s*' + n + '\\s*=\\s*([^;]+)'); return m ? m.pop() : ''; } function open(showDone){ ov.classList.add('is-open'); document.documentElement.style.overflow = 'hidden'; if(showDone){ form.style.display = 'none'; done.classList.add('is-on'); } else { setTimeout(function(){ var f = document.getElementById('elsampFirst'); if(f) f.focus(); }, 60); } } function close(){ ov.classList.remove('is-open'); document.documentElement.style.overflow = ''; if(last) last.focus(); } document.addEventListener('click', function(e){ if(!e.target.closest) return; /* Match on the class, not a data- attribute: Shopify's rich-text editor strips unknown data- attributes if the description is ever opened in the visual editor. Classes survive. */ var t = e.target.closest('.elsamp-go'); if(t){ e.preventDefault(); last = t; open(unlocked()); /* already given details: straight to the choices */ return; } if(e.target.closest('.elsamp-x')){ e.preventDefault(); close(); } if(e.target === ov) close(); }); document.addEventListener('keydown', function(e){ if(e.key === 'Escape' && ov.classList.contains('is-open')) close(); }); /* Download rather than view. Shopify's CDN is a different origin, so the download attribute alone is ignored; fetch it as a blob first. If that is blocked for any reason, fall back to opening it, where every browser's PDF viewer has its own download button. */ dl.addEventListener('click', function(){ var original = dl.innerHTML; dl.disabled = true; dl.textContent = 'Preparing…'; fetch(SAMPLE_URL, { mode:'cors' }) .then(function(r){ if(!r.ok) throw 0; return r.blob(); }) .then(function(blob){ var u = URL.createObjectURL(blob), a = document.createElement('a'); a.href = u; a.download = FILENAME; document.body.appendChild(a); a.click(); document.body.removeChild(a); setTimeout(function(){ URL.revokeObjectURL(u); }, 4000); }) ['catch'](function(){ window.open(SAMPLE_URL, '_blank', 'noopener'); }) .then(function(){ dl.disabled = false; dl.innerHTML = original; }, function(){ dl.disabled = false; dl.innerHTML = original; }); }); form.addEventListener('submit', function(e){ e.preventDefault(); if(form.elsamp_hp.value) return; /* bot */ var first = form.firstname.value.trim(), lastn = form.lastname.value.trim(), email = form.email.value.trim(), role = form.jobtitle.value, fw = form.reporting_framework_of_interest.value, agree = document.getElementById('elsampConsent').checked; if(!first) return fail('Please add your first name.'); if(!lastn) return fail('Please add your last name.'); if(!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) return fail('Please check the email address.'); if(!role) return fail('Please choose your role.'); if(!agree) return fail('Please tick the box to continue.'); err.classList.remove('is-on'); btn.disabled = true; btn.textContent = 'Unlocking…'; remember(); var shown = false; function finish(){ if(shown) return; shown = true; form.style.display = 'none'; done.classList.add('is-on'); /* Add ?elsampdebug=1 to the page URL to see what HubSpot did, without needing developer tools. */ if(window.location.search.indexOf('elsampdebug') > -1){ var box = document.createElement('pre'); box.style.cssText = 'margin-top:18px;padding:12px;background:#F2F5F3;border:1px solid rgba(10,22,40,.16);' + 'border-radius:9px;font-size:11px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto'; setTimeout(function(){ box.textContent = 'HubSpot: ' + (window.__elsampResult || 'no result') + '\n\n' + JSON.stringify(window.__elsampError || {}, null, 1); done.appendChild(box); }, 1800); } } setTimeout(finish, 2500); /* never leave them staring at a spinner */ if(!HS_FORM){ try{ console.warn('[EcoLedger sample block] HS_FORM is not set, so nothing was sent to HubSpot.'); }catch(ex){} return finish(); } var CONSENT_TEXT = 'I agree to receive launch updates and resources from EcoLedger. ' + 'I can unsubscribe any time.'; var payload = { fields: [ { name:'email', value: email }, { name:'firstname', value: first }, { name:'lastname', value: lastn }, { name:'jobtitle', value: role }, { name:'reporting_framework_of_interest', value: fw } ], context: { pageUri: window.location.href, pageName: PAGE_NAME + ' \u2014 sample report request' }, legalConsentOptions: { consent: { /* Two different things, and the contact should carry both: lawful basis to process, and an opt-in to the Newsletter subscription type. */ consentToProcess: true, text: CONSENT_TEXT, communications: [{ value: true, subscriptionTypeId: HS_SUBSCRIPTION, text: CONSENT_TEXT }] } } }; var hutk = cookie('hubspotutk'); if(hutk) payload.context.hutk = hutk; fetch('https://api-' + HS_REGION + '.hsforms.com/submissions/v3/integration/submit/' + HS_PORTAL + '/' + HS_FORM, { method:'POST', headers:{ 'Content-Type':'application/json' }, body: JSON.stringify(payload) }).then(function(r){ if(r.ok){ window.__elsampResult = 'accepted'; return finish(); } r.json().then(function(j){ window.__elsampResult = 'REJECTED'; window.__elsampError = j; try{ console.error('[EcoLedger sample block] HubSpot rejected the submission:', j); }catch(ex){} finish(); }, function(){ window.__elsampResult = 'REJECTED (http ' + r.status + ')'; finish(); }); }, function(e){ /* Network failure, most often an ad blocker blocking HubSpot's domain. */ window.__elsampResult = 'NOT SENT'; window.__elsampError = String(e); try{ console.error('[EcoLedger sample block] Could not reach HubSpot:', e); }catch(ex){} finish(); }); }); function fail(m){ err.textContent = m; err.classList.add('is-on'); } })(); Why EcoLedger Everything IFRS S1 and S2 asks for, brought to life Master Scope 3,category by category All fifteen categories built out, with EMA / NEA and IPCC factors and data quality flagged as you go. Purchased goods Business travel Employee commuting Use of sold products 92%Report complete Scored as you go Every IFRS S1 and S2 requirement tracked, so you always know what is done and what is left. Disclosure in days,not months A guided workflow takes you from entity setup to a report your assurance provider can review. EcoLedger DaysWeeksMonths Built for your team Finance and sustainability, working from one source of truth. Plans & pricing Published pricing. Start free, buy when you're ready No demo gate and no sales call to see a price. Build your full report on a free trial, then licence it when it is ready to export. IFRS S1 & S2 SGX climate licence For smaller teams getting started. Renewable each year, so your standards, metrics and factors stay current. All IFRS S1 and S2 requirements Full GHG engine, Scope 1, 2 & 3 Industry-based metrics, targets & scenarios Regional jurisdiction editions available 3 entities, 3 users, 5 supplier licences Word, PDF and HTML export Start free 7-day trial → Buy licence £6,900 annual licence Best value Full Suite Every framework in one licence, for teams reporting across more than one standard. ISSB, CSRD, UK SRS & EU Taxonomy Full GHG engine included Ideal if you report under two or more frameworks All export formats, all frameworks Start free trial → View the full suite £16,900 annual licence Enterprise & Group Tailored For larger groups reporting across many entities, subsidiaries and teams, shaped around how your organisation is structured. Multiple entities and teams Supplier Scope 3 portal at scale Onboarding and priority support Pricing shaped to your organisation Talk to us → No card required to start Encrypted, private hosting Own and export your data, any time Inside the software Built for every part of SGX climate reporting GHG engine A complete Scope 1, 2 and 3 inventory Calculate emissions with EMA / NEA and IPCC factors matched to your reporting year. IEA grid factors cover international operations, and Scope 3 is built out category by category, with data quality flagged throughout. EMA / NEA and IPCC factors, refreshed each year IEA grid factors for international operations Full Scope 3 by category Bulk data import and reconciliation Report builder & targets IFRS S1 and S2-aligned narrative, drafted for you to edit Work through materiality, strategy, scenario analysis and your climate targets, including science-based pathways. The builder drafts narrative you can edit, with every disclosure linked to its source data and evidence. Drafts IFRS S1 and S2 narrative to edit Materiality assessment tracked Climate targets and scenario analysis Every disclosure linked to evidence Every requirement tracked An interactive checklist shows what is complete, in progress or not applicable, alongside the industry-based metrics expected for your sector. Ready for review, in every format Export the full disclosure in Word, PDF or HTML with footnotes and evidence intact, and record your assurance provider, level and audit trail. Built for what comes next Reporting that keeps pace with the standards As the standards roll out jurisdiction by jurisdiction, your workflow, factors and disclosures stay current, so each reporting year is a refresh, not a restart. How we compare EcoLedger Enterprise platforms Consultant / advisory Built specifically for IFRS S1 and S2 Yes Broad ESG suite Varies Industry metrics, targets and scenario analysis built in Yes Partial Manual Typical setup time Days Weeks to months Weeks Published price, buy without a sales call Yes Book a demo Quote on request Repeatable each year by your own team Yes Yes Re-engage each year Comparison reflects typical positioning. Your data, your way You decide where your data lives Stays on your computer Work entirely on your own device. Your data lives in your browser, never leaves your computer unless you choose, and stays fully under your control. Synced across your devices Prefer to pick up where you left off from anywhere? Sign in and your work syncs securely, ready on any device with a single login. Passwordless sign-inA single-use code is sent to your email each time, so there is no password to manage, forget or leak. Encrypted in transitYour data is only ever transferred over a secure, encrypted connection. Private, resilient hostingBuilt on enterprise-grade global infrastructure, with security designed in from the start. Getting started Up and running in three steps 1Start or buy Start a free trial or buy your licence, get instant access, and open it in your browser. Nothing to install. 2Plan & collect Set up your entity, assess materiality, and import your energy and emissions data. 3Disclose & publish Generate your disclosure in Word, PDF or HTML, ready to publish. In your licence Everything, in one licence All IFRS S1 and S2 requirements Industry-based metrics GHG Scope 1, 2 and 3, EMA / NEA and IPCC factors Climate targets, including science-based pathways Climate scenario analysis Materiality assessment Drafts narrative to edit Evidence register and audit trail Assurance details: level, provider and scope Multiple entity profiles Word, PDF and HTML export Renewable each reporting year FAQ Frequently asked questions Who should report under IFRS S1 and S2 in Singapore? SGX-listed issuers report climate disclosures aligned to the ISSB baseline, phased in by year. If you report on sustainability and climate, IFRS S1 and S2 are the framework investors increasingly expect. Which emission factors are included? EMA / NEA and IPCC factors for Scope 1, 2 and 3, matched to your reporting year, with IEA grid factors for international operations. New factor editions are added each year and included with your licence. How does this compare to hiring a consultant? An initial SGX climate reporting project with a consultant typically costs £15,000 to £25,000. EcoLedger is £6,900 for the reporting year, and you own the process and can repeat it each year. Do I need sustainability expertise to use this? No. The workflow is designed for finance and sustainability teams without prior experience, guiding you through each requirement with explanations, templates and help text throughout. Can I use this for multiple entities? Yes. The standard licence covers three entity profiles, each with its own metrics and disclosure set. Larger groups reporting across many subsidiaries are suited to our Enterprise and Group plans. Where is my data stored, and is it secure? You choose. Your data can stay entirely on your own computer, in your browser, or you can sign in to sync it securely and use EcoLedger from any device. Sign-in is passwordless, a single-use code sent to your email, your data is only ever transferred over an encrypted connection, on enterprise-grade hosting, and everything is exportable at any time. From the EcoLedger insights Read before you report Carbon accounting explained: Scope 1, 2 and 3How emissions are calculated, and how the split changes by sector. → Get started today Start your SGX disclosure Meet IFRS S1 and S2 with confidence. Start my free 7-day trial → No card required. Or see plans and pricing. © 2026 EcoLedger. Built on IFRS S1 and S2, the ISSB's global sustainability disclosure standards. A preparation tool to support your own review and assurance, not an assurance opinion. · Privacy · Terms (function(){ try{ var c = window.Shopify && Shopify.currency; if(!c || !c.active) return; var active = c.active; var fmt = null; try{ fmt = new Intl.NumberFormat(undefined,{style:'currency',currency:active,maximumFractionDigits:0}); }catch(e){} function money(v){ return fmt ? fmt.format(v) : (active + ' ' + Math.round(v).toLocaleString()); } var m = window.ShopifyAnalytics && ShopifyAnalytics.meta && ShopifyAnalytics.meta.product; var cents = (m && m.variants && m.variants[0]) ? m.variants[0].price : null; if(cents){ var selfEls = document.querySelectorAll('[data-price="self"]'); for(var i=0;i