1<!DOCTYPE html><html lang="en" class="__variable_21eb4d __variable_7baa47 __variable_3d2a50"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/6e637972196c8a2c-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/76bb21445ec309b4-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/8e09c7ce398257d7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/d3ebbfd689654d3a-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/f5851cd1f067f296-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/fonts/roboto-mono/roboto-mono-variable.ttf" as="font" crossorigin="anonymous" type="font/ttf"/><link rel="stylesheet" href="/_next/static/css/c0c01d2ea6b83bb0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/50745e7a4e0f405e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/bf2dc8026a7fe9f1.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/09dab1a09040ab82.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/d30c9b23c95dafd1.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e43384ad4ea28e99.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/854f526373c11ec2.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/07b7f9183cd4e791.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/bd87af99990cded7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/87747286ae6f81ce.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/844d489d5b0d4c7d.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/743e58c336535bf8.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/303c1d88a5a9ed5d.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/24c524a71e11b112.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e471130503c8bbd9.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/95106187c8c66e4b.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/790dc1cb44519520.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ab9ab51baf87ea39.js"/>
1<script src="/_next/static/chunks/4bd1b696-e64c0ef818aa7a9f.js" async=""></script>
1<script src="/_next/static/chunks/8732-8915121d61cb0751.js" async=""></script>
1<script src="/_next/static/chunks/main-app-599b9dd210fec375.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-29287271a09d029e.js" async=""></script>
1<script src="/_next/static/chunks/3731-d89f48fdda9479bf.js" async=""></script>
1<script src="/_next/static/chunks/4922-4236c18d76e346c7.js" async=""></script>
1<script src="/_next/static/chunks/1037-4957ce6b8e8da62f.js" async=""></script>
1<script src="/_next/static/chunks/8631-08b93235151295a8.js" async=""></script>
1<script src="/_next/static/chunks/3700-1c6be334c0717797.js" async=""></script>
1<script src="/_next/static/chunks/3940-79abb47a771e3873.js" async=""></script>
1<script src="/_next/static/chunks/6979-f8016578d3bc0b9b.js" async=""></script>
1<script src="/_next/static/chunks/app/error-8845c8b5a7a97b95.js" async=""></script>
1<script src="/_next/static/chunks/162-696e086f461d2aa4.js" async=""></script>
1<script src="/_next/static/chunks/app/page-4af352189753e3ab.js" async=""></script>
1<link rel="preload" href="https://cloud.umami.is/script.js" as="script"/><meta name="next-size-adjust" content=""/><meta name="theme-color"/><link rel="preload" href="/fonts/roboto-mono/roboto-mono-variable.ttf" as="font" type="font/ttf" crossorigin="anonymous"/><title>GRID | The Spreadsheet Engine for Agentic Products</title><meta name="description" content="GRID is the spreadsheet engine for agentic products. Install from npm with a free evaluation license, build with your agent, and license commercially when you ship."/><meta property="og:title" content="GRID | The Spreadsheet Engine for Agentic Products"/><meta property="og:description" content="GRID is the spreadsheet engine for agentic products. Install from npm with a free evaluation license, build with your agent, and license commercially when you ship."/><meta property="og:image" content="https://grid.is/contentful/images.ctfassets.net/w5357h84kepa/e1LyQq1ZERI1ODODx0tqT/9067c8b40169d991d409c4cfb006ed96/GRID_Green_1200x628.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="628"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="GRID | The Spreadsheet Engine for Agentic Products"/><meta name="twitter:description" content="GRID is the spreadsheet engine for agentic products. Install from npm with a free evaluation license, build with your agent, and license commercially when you ship."/><meta name="twitter:image" content="https://grid.is/contentful/images.ctfassets.net/w5357h84kepa/e1LyQq1ZERI1ODODx0tqT/9067c8b40169d991d409c4cfb006ed96/GRID_Green_1200x628.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="628"/><link rel="icon" href="/favicon.ico?b69f99191b6a8030" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.png?4dfbdae34b66d65b" type="image/png" sizes="192x192"/><link rel="apple-touch-icon" href="/apple-icon.png?bdca42d5783d82d0" type="image/png" sizes="180x180"/>
1<script type="text/plain" data-src="https://www.googletagmanager.com/gtag/js?id=GTM-K23KTHWL" data-consent="analytics"></script>
1<script type="text/plain" data-consent="analytics"> 2 window.dataLayer = window.dataLayer || []; 3 function gtag(){dataLayer.push(arguments);} 4 gtag('js', new Date()); 5 gtag('config', 'GTM-K23KTHWL'); 6 </script>
6<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
6</head><body class="_16xv2iu0"><div hidden=""><!--$--><!--/$--></div><div class="t0ekmz0" style="background:linear-gradient(0deg, #10251E 23.51%, #153D35 58.24%, #206C56 82.3%, #123E31 99%)"><!--$?--><template id="B:0"></template><!--/$--></div><!--$--><!--/$-->
6<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
6<script src="/_next/static/chunks/webpack-ab9ab51baf87ea39.js" id="_R_" async=""></script>
6<div hidden id="S:0"><div class="headroom-wrapper"><div style="position:relative;top:0;left:0;right:0;z-index:1000;-webkit-transform:translate3D(0, 0, 0);-ms-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0);height:86px" class="headroom headroom--unfixed"><div class="wfdufu4 wfdufu7 tt40ke0 tt40ke3yf" style="--wfdufu0:var(--_16xv2iu9);--wfdufu1:transparent;--wfdufu3:none"><div style="display:flex;align-items:center;opacity:0;transform:translateY(-8px)"><a class="wfdufu9" href="/"><svg viewBox="0 0 120 44" width="100%" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M101.465 31.53V10.836c0-.313.25-.594.563-.594h7.002c6.033 0 10.972 4.908 10.972 10.91 0 6.064-4.939 10.972-10.972 10.972h-7.002c-.313 0-.563-.281-.563-.594Zm2.376-1.563h4.907c5.127 0 8.722-3.657 8.722-8.815 0-5.127-3.595-8.784-8.722-8.784h-4.907v17.599ZM93.04 31.53V10.836c0-.313.28-.594.593-.594h1.25c.313 0 .594.281.594.594V31.53a.615.615 0 0 1-.594.594h-1.25a.615.615 0 0 1-.594-.594ZM72.707 31.53V10.836c0-.313.25-.594.594-.594h8.096c3.751 0 6.815 2.939 6.815 6.659 0 2.875-1.907 5.282-4.627 6.377l4.283 7.94c.219.406 0 .906-.531.906h-1.5c-.376 0-.532-.156-.689-.469l-4.063-8.096h-5.971v7.971a.615.615 0 0 1-.594.594h-1.219a.594.594 0 0 1-.594-.594Zm2.47-10.034h6.064c2.407 0 4.501-2.001 4.501-4.564 0-2.376-2.094-4.408-4.501-4.408h-6.064v8.972ZM48.375 21.214A11.26 11.26 0 0 1 59.66 9.93c3.157 0 5.439 1.094 7.565 2.907.25.25.28.625.03.875-.28.281-.624.594-.874.875-.282.313-.47.282-.813-.03-1.594-1.408-3.845-2.44-5.94-2.44-4.938 0-8.69 4.127-8.69 8.972 0 4.814 3.752 9.034 8.69 9.034 3.439 0 5.627-1.313 5.627-1.313v-4.376H61.66c-.343 0-.594-.25-.594-.563v-1.156c0-.344.25-.594.594-.594h5.408c.313 0 .563.281.563.594v7.158a.772.772 0 0 1-.25.5s-3.189 2.064-7.721 2.064c-6.252 0-11.285-4.97-11.285-11.223Z" fill="var(--_16xv2iuj)" style="transition:fill 0.3s"></path><path d="M36.19 16.406c-.689 5.408-7.508 5.293-10.72 4.666-7.051-1.372-11.66-5.292-19.18-9.364-8.965-4.847-10.242 13.646 8.874 20.216a24.518 24.518 0 0 0 8.564 1.223c6.399-.199 13.438-6.026 12.461-16.74Z" fill="url(#a)"></path><path d="M22.99 34.73c-5.908.042-8.608-.14-10.514 1.37-1.406 1.113-2.746 3.037-2.746 7.177 5.387 0 10.5-2.81 13.26-8.547Z" fill="#53D55E"></path><path d="M35.739 13.944c-1.352-5.482-4.902-9.919-7.477-11.917-2.251-1.75-5.062-2.994-6.62-1.02-1.25 1.58-.717 5.19.536 8.05 1.093 2.485 2.531 6.28 3.094 10.248 2.766.558 9.949.965 10.467-5.36Z" fill="url(#b)"></path><path d="M36.188 16.406c-.688 5.408-7.507 5.293-10.72 4.666.024.368.066 7.721-1.73 12.075 6.387-.199 13.427-6.026 12.45-16.74Z" fill="#5FCA9D"></path><defs><linearGradient id="a" x1="25.608" y1="27.692" x2="10.909" y2="17.477" gradientUnits="userSpaceOnUse"><stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="b" x1="28.287" y1="19.653" x2="22.76" y2="6.455" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg></a></div><div class="wfdufua"><button type="button" aria-label="Open menu" aria-expanded="false" style="opacity:0;transform:translateY(-8px)">
6<svg width="37" height="37" viewBox="0 0 37 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path stroke="var(--_16xv2iuj)" d="M0 8.5h37M0 17.5h37M0 26.5h37"></path></svg></button></div><div aria-hidden="true" style="position:absolute;left:0;right:0;bottom:0;height:2px;overflow:hidden;pointer-events:none"><div style="position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05) 50%, transparent);left:-50%;opacity:0"></div></div></div></div></div><main class="t0ekmz1"><section data-section="true" class="vjqp5t0"><div class="vjqp5t1"><div class="_1r3750v2" style="--_1r3750v1:12;--_1r3750v0:5"><div class="_1r3750v5" role="presentation"><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.14853068170368;--_1xcy3n91:1;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.1937742251701451;--_1xcy3n91:1;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.20943058495790523;--_1xcy3n91:1;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.1937742251701451;--_1xcy3n91:1;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.14853068170368;--_1xcy3n91:1;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.29289321881345254;--_1xcy3n91:2;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.34807975947973513;--_1xcy3n91:2;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.3675444679663241;--_1xcy3n91:2;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.34807975947973513;--_1xcy3n91:2;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.29289321881345254;--_1xcy3n91:2;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.4299122874504311;--_1xcy3n91:3;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5;--_1xcy3n91:3;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5256583509747431;--_1xcy3n91:3;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5;--_1xcy3n91:3;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.4299122874504311;--_1xcy3n91:3;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5527864045000421;--_1xcy3n91:4;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:4;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.683772233983162;--_1xcy3n91:4;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:4;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5527864045000421;--_1xcy3n91:4;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:5;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.7763932022500211;--_1xcy3n91:5;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.841886116991581;--_1xcy3n91:5;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.7763932022500211;--_1xcy3n91:5;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:5;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.683772233983162;--_1xcy3n91:6;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.841886116991581;--_1xcy3n91:6;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:1;--_1xcy3n91:6;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.841886116991581;--_1xcy3n91:6;--_1xcy3n92:4;
6--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.683772233983162;--_1xcy3n91:6;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:7;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.7763932022500211;--_1xcy3n91:7;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.841886116991581;--_1xcy3n91:7;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.7763932022500211;--_1xcy3n91:7;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:7;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5527864045000421;--_1xcy3n91:8;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:8;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.683772233983162;--_1xcy3n91:8;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.6464466094067263;--_1xcy3n91:8;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5527864045000421;--_1xcy3n91:8;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.4299122874504311;--_1xcy3n91:9;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5;--_1xcy3n91:9;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.5;--_1xcy3n91:9;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.4299122874504311;--_1xcy3n91:9;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.29289321881345254;--_1xcy3n91:10;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.34807975947973513;--_1xcy3n91:10;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.3675444679663241;--_1xcy3n91:10;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.34807975947973513;--_1xcy3n91:10;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.29289321881345254;--_1xcy3n91:10;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.14853068170368;--_1xcy3n91:11;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.1937742251701451;--_1xcy3n91:11;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.20943058495790523;--_1xcy3n91:11;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.1937742251701451;--_1xcy3n91:11;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.14853068170368;--_1xcy3n91:11;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0;--_1xcy3n91:12;--_1xcy3n92:1;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.03823079691643283;--_1xcy3n91:12;--_1xcy3n92:2;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.05131670194948623;--_1xcy3n91:12;--_1xcy3n92:3;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0.03823079691643283;--_1xcy3n91:12;--_1xcy3n92:4;--_1xcy3n93:1"></div><div class="_1xcy3n94 _1xcy3n96" style="--_1xcy3n90:0;--_1xcy3n91:12;--_1xcy3n92:5;--_1xcy3n93:1"></div><div class="_1r3750v3" style="grid-row:1"></div><div class="_1r3750v3" style="grid-row:2"></div><div class="_1r3750v3" style="grid-row:3"></div><div class="_1r3750v3" style="grid-row:4"></div><div class="_1r3750v3" style="grid-row:5"></div><div class="_1r3750v3" style="grid-row:6"></div><div class="_1r3750v3" style="grid-row:7"></div><div class="_1r3750v3" style="grid-row:8"></div><div class="_1r3750v3" style="grid-row:9"></div><div class="_1r3750v3" style="grid-row:10"></div><div class="_1r3750v3" style="grid-row:11"></div><div class="_1r3750v3" style="grid-row:12"></div><div class="_1r3750v4" data-column="1" style="grid-column:1"></div><div class="_1r3750v4" data-column="2" style="grid-column:2"></div><div class="_1r3750v4" data-column="3" style="grid-column:3"></div><div class="_1r3750v4" data-column="4" style="grid-column:4"></div><div class="_1r3750v4" data-column="5" style="grid-column:5"></div></div></div></div><div class="_17aqinp3" aria-hidden="true"></div><div class="vjqp5t2" index="0"><div class="vjqp5t3"><div class="vjqp5te">
6<div class="tnwaxz0 tnwaxz1 _14c2zok4i _14c2zok7o _14c2zok5i" style="opacity:0;transform:translateY(64px)"><h1 class="vjqp5tf" style="font-size:clamp(36px, calc(36px + (42 - 36) * (100vw - 768px) / (1160 - 768)), 42px)">The spreadsheet engine for agentic products</h1></div><p class="tnwaxz0 tnwaxz1 _14c2zok10 _14c2zok4i _14c2zok5o _14c2zok60 vjqp5tg" style="opacity:0;transform:translateY(64px)">Agents call spreadsheet operations directly instead of burning tokens generating code. Ready-made, familiar UI for when humans need to read or edit. Fast, rigorously tested, and quick to integrate.</p></div><div class="tnwaxz0 tnwaxz3 vjqp5ti vjqp5th" style="opacity:0;transform:translateY(64px)"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwe vjqp5tj" style="--dc2fuw2:var(--_16xv2iuc);--dc2fuw4:var(--_16xv2iug);--dc2fuw5:var(--_16xv2iug);--dc2fuw1:var(--_16xv2iuf)" href="/get-started"><span class="_14c2zoku vjqp5tm">Get started</span></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwd vjqp5tj vjqp5tk" style="--dc2fuw2:var(--_16xv2iub);--dc2fuw3:rgba(255, 255, 255, 0.4);--dc2fuw4:var(--_16xv2iuj);--dc2fuw5:var(--_16xv2iuj);--dc2fuw1:var(--_16xv2iuj)" target="_blank" href="https://docs.grid.is/"><span class="_14c2zoku vjqp5tm vjqp5tl">View docs</span></a></div></div><div class="vjqp5t4"><div class="tnwaxz0 tnwaxz1 vjqp5th" style="opacity:0;transform:translateY(64px)"><div class="vjqp5t5"><span class="vjqp5t6">Humans</span><div class="oca82t0 _1055fj10 vjqp5ta"><code class="oca82t2"><span class="oca82t3"><span style="color:var(--_16xv2iuc)">npm</span> <span>install</span> <span style="color:var(--_16xv2iuj)">@grid-is/spreadsheet-engine</span></span></code><button type="button" class="oca82t5" aria-label="Copy to clipboard">Copy</button></div></div></div><div class="tnwaxz0 tnwaxz1 vjqp5th" style="opacity:0;transform:translateY(64px)"><div class="vjqp5t5"><span class="vjqp5t6">Agents</span><div class="vjqp5t7" role="group" aria-label="Agent prompt options"><button type="button" aria-pressed="true" class="vjqp5t8 vjqp5t9">Try it out</button><button type="button" aria-pressed="false" class="vjqp5t8">Build an AI assistant</button><button type="button" aria-pressed="false" class="vjqp5t8">Give your agent spreadsheets</button></div><div class="vjqp5tb"><div class="oca82t0 _1055fj10 oca82t1 vjqp5ta vjqp5tc"><code class="oca82t2 oca82t4"><span class="oca82t3"><span>Install GRID's spreadsheet engine skill:<!-- --> 7</span><span><span style="color:var(--_16xv2iuc)">npx</span> <span>-y</span> <span>skills</span> <span>add</span> <span style="color:var(--_16xv2iuj)">GRID-is/spreadsheet-skills</span> <span>--skill</span> <span>spreadsheet-engine</span> <span>-g</span> <span>-y</span> 8</span><span> 9</span><span>Read it, then tell me where GRID's packages could improve this project, with or without LLMs. Install any other GRID skill you need.</span></span></code><button type="button" class="oca82t5 oca82t6" aria-label="Copy to clipboard">Copy</button></div><div class="oca82t0 _1055fj10 oca82t1 vjqp5ta vjqp5tc vjqp5td"><code class="oca82t2 oca82t4"><span class="oca82t3"><span>Install GRID's spreadsheet AI assistant skill:<!-- --> 10</span><span><span style="color:var(--_16xv2iuc)">npx</span> <span>-y</span> <span>skills</span> <span>add</span> <span style="color:var(--_16xv2iuj)">GRID-is/spreadsheet-skills</span> <span>--skill</span> <span>spreadsheet-ai-assistant</span> <span>-g</span> <span>-y</span> 11</span><span> 12</span><span>Then build a React app with an editable spreadsheet next to a chat panel on GRID's packages: drag and drop an .xlsx to open it, ask the assistant to read and change it, edit cells yourself, download the updated file.</span></span></code><button type="button" class="oca82t5 oca82t6" aria-label="Copy to clipboard">Copy</button></div><div class="oca82t0 _1055fj10 oca82t1 vjqp5ta vjqp5tc vjqp5td"><code class="oca82t2 oca82t4"><span class="oca82t3"><span>Add GRID's spreadsheet tools to this agent as an MCP server, then use them to read, calculate and edit my workbooks:<!-- --> 13</span><span><span style="color:var(--_16xv2iuc)">npx</span> <span>-y</span> <span style="color:var(--_16xv2iuj)">@grid-is/agent-tools</span></span></span></code><button type="button" class="oca82t5 oca82t6" aria-label="Copy to clipboard">Copy</button></div></div></div></div></div></div></section><div style="opacity:0;transform:translateY(16px)"><section class="_12wxy7t0"><div class="_12wxy7t1"><div class="_12wxy7t2 _1055fj10"><div class="_12wxy7t3"><h2 class="_12wxy7t4">Built with an agent, on top of a spreadsheet</h2><p class="_12wxy7t5">A coding agent built this on top of a financial analyst's Excel model. Drag the sliders and watch the GRID engine recalculate hundreds of cells in real time.</p></div><div class="_12wxy7t6"><div class="_12wxy7t7"><div class="_12wxy7t8"><label class="_12wxy7t9" for="slider-property-value">Property value</label><div class="_12wxy7ta"><input id="slider-property-value" type="range" min="50000" max="5000000" step="10000" class="_12wxy7tb" value="900000"/><span class="_12wxy7tc">$900,000</span></div></div><div class="_12wxy7t8"><label class="_12wxy7t9" for="slider-loan-amount">Loan amount</label><div class="_12wxy7ta"><input id="slider-loan-amount" type="range" min="0" max="5000000" step="10000" class="_12wxy7tb" value="600000"/><span class="_12wxy7tc">$600,000</span></div></div><div class="_12wxy7t8"><label class="_12wxy7t9" for="slider-interest-rate">Interest rate</label><div class="_12wxy7ta">
13<input id="slider-interest-rate" type="range" min="0.5" max="15" step="0.25" class="_12wxy7tb" value="5"/><span class="_12wxy7tc">5.00%</span></div></div><div class="_12wxy7t8"><label class="_12wxy7t9" for="slider-loan-term">Loan term</label><div class="_12wxy7ta"><input id="slider-loan-term" type="range" min="5" max="50" step="1" class="_12wxy7tb" value="25"/><span class="_12wxy7tc">25 yr</span></div></div><div class="_12wxy7tq"><div class="_12wxy7tr"><p class="_12wxy7ts">Monthly payment</p><p class="_12wxy7tt">â</p></div><div class="_12wxy7tr"><p class="_12wxy7ts">Down payment</p><p class="_12wxy7tt">â</p></div><div class="_12wxy7tr"><p class="_12wxy7ts">Total interest</p><p class="_12wxy7tt _12wxy7tu">â</p></div></div></div><div class="_12wxy7th"><div class="_12wxy7ti"><div class="_12wxy7tj"><span class="_12wxy7tk"><span class="_12wxy7tl _12wxy7tm"></span>Debt</span><span class="_12wxy7tk"><span class="_12wxy7tl _12wxy7tn"></span>Equity</span><span class="_12wxy7tk"><span class="_12wxy7tl _12wxy7to"></span>Annual payment</span></div><div class="_12wxy7tp"><div class="_12wxy7t1k"></div></div></div></div></div><div class="_12wxy7tv"><div class="_12wxy7tw"><span class="_12wxy7tx">Amortisation schedule</span><div class="_12wxy7tz"><span class="_12wxy7ty">300<!-- --> cells recalculated</span><button class="_12wxy7t10"><svg xmlns="http://www.w3.org/2000/svg" height="14px" viewBox="0 -960 960 960" width="14px" fill="currentColor" style="display:block;flex-shrink:0"><path d="M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z"></path></svg>Download model</button></div></div><div class="_12wxy7t11"><div class="_12wxy7t1k"></div></div></div><div class="_12wxy7t12"><button class="_12wxy7t13" aria-expanded="false"><span class="_12wxy7t14"><span class="_12wxy7t15"></></span>Inspect the code</span><span class="_12wxy7t16">6 examples<span class="_12wxy7t17"> · ~15 lines each</span><span class="_12wxy7t18">â¼</span></span></button></div></div></div></section></div><section data-section="true" class="_8jxoe81" style="--_8jxoe80:transparent"><div class="_8jxoe82 tt40ke0 tt40ke2lu tt40ke2mw"><header class="_11fgitu1"><div class="tnwaxz0 tnwaxz2" style="opacity:0;transform:translateY(64px)"><p class="_14c2zok16" style="color:var(--_16xv2iuc)">Our products</p></div><div class="tnwaxz0 tnwaxz2" style="opacity:0;transform:translateY(64px)"><h2 class="_14c2zokc _14c2zok56 _14c2zok4i">The deterministic engine your agents need.<br/>The familiar UI surfaces your users expect.</h2></div></header><div class="_11fgitu4"><svg class="_11fgitux" width="0" height="0" aria-hidden="true"></svg><div class="_11fgitu5" style="--_11fgitu0:var(--_16xv2iu4);opacity:0;transform:translateY(16px)"><span class="_11fgitu6"><svg class="_11fgitu7" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="var(--_16xv2iu4)" aria-hidden="true"><path d="M390-120q-51 0-88-35.5T260-241q-60-8-100-53t-40-106q0-21 5.5-41.5T142-480q-11-18-16.5-38t-5.5-42q0-61 40-105.5t99-52.5q3-51 41-86.5t90-35.5q26 0 48.5 10t41.5 27q18-17 41-27t49-10q52 0 89.5 35t40.5 86q59 8 99.5 53T840-560q0 22-5.5 42T818-480q11 18 16.5 38.5T840-400q0 62-40.5 106.5T699-241q-5 50-41.5 85.5T570-120q-25 0-48.5-9.5T480-156q-19 17-42 26.5t-48 9.5Zm130-590v460q0 21 14.5 35.5T570-200q20 0 34.5-16t15.5-36q-21-8-38.5-21.5T550-306q-10-14-7.5-30t16.5-26q14-10 30-7.5t26 16.5q11 16 28 24.5t37 8.5q33 0 56.5-23.5T760-400q0-5-.5-10t-2.5-10q-17 10-36.5 15t-40.5 5q-17 0-28.5-11.5T640-440q0-17 11.5-28.5T680-480q33 0 56.5-23.5T760-560q0-33-23.5-56T680-640q-11 18-28.5 31.5T613-587q-16 6-31-1t-20-23q-5-16 1.5-31t22.5-20q15-5 24.5-18t9.5-30q0-21-14.5-35.5T570-760q-21 0-35.5 14.5T520-710Zm-80 460v-460q0-21-14.5-35.5T390-760q-21 0-35.5 14.5T340-710q0 16 9 29.5t24 18.5q16 5 23 20t2 31q-6 16-21 23t-31 1q-21-8-38.5-21.5T279-640q-32 1-55.5 24.5T200-560q0 33 23.5 56.5T280-480q17 0 28.5 11.5T320-440q0 17-11.5 28.5T280-400q-21 0-40.5-5T203-420q-2 5-2.5 10t-.5 10q0 33 23.5 56.5T280-320q20 0 37-8.5t28-24.5q10-14 26-16.5t30 7.5q14 10 16.5 26t-7.5 30q-14 19-32 33t-39 22q1 20 16 35.5t35 15.5q21 0 35.5-14.5T440-250Zm40-230Z"></path></svg></span><div class="_11fgitu8"><h3 class="_14c2zoki _14c2zok56 _14c2zok4i">Spreadsheet Engine</h3><p class="_11fgituc _14c2zok10">Spreadsheet logic and calculations, running natively inside your application. Headless, fast, and fully compatible with Excel and Google Sheets out of the box. Agent Tools run on the same engine, so your agents read, calculate, and edit spreadsheets directly instead of generating code.</p></div><div class="_11fgitud"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwd" style="--dc2fuw2:var(--_16xv2iub);--dc2fuw3:var(--_16xv2iu4);--dc2fuw4:var(--_16xv2iu4);--dc2fuw5:var(--_16xv2iu4);--dc2fuw1:var(--_16xv2iu4)" href="/engine"><span class="_14c2zok10">Learn more</span><svg viewBox="0 0 25 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:inherit;transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a><a class="_11fgituf _14c2zok10" href="/agent-tools">Agent Tools<svg viewBox="0 0 25 24" width="14" height="14" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuj);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div><div class="_11fgitug" style="opacity:0;transform:translateY(16px)"><a class="_11fgituh _11fgitui" style="--_11fgitu0:var(--_16xv2iuc)" href="/viewer"><span class="_11fgituk"><svg xmlns="http://www.w3.org/2000/svg" height="26px" width="26px" viewBox="0 -960 960 960" fill="var(--_16xv2iuc)" aria-hidden="true"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v333q-19-11-39-20t-41-16v-137H520v137q-46 14-86 40t-74 63H200v160h82q11 22 22 42t24 38H200Zm0-320h240v-160H200v160Zm0-240h560v-80H200v80Zm280 200Zm0 0Zm0 0Zm0 0ZM640-40q-91 0-168-48T360-220q35-84 112-132t168-48q91 0 168 48t112 132q-35 84-112 132T640-40Zm107.5-106q50.5-26 82.5-74-32-48-82.5-74T640-320q-57 0-107.5 26T450-220q32 48 82.5 74T640-120q57 0 107.5-26Zm-150-31.5Q580-195 580-220t17.5-42.5Q615-280 640-280t42.5 17.5Q700-245 700-220t-17.5 42.5Q665-160 640-160t-42.5-17.5Z"></path></svg></span><span class="_11fgitun"><span class="_14c2zoku _14c2zok5c _14c2zok4i">Spreadsheet Viewer</span><span class="_11fgitur _14c2zok10">A lightweight, themeable viewer for displaying spreadsheets beautifully inside your product.</span></span><span class="_11fgituw"><svg viewBox="0 0 25 24" width="22" height="22" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></span></a></div><div class="_11fgitug" style="opacity:0;transform:translateY(16px)"><a class="_11fgituh _11fgitui" style="--_11fgitu0:var(--_16xv2iuc)" href="/editor"><span class="_11fgituk"><svg xmlns="http://www.w3.org/2000/svg" height="26px" width="26px" viewBox="0 -960 960 960" fill="var(--_16xv2iuc)" aria-hidden="true"><path d="M200-440h240v-160H200v160Zm0-240h560v-80H200v80Zm0 560q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v252q-19-8-39.5-10.5t-40.5.5q-21 4-40.5 13.5T684-479l-39 39-205 204v116H200Zm0-80h240v-160H200v160Zm320-240h125l39-39q16-16 35.5-25.5T760-518v-82H520v160Zm0 360v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q8 9 12.5 20t4.5 22q0 11-4 22.5T863-300L643-80H520Zm300-263-37-37 37 37ZM580-140h38l121-122-37-37-122 121v38Zm141-141-19-18 37 37-18-19Z"></path></svg></span><span class="_11fgitun"><span class="_14c2zoku _14c2zok5c _14c2zok4i">Spreadsheet Editor</span><span class="_11fgitur _14c2zok10">A spreadsheet editor that feels at home in your product, scoped to the editing your users need.</span></span><span class="_11fgituw"><svg viewBox="0 0 25 24" width="22" height="22" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></span></a></div><div class="_11fgitug" style="opacity:0;transform:translateY(16px)"><a class="_11fgituh _11fgitui" style="--_11fgitu0:var(--_16xv2iuc)" href="/excel-add-in"><span class="_11fgituk"><svg xmlns="http://www.w3.org/2000/svg" height="26px" width="26px" viewBox="0 -960 960 960" fill="var(--_16xv2iuc)" aria-hidden="true"><path d="M240-400h320v-80H240v80Zm0-120h480v-80H240v80Zm0-120h480v-80H240v80ZM80-80v-720q0-33 23.5-56.5T160-880h640q33 0 56.5 23.5T880-800v480q0 33-23.5 56.5T800-240H240L80-80Zm126-240h594v-480H160v525l46-45Zm-46 0v-480 480Z"></path></svg></span><span class="_11fgitun"><span class="_14c2zoku _14c2zok5c _14c2zok4i">Excel add-in</span><span class="_11fgitur _14c2zok10">Your own Excel add-in, superpowered by our deterministic engine and your own domain skills.</span></span><span class="_11fgituw"><svg viewBox="0 0 25 24" width="22" height="22" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></span></a></div><div class="_11fgitug" style="opacity:0;transform:translateY(16px)"><div class="_11fgituh _11fgituj _11fgitul"><span class="_11fgitum"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M12 5v14M5 12h14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></span><span class="_11fgitun"><span class="_11fgitut _14c2zoku _14c2zok5c">Your own</span><span class="_11fgituv _14c2zok10">The headless engine, integrated exactly the way you need it.</span></span><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwe" style="--dc2fuw2:var(--_16xv2iuc);--dc2fuw4:var(--_16xv2iug);--dc2fuw5:var(--_16xv2iug);--dc2fuw1:var(--_16xv2iuf)" href="/get-started"><span class="_14c2zok10">Get started</span></a></div></div></div></div></section><section class="_1g8sxtt2"><div class="_1g8sxtt3"><div class="_1g8sxtt4"><h2 class="_14c2zokc _14c2zok56 _14c2zok8c _14c2zok5i" style="color:var(--_16xv2iuj)">Faster spreadsheet reasoning for LLM agents</h2><p class="_14c2zok10 _14c2zok8c _14c2zok5i" style="color:rgba(255,255,255,0.6);max-width:760px">The GRID engine lets LLMs work directly with spreadsheet models through simple tool calls, cutting latency, token usage, and complexity while returning accurate results faster.</p></div><div class="_1g8sxtt6 _1055fj10"><div class="_1g8sxtt8"><div class="_1g8sxtt9" aria-hidden="true"><div class="_1g8sxtt7"><div class="_1g8sxttb" aria-hidden="true" style="grid-template-rows:0fr;opacity:0;transform:translateY(-8px)"><div class="_1g8sxttc"><div class="_1g8sxttd"><div class="_1g8sxtt25" aria-hidden="true"><div class="_1g8sxtt26"><span class="_1g8sxtt27"></span>arr_model.xlsx</div><div class="_1g8sxtt28"><span class="_1g8sxtt29"></span><span class="_1g8sxtt29">A</span><span class="_1g8sxtt29">B</span><span class="_1g8sxtt29">C</span><span class="_1g8sxtt29">1</span>
13<span class="_1g8sxtt2a _1g8sxtt2c">Assumptions</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">2</span><span class="_1g8sxtt2a _1g8sxtt2b">Monthly churn</span><span class="_1g8sxtt2a _1g8sxtt2f">?</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">3</span><span class="_1g8sxtt2a _1g8sxtt2b">Starting MRR</span><span class="_1g8sxtt2a _1g8sxtt2d">$42,571</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">4</span><span class="_1g8sxtt2a _1g8sxtt2b">New MRR / mo</span><span class="_1g8sxtt2a _1g8sxtt2d">$18,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">5</span><span class="_1g8sxtt2a _1g8sxtt2c">Summary</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">6</span><span class="_1g8sxtt2a _1g8sxtt2b">Target ARR</span><span class="_1g8sxtt2a _1g8sxtt2h">$250,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span></div></div></div></div></div><div class="_1g8sxtte"><div class="_1g8sxttg" style="max-width:100%"><span class="_1g8sxtti">Prompt</span><span class="_1g8sxttj">How low does churn need to be so we reach $250k in annual recurring revenue?</span><button type="button" class="_1g8sxttm _1g8sxttq"><span class="_1g8sxtto">â»</span>Run again</button></div></div><div class="_1g8sxttr" aria-hidden="false" style="grid-template-rows:1fr;opacity:1;transform:none"><div class="_1g8sxtts"><div class="_1g8sxttt"><div class="_1g8sxttu _1g8sxttv"><div class="_1g8sxttx"><span class="_1g8sxtty _1g8sxttz"><span class="_1g8sxtt10"><svg width="13" viewBox="0 0 65 78" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M63.8662 29.9011C62.6523 39.4452 50.6184 39.2408 44.9483 38.1351C32.5051 35.7136 24.3704 28.7955 11.1019 21.6098C-4.72043 13.0563 -6.97481 45.6928 26.7614 57.2858C31.6307 58.8959 36.7479 59.6269 41.8742 59.4456C53.1671 59.094 65.5898 48.8111 63.8662 29.9011Z" fill="url(#race-gridpaint0_linear_376_43)"></path><path d="M40.572 62.2383C30.1462 62.3119 25.3799 61.9924 22.0167 64.6545C19.5364 66.6199 17.1719 70.0162 17.1719 77.3227C26.6779 77.3227 35.7007 72.3641 40.572 62.2383Z" fill="#53D55E"></path><path d="M63.0722 25.5563C60.6864 15.8812 54.4225 8.05103 49.877 4.52374C45.9042 1.43676 40.9435 -0.759285 38.1952 2.72607C35.9881 5.5143 36.9287 11.8823 39.1411 16.9294C41.0697 21.316 43.6078 28.0145 44.601 35.0162C49.4829 36.0015 62.1578 36.7199 63.0722 25.5563Z" fill="url(#race-gridpaint1_linear_376_43)"></path><path d="M63.8655 29.9014C62.6516 39.4454 50.6178 39.241 44.9477 38.1354C44.9897 38.7849 45.0633 51.762 41.8945 59.4453C53.1664 59.0943 65.5892 48.8114 63.8655 29.9014Z" fill="#5FCA9D"></path><defs><linearGradient id="race-gridpaint0_linear_376_43" x1="45.1927" y1="49.8185" x2="19.2525" y2="31.7911" gradientUnits="userSpaceOnUse"><stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="race-gridpaint1_linear_376_43" x1="49.9211" y1="35.63" x2="40.1683" y2="12.3388" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg></span>GRID engine</span><span class="_1g8sxtt11"><span class="_1g8sxtt12 _1g8sxtt14">1.5<span class="_1g8sxtt13">s</span></span><span class="_1g8sxtt16">·</span><span class="_1g8sxtt17">86<!-- --> tokens</span></span></div><div class="_1g8sxtt25" aria-hidden="true"><div class="_1g8sxtt26"><span class="_1g8sxtt27"></span>arr_model.xlsx</div><div class="_1g8sxtt28"><span class="_1g8sxtt29"></span><span class="_1g8sxtt29">A</span><span class="_1g8sxtt29">B</span><span class="_1g8sxtt29">C</span><span class="_1g8sxtt29">1</span><span class="_1g8sxtt2a _1g8sxtt2c">Assumptions</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">2</span><span class="_1g8sxtt2a _1g8sxtt2b">Monthly churn</span><span class="_1g8sxtt2a _1g8sxtt2f _1g8sxtt2g">2.4%</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">3</span>
13<span class="_1g8sxtt2a _1g8sxtt2b">Starting MRR</span><span class="_1g8sxtt2a _1g8sxtt2d">$42,571</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">4</span><span class="_1g8sxtt2a _1g8sxtt2b">New MRR / mo</span><span class="_1g8sxtt2a _1g8sxtt2d">$18,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">5</span><span class="_1g8sxtt2a _1g8sxtt2c">Summary</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">6</span><span class="_1g8sxtt2a _1g8sxtt2b">Target ARR</span><span class="_1g8sxtt2a _1g8sxtt2h">$250,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span></div></div><div class="_1g8sxtt19"><p class="_1g8sxtt1a _1g8sxtt1b">I'll perform goal seek using the engine.</p><div class="_1g8sxtt1c" style="opacity:1"><div class="_1g8sxtt1i"><div class="_1g8sxtt1j"><span class="_1g8sxtt1k"><svg width="13" viewBox="0 0 65 78" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M63.8662 29.9011C62.6523 39.4452 50.6184 39.2408 44.9483 38.1351C32.5051 35.7136 24.3704 28.7955 11.1019 21.6098C-4.72043 13.0563 -6.97481 45.6928 26.7614 57.2858C31.6307 58.8959 36.7479 59.6269 41.8742 59.4456C53.1671 59.094 65.5898 48.8111 63.8662 29.9011Z" fill="url(#race-procpaint0_linear_376_43)"></path><path d="M40.572 62.2383C30.1462 62.3119 25.3799 61.9924 22.0167 64.6545C19.5364 66.6199 17.1719 70.0162 17.1719 77.3227C26.6779 77.3227 35.7007 72.3641 40.572 62.2383Z" fill="#53D55E"></path><path d="M63.0722 25.5563C60.6864 15.8812 54.4225 8.05103 49.877 4.52374C45.9042 1.43676 40.9435 -0.759285 38.1952 2.72607C35.9881 5.5143 36.9287 11.8823 39.1411 16.9294C41.0697 21.316 43.6078 28.0145 44.601 35.0162C49.4829 36.0015 62.1578 36.7199 63.0722 25.5563Z" fill="url(#race-procpaint1_linear_376_43)"></path><path d="M63.8655 29.9014C62.6516 39.4454 50.6178 39.241 44.9477 38.1354C44.9897 38.7849 45.0633 51.762 41.8945 59.4453C53.1664 59.0943 65.5892 48.8114 63.8655 29.9014Z" fill="#5FCA9D"></path><defs><linearGradient id="race-procpaint0_linear_376_43" x1="45.1927" y1="49.8185" x2="19.2525" y2="31.7911" gradientUnits="userSpaceOnUse"><stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="race-procpaint1_linear_376_43" x1="49.9211" y1="35.63" x2="40.1683" y2="12.3388" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg></span>engine</div><div class="_1g8sxtt1l"><div class="_1g8sxtt1m">goalSeek({ set: <span class="_1g8sxtt1n">Assumptions!B7</span>, target: <span class="_1g8sxtt1n">Summary!B2</span> = $250k })</div><div class="_1g8sxtt1o"><div class="_1g8sxtt1p" style="width:100%"></div></div><div class="_1g8sxtt1q _1g8sxtt1r"><span class="_1g8sxtt1t">â</span>engine returned in one call</div></div></div></div><div class="_1g8sxtt1d" aria-hidden="false" style="grid-template-rows:1fr;opacity:1"><div class="_1g8sxtt1e"><div class="_1g8sxtt1f"><span class="_1g8sxtt1g">â</span><span>Churn needs to drop to <b class="_1g8sxtt1h">2.4%</b> to reach $250k ARR.</span></div></div></div></div></div><div class="_1g8sxttu _1g8sxttw"><div class="_1g8sxttx"><span class="_1g8sxtty">Without GRID</span><span class="_1g8sxtt11"><span class="_1g8sxtt12 _1g8sxtt15">11.0<span class="_1g8sxtt13">s</span></span><span class="_1g8sxtt16">·</span><span class="_1g8sxtt17 _1g8sxtt18">3,240<!-- --> tokens</span></span></div><div class="_1g8sxtt25" aria-hidden="true"><div class="_1g8sxtt26"><span class="_1g8sxtt27"></span>arr_model.xlsx</div><div class="_1g8sxtt28"><span class="_1g8sxtt29"></span><span class="_1g8sxtt29">A</span><span class="_1g8sxtt29">B</span><span class="_1g8sxtt29">C</span><span class="_1g8sxtt29">1</span><span class="_1g8sxtt2a _1g8sxtt2c">Assumptions</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">2</span><span class="_1g8sxtt2a _1g8sxtt2b">Monthly churn</span><span class="_1g8sxtt2a _1g8sxtt2f _1g8sxtt2g">2.4%</span>
13<span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">3</span><span class="_1g8sxtt2a _1g8sxtt2b">Starting MRR</span><span class="_1g8sxtt2a _1g8sxtt2d">$42,571</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">4</span><span class="_1g8sxtt2a _1g8sxtt2b">New MRR / mo</span><span class="_1g8sxtt2a _1g8sxtt2d">$18,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">5</span><span class="_1g8sxtt2a _1g8sxtt2c">Summary</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">6</span><span class="_1g8sxtt2a _1g8sxtt2b">Target ARR</span><span class="_1g8sxtt2a _1g8sxtt2h">$250,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span></div></div><div class="_1g8sxtt19"><p class="_1g8sxtt1a _1g8sxtt1b">I'll generate code to run goal seek.</p><div class="_1g8sxtt1c" style="opacity:1"><div class="_1g8sxtt1u"><div class="_1g8sxtt1v"><span class="_1g8sxtt1w"><span class="_1g8sxtt1x"></span>ran goalseek.py</span><span class="_1g8sxtt1y">120<!-- --> / <!-- -->120<!-- --> lines</span></div><div class="_1g8sxtt1z"><pre class="_1g8sxtt20"><div class="_1g8sxtt21"><span class="_1g8sxtt22">1</span><span class="_1g8sxtt23">import openpyxl</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">2</span><span class="_1g8sxtt23">import math</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">3</span><span class="_1g8sxtt23">from openpyxl.utils import get_column_letter, column_index_from_string</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">4</span><span class="_1g8sxtt23">from openpyxl.styles import NamedStyle, Font, Alignment, numbers</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">5</span><span class="_1g8sxtt23">from copy import copy</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">6</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">7</span><span class="_1g8sxtt23"># ---- config -------------------------------------------------------</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">8</span><span class="_1g8sxtt23">SRC = "arr_model.xlsx"</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">9</span><span class="_1g8sxtt23">TARGET_ARR = 250_000</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">10</span><span class="_1g8sxtt23">CHURN_CELL = "Assumptions!B7"</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">11</span><span class="_1g8sxtt23">ARR_CELL = "Summary!B2"</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">12</span><span class="_1g8sxtt23">MONTHS = 12</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">13</span><span class="_1g8sxtt23">MAX_ITERS = 64</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">14</span><span class="_1g8sxtt23">TOL = 1.0 # dollars</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">15</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">16</span><span class="_1g8sxtt23">wb = openpyxl.load_workbook(SRC, data_only=False)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">17</span><span class="_1g8sxtt23">assum = wb["Assumptions"]</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">18</span><span class="_1g8sxtt23">model = wb["Model"]</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">19</span><span class="_1g8sxtt23">cohorts = wb["Cohorts"]</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">20</span><span class="_1g8sxtt23">summary = wb["Summary"]</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">21</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">22</span><span class="_1g8sxtt23">def col(i):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">23</span><span class="_1g8sxtt23"> return get_column_letter(i)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">24</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">25</span><span class="_1g8sxtt23">def num(cell):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">26</span><span class="_1g8sxtt23"> v = cell.value</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">27</span><span class="_1g8sxtt23"> return float(v) if isinstance(v, (int, float)) else 0.0</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">28</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">29</span><span class="_1g8sxtt23">
13# openpyxl never recalculates formulas, so every dependent cell that</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">30</span><span class="_1g8sxtt23"># touches churn has to be re-derived by hand for each candidate value.</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">31</span><span class="_1g8sxtt23">def set_churn(rate):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">32</span><span class="_1g8sxtt23"> assum["B7"] = rate</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">33</span><span class="_1g8sxtt23"> for r in range(2, assum.max_row + 1):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">34</span><span class="_1g8sxtt23"> if assum.cell(r, 1).value == "monthly_churn":</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">35</span><span class="_1g8sxtt23"> assum.cell(r, 2).value = rate</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">36</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">37</span><span class="_1g8sxtt23">def retained(start_mrr, rate, months):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">38</span><span class="_1g8sxtt23"> # geometric decay of one cohort's MRR across the window</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">39</span><span class="_1g8sxtt23"> total, mrr = 0.0, start_mrr</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">40</span><span class="_1g8sxtt23"> for _ in range(months):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">41</span><span class="_1g8sxtt23"> total += mrr</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">42</span><span class="_1g8sxtt23"> mrr *= (1.0 - rate)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">43</span><span class="_1g8sxtt23"> return total</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">44</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">45</span><span class="_1g8sxtt23">def recompute_cohorts(rate):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">46</span><span class="_1g8sxtt23"> # rebuild the per-cohort waterfall on the Cohorts sheet</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">47</span><span class="_1g8sxtt23"> for r in range(2, cohorts.max_row + 1):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">48</span><span class="_1g8sxtt23"> name = cohorts.cell(r, 1).value</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">49</span><span class="_1g8sxtt23"> if name is None:</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">50</span><span class="_1g8sxtt23"> continue</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">51</span><span class="_1g8sxtt23"> start = num(cohorts.cell(r, 2))</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">52</span><span class="_1g8sxtt23"> kept = retained(start, rate, MONTHS)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">
1353</span><span class="_1g8sxtt23"> cohorts.cell(r, 3).value = kept</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">54</span><span class="_1g8sxtt23"> cohorts.cell(r, 4).value = kept / MONTHS</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">55</span><span class="_1g8sxtt23"> mrr = start</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">56</span><span class="_1g8sxtt23"> for m in range(MONTHS):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">57</span><span class="_1g8sxtt23"> cohorts.cell(r, 5 + m).value = mrr</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">58</span><span class="_1g8sxtt23"> mrr *= (1.0 - rate)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">59</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">60</span><span class="_1g8sxtt23">def recompute_model(rate):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">61</span><span class="_1g8sxtt23"> # roll cohorts up into the monthly Model sheet</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">62</span><span class="_1g8sxtt23"> for m in range(MONTHS):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">63</span><span class="_1g8sxtt23"> c, month_total = 3 + m, 0.0</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">64</span><span class="_1g8sxtt23"> for r in range(2, cohorts.max_row + 1):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">65</span><span class="_1g8sxtt23"> month_total += num(cohorts.cell(r, 5 + m))</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">66</span><span class="_1g8sxtt23"> model.cell(2, c).value = month_total</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">67</span><span class="_1g8sxtt23"> model.cell(3, c).value = month_total * 12</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">68</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">69</span><span class="_1g8sxtt23">def compute_arr(rate):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">70</span><span class="_1g8sxtt23"> set_churn(rate)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">71</span><span class="_1g8sxtt23"> recompute_cohorts(rate)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">72</span><span class="_1g8sxtt23"> recompute_model(rate)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">73</span><span class="_1g8sxtt23"> dec = 3 + (MONTHS - 1)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">74</span><span class="_1g8sxtt23"> arr = num(model.cell(2, dec)) * 12</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">75</span><span class="_1g8sxtt23"> summary["B2"] = arr</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">76</span><span class="_1g8sxtt23"> return arr</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">77</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">78</span><span class="_1g8sxtt23"># ---- goal seek: binary-search churn so ARR == TARGET_ARR ----------</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">79</span><span class="_1g8sxtt23">lo, hi = 0.0, 0.25</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">80</span><span class="_1g8sxtt23">best = None</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">81</span><span class="_1g8sxtt23">arr_lo = compute_arr(lo)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">82</span><span class="_1g8sxtt23">arr_hi = compute_arr(hi)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">83</span><span class="_1g8sxtt23">assert arr_lo >= TARGET_ARR >= arr_hi, "target not bracketed"</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">84</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">85</span><span class="_1g8sxtt23">for i in range(MAX_ITERS):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">86</span><span class="_1g8sxtt23"> mid = (lo + hi) / 2.0</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">87</span><span class="_1g8sxtt23"> arr = compute_arr(mid)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">88</span><span class="_1g8sxtt23"> if abs(arr - TARGET_ARR) <= TOL:</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">89</span><span class="_1g8sxtt23"> best = mid</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">90</span><span class="_1g8sxtt23"> break</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">91</span><span class="_1g8sxtt23"> if arr > TARGET_ARR:</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">92</span><span class="_1g8sxtt23"> lo = mid # ARR too high -> churn can rise</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">93</span><span class="_1g8sxtt23"> else:</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">
1394</span><span class="_1g8sxtt23"> hi = mid # ARR too low -> churn must fall</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">95</span><span class="_1g8sxtt23"> best = mid</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">96</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">97</span><span class="_1g8sxtt23">churn = round(best * 100, 2)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">98</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">99</span><span class="_1g8sxtt23"># ---- write the answer back & tidy formatting ----------------------</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">100</span><span class="_1g8sxtt23">summary["A4"] = "Max monthly churn for $250k ARR"</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">101</span><span class="_1g8sxtt23">summary["B4"] = best</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">102</span><span class="_1g8sxtt23">summary["B4"].number_format = "0.0%"</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">103</span><span class="_1g8sxtt23">summary["B2"].number_format = numbers.FORMAT_CURRENCY_USD_SIMPLE</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">104</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">105</span><span class="_1g8sxtt23">pct = NamedStyle(name="pct", number_format="0.0%")</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">106</span><span class="_1g8sxtt23">for r in range(2, assum.max_row + 1):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">107</span><span class="_1g8sxtt23"> if assum.cell(r, 1).value == "monthly_churn":</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">108</span><span class="_1g8sxtt23"> assum.cell(r, 2).style = pct</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">109</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">110</span><span class="_1g8sxtt23"># re-apply column widths so the rebuilt sheets stay readable</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">111</span><span class="_1g8sxtt23">for ws in (cohorts, model, summary):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">112</span><span class="_1g8sxtt23"> for c in range(1, ws.max_column + 1):</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">113</span><span class="_1g8sxtt23"> ws.column_dimensions[col(c)].width = 14</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">114</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">115</span><span class="_1g8sxtt23"># sanity check before overwriting the source file</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">116</span><span class="_1g8sxtt23">final = compute_arr(best)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">117</span><span class="_1g8sxtt23">assert abs(final - TARGET_ARR) <= max(TOL, TARGET_ARR * 0.001)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">118</span><span class="_1g8sxtt23"> </span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">119</span><span class="_1g8sxtt23">wb.save(SRC)</span></div><div class="_1g8sxtt21"><span class="_1g8sxtt22">120</span><span class="_1g8sxtt23">print(f"max monthly churn = {churn}% -> ARR ${final:,.0f}")</span></div></pre></div></div></div><div class="_1g8sxtt1d" aria-hidden="false" style="grid-template-rows:1fr;opacity:1"><div class="_1g8sxtt1e"><div class="_1g8sxtt1f"><span class="_1g8sxtt1g">â</span><span>Churn needs to drop to <b class="_1g8sxtt1h">2.4%</b> to reach $250k ARR.</span></div></div></div></div></div></div></div></div></div></div><div class="_1g8sxtta"><div class="_1g8sxtt7"><div class="_1g8sxttb" aria-hidden="false" style="grid-template-rows:1fr;opacity:1;transform:none"><div class="_1g8sxttc"><div class="_1g8sxttd"><div class="_1g8sxtt25" aria-hidden="true"><div class="_1g8sxtt26"><span class="_1g8sxtt27"></span>arr_model.xlsx</div><div class="_1g8sxtt28"><span class="_1g8sxtt29"></span><span class="_1g8sxtt29">A</span><span class="_1g8sxtt29">B</span><span class="_1g8sxtt29">C</span><span class="_1g8sxtt29">1</span>
13<span class="_1g8sxtt2a _1g8sxtt2c">Assumptions</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">2</span><span class="_1g8sxtt2a _1g8sxtt2b">Monthly churn</span><span class="_1g8sxtt2a _1g8sxtt2f">?</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">3</span><span class="_1g8sxtt2a _1g8sxtt2b">Starting MRR</span><span class="_1g8sxtt2a _1g8sxtt2d">$42,571</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">4</span><span class="_1g8sxtt2a _1g8sxtt2b">New MRR / mo</span><span class="_1g8sxtt2a _1g8sxtt2d">$18,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">5</span><span class="_1g8sxtt2a _1g8sxtt2c">Summary</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">6</span><span class="_1g8sxtt2a _1g8sxtt2b">Target ARR</span><span class="_1g8sxtt2a _1g8sxtt2h">$250,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span></div></div></div></div></div><div class="_1g8sxtte _1g8sxttf"><div class="_1g8sxttg _1g8sxtth" style="max-width:520px"><span class="_1g8sxtti">Prompt</span><span class="_1g8sxttj" style="min-height:2.8em"><span class="_1g8sxttk"></span></span><button type="button" disabled="" class="_1g8sxttm"><span class="_1g8sxttn"></span>Run</button></div></div><div class="_1g8sxttr" aria-hidden="true" style="grid-template-rows:0fr;opacity:0;transform:translateY(8px)"><div class="_1g8sxtts"><div class="_1g8sxttt"><div class="_1g8sxttu _1g8sxttv"><div class="_1g8sxttx"><span class="_1g8sxtty _1g8sxttz"><span class="_1g8sxtt10"><svg width="13" viewBox="0 0 65 78" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M63.8662 29.9011C62.6523 39.4452 50.6184 39.2408 44.9483 38.1351C32.5051 35.7136 24.3704 28.7955 11.1019 21.6098C-4.72043 13.0563 -6.97481 45.6928 26.7614 57.2858C31.6307 58.8959 36.7479 59.6269 41.8742 59.4456C53.1671 59.094 65.5898 48.8111 63.8662 29.9011Z" fill="url(#race-gridpaint0_linear_376_43)"></path><path d="M40.572 62.2383C30.1462 62.3119 25.3799 61.9924 22.0167 64.6545C19.5364 66.6199 17.1719 70.0162 17.1719 77.3227C26.6779 77.3227 35.7007 72.3641 40.572 62.2383Z" fill="#53D55E"></path><path d="M63.0722 25.5563C60.6864 15.8812 54.4225 8.05103 49.877 4.52374C45.9042 1.43676 40.9435 -0.759285 38.1952 2.72607C35.9881 5.5143 36.9287 11.8823 39.1411 16.9294C41.0697 21.316 43.6078 28.0145 44.601 35.0162C49.4829 36.0015 62.1578 36.7199 63.0722 25.5563Z" fill="url(#race-gridpaint1_linear_376_43)"></path><path d="M63.8655 29.9014C62.6516 39.4454 50.6178 39.241 44.9477 38.1354C44.9897 38.7849 45.0633 51.762 41.8945 59.4453C53.1664 59.0943 65.5892 48.8114 63.8655 29.9014Z" fill="#5FCA9D"></path><defs><linearGradient id="race-gridpaint0_linear_376_43" x1="45.1927" y1="49.8185" x2="19.2525" y2="31.7911" gradientUnits="userSpaceOnUse"><stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="race-gridpaint1_linear_376_43" x1="49.9211" y1="35.63" x2="40.1683" y2="12.3388" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg></span>GRID engine</span><span class="_1g8sxtt11"><span class="_1g8sxtt12">0.0<span class="_1g8sxtt13">s</span></span><span class="_1g8sxtt16">·</span><span class="_1g8sxtt17">0<!-- --> tokens</span></span></div><div class="_1g8sxtt25" aria-hidden="true"><div class="_1g8sxtt26"><span class="_1g8sxtt27"></span>arr_model.xlsx</div><div class="_1g8sxtt28"><span class="_1g8sxtt29"></span><span class="_1g8sxtt29">A</span><span class="_1g8sxtt29">B</span><span class="_1g8sxtt29">C</span><span class="_1g8sxtt29">1</span><span class="_1g8sxtt2a _1g8sxtt2c">Assumptions</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">2</span><span class="_1g8sxtt2a _1g8sxtt2b">Monthly churn</span><span class="_1g8sxtt2a _1g8sxtt2f">?</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">3</span>
13<span class="_1g8sxtt2a _1g8sxtt2b">Starting MRR</span><span class="_1g8sxtt2a _1g8sxtt2d">$42,571</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">4</span><span class="_1g8sxtt2a _1g8sxtt2b">New MRR / mo</span><span class="_1g8sxtt2a _1g8sxtt2d">$18,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">5</span><span class="_1g8sxtt2a _1g8sxtt2c">Summary</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">6</span><span class="_1g8sxtt2a _1g8sxtt2b">Target ARR</span><span class="_1g8sxtt2a _1g8sxtt2h">$250,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span></div></div><div class="_1g8sxtt19"><p class="_1g8sxtt1a">I'll perform goal seek using the engine.</p><div class="_1g8sxtt1c" style="opacity:0"><div class="_1g8sxtt1i"><div class="_1g8sxtt1j"><span class="_1g8sxtt1k"><svg width="13" viewBox="0 0 65 78" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M63.8662 29.9011C62.6523 39.4452 50.6184 39.2408 44.9483 38.1351C32.5051 35.7136 24.3704 28.7955 11.1019 21.6098C-4.72043 13.0563 -6.97481 45.6928 26.7614 57.2858C31.6307 58.8959 36.7479 59.6269 41.8742 59.4456C53.1671 59.094 65.5898 48.8111 63.8662 29.9011Z" fill="url(#race-procpaint0_linear_376_43)"></path><path d="M40.572 62.2383C30.1462 62.3119 25.3799 61.9924 22.0167 64.6545C19.5364 66.6199 17.1719 70.0162 17.1719 77.3227C26.6779 77.3227 35.7007 72.3641 40.572 62.2383Z" fill="#53D55E"></path><path d="M63.0722 25.5563C60.6864 15.8812 54.4225 8.05103 49.877 4.52374C45.9042 1.43676 40.9435 -0.759285 38.1952 2.72607C35.9881 5.5143 36.9287 11.8823 39.1411 16.9294C41.0697 21.316 43.6078 28.0145 44.601 35.0162C49.4829 36.0015 62.1578 36.7199 63.0722 25.5563Z" fill="url(#race-procpaint1_linear_376_43)"></path><path d="M63.8655 29.9014C62.6516 39.4454 50.6178 39.241 44.9477 38.1354C44.9897 38.7849 45.0633 51.762 41.8945 59.4453C53.1664 59.0943 65.5892 48.8114 63.8655 29.9014Z" fill="#5FCA9D"></path><defs><linearGradient id="race-procpaint0_linear_376_43" x1="45.1927" y1="49.8185" x2="19.2525" y2="31.7911" gradientUnits="userSpaceOnUse"><stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="race-procpaint1_linear_376_43" x1="49.9211" y1="35.63" x2="40.1683" y2="12.3388" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg></span>engine</div><div class="_1g8sxtt1l"><div class="_1g8sxtt1m">goalSeek({ set: <span class="_1g8sxtt1n">Assumptions!B7</span>, target: <span class="_1g8sxtt1n">Summary!B2</span> = $250k })</div><div class="_1g8sxtt1o"><div class="_1g8sxtt1p" style="width:0%"></div></div><div class="_1g8sxtt1q"><span class="_1g8sxtt1s"></span>running goalseek()â¦</div></div></div></div><div class="_1g8sxtt1d" aria-hidden="true" style="grid-template-rows:0fr;opacity:0"><div class="_1g8sxtt1e"><div class="_1g8sxtt1f"><span class="_1g8sxtt1g">â</span><span>Churn needs to drop to <b class="_1g8sxtt1h">2.4%</b> to reach $250k ARR.</span></div></div></div></div></div><div class="_1g8sxttu _1g8sxttw"><div class="_1g8sxttx"><span class="_1g8sxtty">Without GRID</span><span class="_1g8sxtt11"><span class="_1g8sxtt12">0.0<span class="_1g8sxtt13">s</span></span><span class="_1g8sxtt16">·</span><span class="_1g8sxtt17 _1g8sxtt18">0<!-- --> tokens</span></span></div><div class="_1g8sxtt25" aria-hidden="true"><div class="_1g8sxtt26"><span class="_1g8sxtt27"></span>arr_model.xlsx</div><div class="_1g8sxtt28"><span class="_1g8sxtt29"></span><span class="_1g8sxtt29">A</span><span class="_1g8sxtt29">B</span><span class="_1g8sxtt29">C</span><span class="_1g8sxtt29">1</span><span class="_1g8sxtt2a _1g8sxtt2c">Assumptions</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">2</span><span class="_1g8sxtt2a _1g8sxtt2b">Monthly churn</span><span class="_1g8sxtt2a _1g8sxtt2f">?</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">3</span>
13<span class="_1g8sxtt2a _1g8sxtt2b">Starting MRR</span><span class="_1g8sxtt2a _1g8sxtt2d">$42,571</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">4</span><span class="_1g8sxtt2a _1g8sxtt2b">New MRR / mo</span><span class="_1g8sxtt2a _1g8sxtt2d">$18,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">5</span><span class="_1g8sxtt2a _1g8sxtt2c">Summary</span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt2a _1g8sxtt2b"></span><span class="_1g8sxtt29">6</span><span class="_1g8sxtt2a _1g8sxtt2b">Target ARR</span><span class="_1g8sxtt2a _1g8sxtt2h">$250,000</span><span class="_1g8sxtt2a _1g8sxtt2b"></span></div></div><div class="_1g8sxtt19"><p class="_1g8sxtt1a">I'll generate code to run goal seek.</p><div class="_1g8sxtt1c" style="opacity:0"><div class="_1g8sxtt1u"><div class="_1g8sxtt1v"><span class="_1g8sxtt1w"><span class="_1g8sxtt1x"></span>writing goalseek.py</span><span class="_1g8sxtt1y">0<!-- --> / <!-- -->120<!-- --> lines</span></div><div class="_1g8sxtt1z"><pre class="_1g8sxtt20"></pre></div></div></div><div class="_1g8sxtt1d" aria-hidden="true" style="grid-template-rows:0fr;opacity:0"><div class="_1g8sxtt1e"><div class="_1g8sxtt1f"><span class="_1g8sxtt1g">â</span><span>Churn needs to drop to <b class="_1g8sxtt1h">2.4%</b> to reach $250k ARR.</span></div></div></div></div></div></div></div></div></div></div></div></div><p class="_1g8sxtt5">Times and token counts are illustrative. Real results vary with the model, workbook, and task. The gap is sometimes smaller and often much larger.</p></div></section><section data-section="true" class="_8jxoe81" style="--_8jxoe80:transparent"><div class="_8jxoe82 _1k4so0i0"><div class="_1k4so0i1"><div class="tnwaxz0 tnwaxz5 _1k4so0i3 _1055fj10" style="opacity:0;transform:translateY(64px)"><div class="_1k4so0i4"><p class="_14c2zok0 _14c2zok5c _14c2zok3c _14c2zok7i _1k4so0i5">91.25%</p><p class="_14c2zok16 _1k4so0i6">SpreadsheetBench verified 400</p></div><div class="_1k4so0i7"><h2 class="_14c2zokc _14c2zok56 _14c2zok5i" style="color:var(--_16xv2iuj)">Top performer on SpreadsheetBench</h2><p class="_14c2zok10 _14c2zok5u _1k4so0i8">SpreadsheetBench scores agents on real spreadsheet tasks taken from Excel forums, comparing the cells an agent produces against an expert's answer. Ours was evaluated by the benchmark team on the expert-verified 400, running Claude Sonnet with the same agent tools we ship.</p><div class="_1k4so0i9"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwd" style="--dc2fuw2:var(--_16xv2iub);--dc2fuw3:var(--_16xv2iuc);--dc2fuw4:var(--_16xv2iug);--dc2fuw5:var(--_16xv2iug);--dc2fuw1:var(--_16xv2iuc)" href="/blog/an-agent-with-a-spreadsheet-engine-beats-one-without"><span class="_14c2zok10">Read the write-up</span><svg viewBox="0 0 25 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:inherit;transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div></div></div></div></section><section data-section="true" class="_8jxoe81" style="--_8jxoe80:transparent"><div class="_8jxoe82 tt40ke0 tt40kei tt40ke2z6 tt40ke2zk tt40ke2m6 tt40ke2o8"><div class="e230g70"><div class="tnwaxz0 tnwaxz2" style="opacity:0;transform:translateY(64px)"><h2 class="_14c2zokc _14c2zok56 _14c2zok5i _14c2zok4i">The bridge between LLMs and spreadsheets</h2></div><div class="tnwaxz0 tnwaxz2" style="opacity:0;transform:translateY(64px)"><p class="e230g75 _14c2zoku">Spreadsheets are deceptively complex, and language models struggle to manipulate them accurately. To read or modify one, an LLM has to generate code each time, which is slow, costly in tokens, and failure-prone as complexity grows.</p></div><div class="tnwaxz0 tnwaxz2" style="opacity:0;transform:translateY(64px)"><p class="e230g75 _14c2zoku">GRID gives your agent a structured interface to read cells, apply changes, and recalculate with a function call, not generated code. Results are deterministic, the same reliable recalculation as Excel and Google Sheets. The engine also enables LLMs to generate spreadsheets from scratch, accurately and at scale.</p></div></div><div class="e230g71"><div class="e230g76"><div class="e230g77 e230g78" style="opacity:0;transform:translateY(12px)">YOUR AGENT</div><div class="e230g7b"><svg width="16" height="80" aria-hidden="true" class="e230g7c"><defs><mask id="stack_connector__R_ad5flb_" maskUnits="userSpaceOnUse" x="0" y="0" width="100%" height="100%"><line x1="8" y1="2" x2="8" y2="78" class="e230g7d" stroke-width="8" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line></mask></defs><line x1="8" y1="2" x2="8" y2="78" stroke="var(--_16xv2iuc)" stroke-width="12" vector-effect="non-scaling-stroke" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="8" y1="2" x2="8" y2="78" stroke="var(--_16xv2iuc)" stroke-width="5" vector-effect="non-scaling-stroke" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="8" y1="2" x2="8" y2="78" class="e230g7g" mask="url(#stack_connector__R_ad5flb_)" vector-effect="non-scaling-stroke"></line><path d="M 3 8 L 8 2 L 13 8" class="e230g7e" opacity="0"></path><path d="M 3 72 L 8 78 L 13 72" class="e230g7e" opacity="0"></path></svg><span class="e230g7h" style="opacity:0">
13structured operations</span></div><div class="e230g77 e230g79" style="opacity:0;transform:translateY(12px)">GRID ENGINE</div><div class="e230g7b"><svg width="16" height="80" aria-hidden="true" class="e230g7c"><defs><mask id="stack_connector__R_id5flb_" maskUnits="userSpaceOnUse" x="0" y="0" width="100%" height="100%"><line x1="8" y1="2" x2="8" y2="78" class="e230g7d" stroke-width="8" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line></mask></defs><line x1="8" y1="2" x2="8" y2="78" stroke="var(--_16xv2iuc)" stroke-width="12" vector-effect="non-scaling-stroke" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="8" y1="2" x2="8" y2="78" stroke="var(--_16xv2iuc)" stroke-width="5" vector-effect="non-scaling-stroke" opacity="0" pathLength="1" stroke-dashoffset="0" stroke-dasharray="0 1"></line><line x1="8" y1="2" x2="8" y2="78" class="e230g7g" mask="url(#stack_connector__R_id5flb_)" vector-effect="non-scaling-stroke"></line><path d="M 3 8 L 8 2 L 13 8" class="e230g7e" opacity="0"></path><path d="M 3 72 L 8 78 L 13 72" class="e230g7e" opacity="0"></path></svg><span class="e230g7h" style="opacity:0">reads, writes, function calls</span></div><div class="e230g77 e230g78" style="opacity:0;transform:translateY(12px)"><span>SPREADSHEETS</span><span class="e230g7a">Excel, Google Sheets</span></div></div></div></div></section><section data-section="true" class="_18gwcf61 _8jxoe81" style="--_8jxoe80:transparent"><div class="_8jxoe82 _18gwcf62"><div class="_18gwcf63"><div class="tnwaxz0 tnwaxz2" style="opacity:0;transform:translateY(64px)"><div class="_18gwcf64"><h2 class="_14c2zokc _14c2zok56 _14c2zok8c _14c2zok5i" style="color:var(--_16xv2iuj)">Trusted by teams that can't afford to get it wrong</h2></div></div><div class="_18gwcf65"><div class="tnwaxz0 tnwaxz5 _18gwcf66 _1055fj10" style="opacity:0;transform:translateY(64px)"><div class="_18gwcf68"><p class="_14c2zok6 _14c2zok5c _14c2zok3c _14c2zok7i _18gwcf60">Major investment banks</p></div><div class="_18gwcf67"><h3 class="_14c2zoki _14c2zok56 _14c2zok5i _18gwcf69" style="color:var(--_16xv2iuj)">An Excel add-in that generates and edits with confidence</h3><p class="_14c2zok10 _14c2zok5u _18gwcf6a">Working with an AI platform used at major investment banks, we built an Excel add-in where the model runs domain-specific skills with the GRID engine instead of acting on Excel directly. The engine sandboxes the spreadsheet and catches errors before anything touches the file, so the model never corrupts an important document.</p><div class="_18gwcf6b"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwd" style="--dc2fuw2:var(--_16xv2iub);--dc2fuw3:var(--_16xv2iuc);--dc2fuw4:var(--_16xv2iug);--dc2fuw5:var(--_16xv2iug);--dc2fuw1:var(--_16xv2iuc)" href="/excel-add-in"><span class="_14c2zok10">Explore the Excel add-in</span><svg viewBox="0 0 25 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:inherit;transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div></div><div class="tnwaxz0 tnwaxz5 _18gwcf66 _1055fj10" style="opacity:0;transform:translateY(64px)"><div class="_18gwcf68"><p class="_14c2zok6 _14c2zok5c _14c2zok3c _14c2zok7i _18gwcf60">Leading LLM provider</p></div><div class="_18gwcf67"><h3 class="_14c2zoki _14c2zok56 _14c2zok5i _18gwcf69" style="color:var(--_16xv2iuj)">Spreadsheet logic the model can call directly</h3><p class="_14c2zok10 _14c2zok5u _18gwcf6a">A leading LLM provider builds on GRID at the core of its spreadsheet capabilities. Instead of generating brittle code to read or modify a sheet, the model calls a structured interface backed by GRID's deterministic engine, which keeps spreadsheet-driven workflows reliable as they scale.</p><div class="_18gwcf6b"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwd" style="--dc2fuw2:var(--_16xv2iub);--dc2fuw3:var(--_16xv2iuc);--dc2fuw4:var(--_16xv2iug);--dc2fuw5:var(--_16xv2iug);--dc2fuw1:var(--_16xv2iuc)" href="/ai-workflows"><span class="_14c2zok10">Learn about AI workflows</span><svg viewBox="0 0 25 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:inherit;transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div></div></div></div></div></section><section data-section="true" class="_16tg6ul0 _8jxoe81" style="--_8jxoe80:transparent"><div class="_8jxoe82 _16tg6ul1"><div class="_16tg6ul2" aria-hidden="true"><span class="_16tg6ul3 _16tg6ul4">npm install @grid-is/spreadsheet-engine</span><span class="_16tg6ul3 _16tg6ul5">model.write("A2", 125000)</span><span class="_16tg6ul3 _16tg6ul6">=IF(J6=0,0,J2/J1)</span><span class="_16tg6ul3 _16tg6ul7">{ "apply": [{ "target": "A2" }] }</span></div><div class="_16tg6ul8"><h2 class="tnwaxz0 tnwaxz2 _14c2zokc _14c2zok4i _14c2zok5i _14c2zok8c" style="opacity:0;transform:translateY(64px)">Get started now</h2><p class="tnwaxz0 tnwaxz2 _14c2zoku _14c2zok5o _14c2zok8c _16tg6ul9" style="opacity:0;transform:translateY(64px)">Install the engine from npm with a free evaluation license and start building today. When you are ready to ship, talk to us. Most teams are surprised how quickly they go from first install to production, with direct support from the GRID team throughout.</p><div class="tnwaxz0 tnwaxz1" style="opacity:0;transform:translateY(64px)"><div class="_16tg6ulc"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw9 dc2fuwe" style="--dc2fuw2:var(--_16xv2iuc);--dc2fuw4:var(--_16xv2iug);--dc2fuw5:var(--_16xv2iug);--dc2fuw1:var(--_16xv2iuf)" href="/get-started"><p class="_14c2zoku">Get started</p></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw9 dc2fuwd" style="--dc2fuw2:var(--_16xv2iub);--dc2fuw3:rgba(255, 255, 255, 0.4);--dc2fuw4:var(--_16xv2iuj);--dc2fuw5:var(--_16xv2iuj);
13--dc2fuw1:var(--_16xv2iuj)" href="/license"><p class="_14c2zoku">Commercial licensing</p></a></div></div></div></div></section></main><footer class="_1clwrnd1 tt40ke0 _1clwrnd2" index="0"><div class="tt40ke4u tt40ke52 tt40kea6 tt40keae tt40keui tt40kezk tt40ke17i tt40ke1c8"><div class="tt40ke3y0 tt40ke3nu tt40ke3yu"><p class="tnwaxz0 tnwaxz2 _14c2zok16 _14c2zok3c" style="opacity:0;transform:translateY(64px)">Spreadsheets run the world</p><p class="tnwaxz0 tnwaxz2 _14c2zok6 _14c2zok2u" style="opacity:0;transform:translateY(64px)">We run spreadsheets</p></div></div><div class="_1clwrnd4"><div class="_1clwrnd5"><svg width="65" viewBox="0 0 65 78" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M63.8662 29.9011C62.6523 39.4452 50.6184 39.2408 44.9483 38.1351C32.5051 35.7136 24.3704 28.7955 11.1019 21.6098C-4.72043 13.0563 -6.97481 45.6928 26.7614 57.2858C31.6307 58.8959 36.7479 59.6269 41.8742 59.4456C53.1671 59.094 65.5898 48.8111 63.8662 29.9011Z" fill="url(#desktoppaint0_linear_376_43)"></path><path d="M40.572 62.2383C30.1462 62.3119 25.3799 61.9924 22.0167 64.6545C19.5364 66.6199 17.1719 70.0162 17.1719 77.3227C26.6779 77.3227 35.7007 72.3641 40.572 62.2383Z" fill="#53D55E"></path><path d="M63.0722 25.5563C60.6864 15.8812 54.4225 8.05103 49.877 4.52374C45.9042 1.43676 40.9435 -0.759285 38.1952 2.72607C35.9881 5.5143 36.9287 11.8823 39.1411 16.9294C41.0697 21.316 43.6078 28.0145 44.601 35.0162C49.4829 36.0015 62.1578 36.7199 63.0722 25.5563Z" fill="url(#desktoppaint1_linear_376_43)"></path><path d="M63.8655 29.9014C62.6516 39.4454 50.6178 39.241 44.9477 38.1354C44.9897 38.7849 45.0633 51.762 41.8945 59.4453C53.1664 59.0943 65.5892 48.8114 63.8655 29.9014Z" fill="#5FCA9D"></path><defs><linearGradient id="desktoppaint0_linear_376_43" x1="45.1927" y1="49.8185" x2="19.2525" y2="31.7911" gradientUnits="userSpaceOnUse"><stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="desktoppaint1_linear_376_43" x1="49.9211" y1="35.63" x2="40.1683" y2="12.3388" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg><p class="_14c2zok16 _14c2zok3c">2026<!-- --> GRID</p></div><div class="_1clwrnd6"><div class="_1clwrnd7"><p class="_14c2zok16 _14c2zok3c _14c2zok66">Developers</p><div class="_1clwrnd8"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/get-started"><span style="padding-block:8px">Get started</span><svg viewBox="0 0 25 24" width="1.33em" height="1.33em" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" target="_blank" href="https://docs.grid.is/"><span style="padding-block:8px">Documentation</span><svg viewBox="0 0 25 24" width="1.33em" height="1.33em" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:rotate(-45deg)"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/license"><span style="padding-block:8px">Licensing</span><svg viewBox="0 0 25 24" width="1.33em" height="1.33em" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div><div class="_1clwrnd7"><p class="_14c2zok16 _14c2zok3c _14c2zok66">About us</p><div class="_1clwrnd8"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/about-us"><span style="padding-block:8px">Company</span></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/careers"><span style="padding-block:8px">Careers</span></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/blog"><span style="padding-block:8px">Blog</span></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/contact"><span style="padding-block:8px">Contact us</span><svg viewBox="0 0 25 24" width="1.33em" height="1.33em" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div><div class="_1clwrnd7"><p class="_14c2zok16 _14c2zok3c _14c2zok66">Legal</p><div class="_1clwrnd8"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/security"><span style="padding-block:8px">Security</span></a><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/privacy-policy"><span style="padding-block:8px">Privacy Policy</span></a><button class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuwa dc2fuwf _1clwrndb _14c2zoku _14c2zok12 _14c2zok50 _14c2zok66" type="button" style="--dc2fuw2:transparent;--dc2fuw4:var(--_16xv2iuc);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit"><span style="padding-block:8px">Cookie Settings</span></button></div></div><div class="_1clwrnd9"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwe" style="--dc2fuw2:rgba(0, 0, 0, 0.1);--dc2fuw4:rgba(0, 0, 0, 0.3);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/press-kit"><span class="_14c2zok10 _14c2zok4i _14c2zok66">Press kit</span><svg viewBox="0 0 25 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div></div><div class="tt40ke4u tt40ke7w tt40kea6 tt40kea8 tt40ke3y0 tt40ke3yu tt40ke3o0 tt40kei tt40ke18 tt40ke2i"><div class="tt40ke3yc tt40ke3xk"><a class="dc2fuw6 dc2fuw0 dc2fuwc dc2fuw7 dc2fuwe" style="--dc2fuw2:rgba(0,0,0,0.1);--dc2fuw4:rgba(0, 0, 0, 0.3);--dc2fuw5:var(--_16xv2iuc);--dc2fuw1:inherit" href="/press-kit"><span class="_14c2zok10 _14c2zok4i">Press kit</span><svg viewBox="0 0 25 24" width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg" style="color:var(--_16xv2iuc);transition:transform 0.3s;transform:none"><path d="m13.764 19 7-7-7-7m-10.25 7H20.14" stroke="currentColor" stroke-width="1.5"></path></svg></a></div><div class="tt40ke3y0 tt40ke3oi tt40ke3nw tt40ketu tt40ker8"><a class="_1clwrndc" aria-label="LinkedIn" target="_blank" href="https://www.linkedin.com/company/gridmakers/"><svg width="24" height="24" style="color:var(--_16xv2iuc)" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 11v5m0-8v.01M12 16v-5m4 5v-3a2 2 0 0 0-4 0M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="_1clwrndc" aria-label="XTwitter" target="_blank" href="https://twitter.com/GRID_hq"><svg width="24" height="24" style="color:var(--_16xv2iuc)" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m4 20 6.768-6.768m2.46-2.46L20 4M4 4l11.733 16H20L8.267 4H4Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="_1clwrndc" aria-label="Facebook" target="_blank" href="https://www.facebook.com/gridmakers/"><svg width="24" height="24" style="color:var(--_16xv2iuc)" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2H7Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="_1clwrndc" aria-label="Youtube" target="_blank" href="https://youtube.com/@grid-is"><svg width="24" height="24" style="color:var(--_16xv2iuc)" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 8a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="m10 9 5 3-5 3V9Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a><a class="_1clwrndc" aria-label="Medium" target="_blank" href="https://medium.com/grid-spreadsheets-run-the-world"><svg width="24" height="24" style="color:var(--_16xv2iuc)" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 9h1m0 0 3 3 3-3M9 9v6m6-6h1m-1 0v6m-7 0h2m4 0h2M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></div><div class="tt40ke4u tt40kea6 tt40ke3y0 tt40ke3ye tt40ke3yu tt40ke3pu tt40kei tt40ke16u"><svg width="53" viewBox="0 0 65 78" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M63.8662 29.9011C62.6523 39.4452 50.6184 39.2408 44.9483 38.1351C32.5051 35.7136 24.3704 28.7955 11.1019 21.6098C-4.72043 13.0563 -6.97481 45.6928 26.7614 57.2858C31.6307 58.8959 36.7479 59.6269 41.8742 59.4456C53.1671 59.094 65.5898 48.8111 63.8662 29.9011Z" fill="url(#mobilepaint0_linear_376_43)"></path><path d="M40.572 62.2383C30.1462 62.3119 25.3799 61.9924 22.0167 64.6545C19.5364 66.6199 17.1719 70.0162 17.1719 77.3227C26.6779 77.3227 35.7007 72.3641 40.572 62.2383Z" fill="#53D55E"></path><path d="M63.0722 25.5563C60.6864 15.8812 54.4225 8.05103 49.877 4.52374C45.9042 1.43676 40.9435 -0.759285 38.1952 2.72607C35.9881 5.5143 36.9287 11.8823 39.1411 16.9294C41.0697 21.316 43.6078 28.0145 44.601 35.0162C49.4829 36.0015 62.1578 36.7199 63.0722 25.5563Z" fill="url(#mobilepaint1_linear_376_43)"></path><path d="M63.8655 29.9014C62.6516 39.4454 50.6178 39.241 44.9477 38.1354C44.9897 38.7849 45.0633 51.762 41.8945 59.4453C53.1664 59.0943 65.5892 48.8114 63.8655 29.9014Z" fill="#5FCA9D"></path><defs><linearGradient id="mobilepaint0_linear_376_43" x1="45.1927" y1="49.8185" x2="19.2525" y2="31.7911" gradientUnits="userSpaceOnUse">
13<stop stop-color="#89E291"></stop><stop offset="1" stop-color="#53D55E"></stop></linearGradient><linearGradient id="mobilepaint1_linear_376_43" x1="49.9211" y1="35.63" x2="40.1683" y2="12.3388" gradientUnits="userSpaceOnUse"><stop stop-color="#77F2F2"></stop><stop offset="1" stop-color="#3CB3CD"></stop></linearGradient></defs></svg><p class="_14c2zok16 _14c2zok3c">2026<!-- --> GRID</p></div></footer></div>
13<script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0}; 14$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script>
14<script>(self.__next_f=self.__next_f||[]).push([0])</script>
14<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[19895,[\"7177\",\"static/chunks/app/layout-29287271a09d029e.js\"],\"CookieHubInit\"]\n3:I[90929,[\"7177\",\"static/chunks/app/layout-29287271a09d029e.js\"],\"StripTrackingParams\"]\n4:I[1444,[],\"\"]\n5:I[95542,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"4922\",\"static/chunks/4922-4236c18d76e346c7.js\",\"1037\",\"static/chunks/1037-4957ce6b8e8da62f.js\",\"8631\",\"static/chunks/8631-08b93235151295a8.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"6979\",\"static/chunks/6979-f8016578d3bc0b9b.js\",\"8039\",\"static/chunks/app/error-8845c8b5a7a97b95.js\"],\"default\"]\n6:I[67906,[],\"\"]\n8:I[93728,[\"7177\",\"static/chunks/app/layout-29287271a09d029e.js\"],\"\"]\na:I[71777,[],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[71777,[],\"ViewportBoundary\"]\nf:I[71777,[],\"MetadataBoundary\"]\n11:I[23520,[],\"default\",1]\n:HL[\"/_next/static/media/6e637972196c8a2c-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/76bb21445ec309b4-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/8e09c7ce398257d7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/d3ebbfd689654d3a-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/f5851cd1f067f296-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/c0c01d2ea6b83bb0.css\",\"style\"]\n:HL[\"/_next/static/css/50745e7a4e0f405e.css\",\"style\"]\n:HL[\"/_next/static/css/bf2dc8026a7fe9f1.css\",\"style\"]\n:HL[\"/_next/static/css/09dab1a09040ab82.css\",\"style\"]\n:HL[\"/_next/static/css/d30c9b23c95dafd1.css\",\"style\"]\n:HL[\"/_next/static/css/e43384ad4ea28e99.css\",\"style\"]\n:HL[\"/_next/static/css/854f526373c11ec2.css\",\"style\"]\n:HL[\"/_next/static/css/07b7f9183cd4e791.css\",\"style\"]\n:HL[\"/_next/static/css/bd87af99990cded7.css\",\"style\"]\n:HL[\"/_next/static/css/87747286ae6f81ce.css\",\"style\"]\n:HL[\"/_next/static/css/844d489d5b0d4c7d.css\",\"style\"]\n:HL[\"/_next/static/css/743e58c336535bf8.css\",\"style\"]\n:HL[\"/_next/static/css/303c1d88a5a9ed5d.css\",\"style\"]\n:HL[\"/_next/static/css/24c524a71e11b112.css\",\"style\"]\n:HL[\"/_next/static/css/e471130503c8bbd9.css\",\"style\"]\n:HL[\"/_next/static/css/95106187c8c66e4b.css\",\"style\"]\n:HL[\"/_next/static/css/790dc1cb44519520.css\",\"style\"]\n:HL[\"/fonts/roboto-mono/roboto-mono-variable.ttf\",\"font\",{\"crossOrigin\":\"anonymous\",\"type\":\"font/ttf\"}]\n"])</script>
14<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c0c01d2ea6b83bb0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/50745e7a4e0f405e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/bf2dc8026a7fe9f1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_21eb4d __variable_7baa47 __variable_3d2a50\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"theme-color\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/fonts/roboto-mono/roboto-mono-variable.ttf\",\"as\":\"font\",\"type\":\"font/ttf\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"$L2\",null,{\"debug\":true}]]}],[\"$\",\"body\",null,{\"className\":\"_16xv2iu0\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$5\",\"errorStyles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/09dab1a09040ab82.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/95106187c8c66e4b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e43384ad4ea28e99.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"errorScripts\":[],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L7\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/95106187c8c66e4b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/09dab1a09040ab82.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e43384ad4ea28e99.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L8\",null,{\"id\":\"umami-script\",\"src\":\"https://cloud.umami.is/script.js\",\"data-website-id\":\"9edf3bc3-b035-4614-8678-06c3879be45f\",\"strategy\":\"afterInteractive\"}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L9\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/09dab1a09040ab82.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d30c9b23c95dafd1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e43384ad4ea28e99.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/854f526373c11ec2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/07b7f9183cd4e791.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/bd87af99990cded7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/87747286ae6f81ce.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"7\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/844d489d5b0d4c7d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"8\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/743e58c336535bf8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"9\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/303c1d88a5a9ed5d.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"10\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/24c524a71e11b112.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"11\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e471130503c8bbd9.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"12\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/95106187c8c66e4b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"13\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/790dc1cb44519520.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{}
14,null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"-C3UtfjUAXx0MBZfGLOp1\"}\n"])</script>
14<script>self.__next_f.push([1,"12:I[60509,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"Page\"]\n13:I[47787,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"TopNavigation\"]\n14:I[82018,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"Footer\"]\n15:I[60509,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"Main\"]\n16:I[42886,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"HomeHero\"]\n17:I[71030,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"EngineDemo\"]\n18:I[80063,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"ProductStackSection\"]\n19:I[60524,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"EngineRace\"]\n1a:I[33275,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"default\"]\n1b:I[81456,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"StackSection\"]\n1c:I[75384,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"default\"]\n1d:I[17694,[\"3731\",\"static/chunks/3731-d89f48fdda9479bf.js\",\"162\",\"static/chunks/162-696e086f461d2aa4.js\",\"3700\",\"static/chunks/3700-1c6be334c0717797.js\",\"3940\",\"static/chunks/3940-79abb47a771e3873.js\",\"8974\",\"static/chunks/app/page-4af352189753e3ab.js\"],\"default\"]\n"])</script>
14<script>self.__next_f.push([1,"7:[\"$\",\"$L12\",null,{\"themeName\":\"white\",\"children\":[[\"$\",\"$L13\",null,{\"theme\":\"light\"}],[\"$\",\"main\",null,{\"style\":{\"flexGrow\":1,\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"div\",null,{\"className\":\"tt40ke3y0 tt40ke3yu tt40ke3oi tt40ke2ni tt40ke27u tt40kei tt40ke1i\",\"style\":{\"flexGrow\":1},\"children\":[[\"$\",\"h1\",null,{\"className\":\"_14c2zok6 _14c2zok1i\",\"children\":\"Oops, that's a 404...\"}],[\"$\",\"p\",null,{\"className\":\"_14c2zoku _14c2zok1i\",\"children\":\"We looked everywhere but couldn't find the requested page.\"}]]}]}],[\"$\",\"$L14\",null,{\"smaller\":true,\"entryTitle\":\"Footer\",\"type\":\"Footer\",\"navigationItems\":[{\"sys\":{\"id\":\"footerDevGroup01\",\"type\":\"Entry\",\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"publishedVersion\":1,\"publishedAt\":\"2026-06-10T12:00:00.000Z\",\"createdAt\":\"2026-06-10T12:00:00.000Z\",\"updatedAt\":\"2026-06-10T12:00:00.000Z\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"FooterNav::Developers\",\"title\":\"Developers\",\"arrowType\":\"Down\",\"navigationItems\":[{\"sys\":{\"id\":\"footerDevGetStarted01\",\"type\":\"Entry\",\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"publishedVersion\":1,\"publishedAt\":\"2026-06-10T12:00:00.000Z\",\"createdAt\":\"2026-06-10T12:00:00.000Z\",\"updatedAt\":\"2026-06-10T12:00:00.000Z\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"FooterNav::Get started\",\"title\":\"Get started\",\"path\":\"/get-started\",\"arrowType\":\"Internal link\"}},{\"sys\":{\"id\":\"footerDevDocs01\",\"type\":\"Entry\",\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"publishedVersion\":1,\"publishedAt\":\"2026-06-10T12:00:00.000Z\",\"createdAt\":\"2026-06-10T12:00:00.000Z\",\"updatedAt\":\"2026-06-10T12:00:00.000Z\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"FooterNav::Documentation\",\"title\":\"Documentation\",\"path\":\"https://docs.grid.is/\",\"arrowType\":\"External link\"}},{\"sys\":{\"id\":\"footerDevLicensing01\",\"type\":\"Entry\",\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"publishedVersion\":1,\"publishedAt\":\"2026-06-10T12:00:00.000Z\",\"createdAt\":\"2026-06-10T12:00:00.000Z\",\"updatedAt\":\"2026-06-10T12:00:00.000Z\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"FooterNav::Licensing\",\"title\":\"Licensing\",\"path\":\"/license\",\"arrowType\":\"Internal link\"}}]}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"40JCqSqBQ4jobNJSpNu3to\",\"type\":\"Entry\",\"createdAt\":\"2024-08-28T11:41:47.280Z\",\"updatedAt\":\"2025-04-09T12:18:46.722Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":25,\"publishedAt\":\"2025-04-09T12:18:46.722Z\",\"firstPublishedAt\":\"2024-08-28T11:43:00.402Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"1hujr3nFf6p0z8AmdSvuzr\"}},\"publishedCounter\":9,\"version\":26,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"1hujr3nFf6p0z8AmdSvuzr\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/40JCqSqBQ4jobNJSpNu3to\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"About us\",\"title\":\"About us\",\"tagline\":\"Spreadsheet Technology Company\",\"navigationItems\":[{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"3zZbxfTPZlyZgs6wY9R4ml\",\"type\":\"Entry\",\"createdAt\":\"2024-08-28T11:41:58.179Z\",\"updatedAt\":\"2024-11-05T09:29:14.460Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":18,\"publishedAt\":\"2024-11-05T09:29:14.460Z\",\"firstPublishedAt\":\"2024-08-28T11:42:12.804Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}}
14,\"publishedCounter\":8,\"version\":19,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/3zZbxfTPZlyZgs6wY9R4ml\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Company\",\"title\":\"Company\",\"tagline\":\"We run spreadsheets\",\"path\":\"/about-us\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"6eDhi9ARJ4jlRoWHNev5dF\",\"type\":\"Entry\",\"createdAt\":\"2024-08-28T11:42:22.256Z\",\"updatedAt\":\"2024-09-09T16:47:17.889Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":12,\"publishedAt\":\"2024-09-09T16:47:17.889Z\",\"firstPublishedAt\":\"2024-08-28T11:42:31.240Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":5,\"version\":13,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/6eDhi9ARJ4jlRoWHNev5dF\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Careers\",\"title\":\"Careers\",\"tagline\":\"Join us to build the future of spreadsheets\",\"path\":\"/careers\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"3CgSvhKKAyLjafqUhtanUv\",\"type\":\"Entry\",\"createdAt\":\"2024-08-28T11:42:44.288Z\",\"updatedAt\":\"2025-04-09T11:14:54.222Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":13,\"publishedAt\":\"2025-04-09T11:14:54.222Z\",\"firstPublishedAt\":\"2024-08-28T11:42:51.965Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":6,\"version\":14,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/3CgSvhKKAyLjafqUhtanUv\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Blog\",\"title\":\"Blog\",\"tagline\":\"Updates and announcements\",\"path\":\"/blog\",\"arrowType\":\"None\"}},{\"sys\":{\"id\":\"footerContact01\",\"type\":\"Entry\",\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"publishedVersion\":1,\"publishedAt\":\"2026-06-18T12:00:00.000Z\",\"createdAt\":\"2026-06-18T12:00:00.000Z\",\"updatedAt\":\"2026-06-18T12:00:00.000Z\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"FooterNav::Contact us\",\"title\":\"Contact us\",\"path\":\"/contact\",\"arrowType\":\"Internal link\"}}],\"arrowType\":\"Down\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"2dn2fPmNpRBENlTRc5zjUp\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:47:16.623Z\",\"updatedAt\":\"2024-10-09T12:03:09.504Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":6,\"publishedAt\":\"2024-10-09T12:03:09.504Z\",\"firstPublishedAt\":\"2024-08-29T12:48:06.569Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":2,\"version\":7,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/2dn2fPmNpRBENlTRc5zjUp\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Press kit\",\"title\":\"Press kit\",\"path\":\"/press-kit\",\"arrowType\":\"Internal link\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}}
14,\"id\":\"16Hrtvoiovt2eQI5Ng6OWy\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:48:26.145Z\",\"updatedAt\":\"2024-08-29T12:54:54.964Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":7,\"publishedAt\":\"2024-08-29T12:54:54.964Z\",\"firstPublishedAt\":\"2024-08-29T12:54:54.964Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":1,\"version\":8,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/16Hrtvoiovt2eQI5Ng6OWy\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Socials\",\"title\":\"Socials\",\"navigationItems\":[{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"2XbD9diYjUkG2MqIzXbnmW\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:49:02.845Z\",\"updatedAt\":\"2024-08-29T12:51:25.482Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":9,\"publishedAt\":\"2024-08-29T12:51:25.482Z\",\"firstPublishedAt\":\"2024-08-29T12:50:34.970Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":2,\"version\":10,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/2XbD9diYjUkG2MqIzXbnmW\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"LinkedIn\",\"title\":\"LinkedIn\",\"path\":\"https://www.linkedin.com/company/gridmakers/\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"21Opgk6rgfJ4Dw6dOhmHIm\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:51:44.717Z\",\"updatedAt\":\"2024-10-30T22:29:32.749Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":8,\"publishedAt\":\"2024-10-30T22:29:32.749Z\",\"firstPublishedAt\":\"2024-08-29T12:53:22.044Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":2,\"version\":9,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/21Opgk6rgfJ4Dw6dOhmHIm\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"X / Twitter\",\"title\":\"XTwitter\",\"path\":\"https://twitter.com/GRID_hq\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"4a1Cc1PZa2V4Cc3tfyp19H\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:53:33.335Z\",\"updatedAt\":\"2024-08-29T12:53:56.998Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":4,\"publishedAt\":\"2024-08-29T12:53:56.998Z\",\"firstPublishedAt\":\"2024-08-29T12:53:56.998Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":1,\"version\":5,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/4a1Cc1PZa2V4Cc3tfyp19H\"},\"metadata\":{\"tags\":[],\"concepts\":[]}
14,\"fields\":{\"entryTitle\":\"Facebook\",\"title\":\"Facebook\",\"path\":\"https://www.facebook.com/gridmakers/\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"1Mowoe9TqbX5kIbPPNcocn\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:54:11.930Z\",\"updatedAt\":\"2024-12-20T14:56:54.311Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":5,\"publishedAt\":\"2024-12-20T14:56:54.311Z\",\"firstPublishedAt\":\"2024-08-29T12:54:29.934Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":2,\"version\":6,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/1Mowoe9TqbX5kIbPPNcocn\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Youtube\",\"title\":\"Youtube\",\"path\":\"https://youtube.com/@grid-is\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"ouGmY5mVQjPlcRPEYE4Ip\",\"type\":\"Entry\",\"createdAt\":\"2024-08-29T12:54:41.593Z\",\"updatedAt\":\"2024-08-29T12:54:49.091Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":2,\"publishedAt\":\"2024-08-29T12:54:49.091Z\",\"firstPublishedAt\":\"2024-08-29T12:54:49.091Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":1,\"version\":3,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/ouGmY5mVQjPlcRPEYE4Ip\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Medium\",\"title\":\"Medium\",\"path\":\"https://medium.com/grid-spreadsheets-run-the-world\",\"arrowType\":\"None\"}}],\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"2ALKVRW8HViL3FEvDj4T0E\",\"type\":\"Entry\",\"createdAt\":\"2024-11-07T13:26:53.808Z\",\"updatedAt\":\"2026-09-21T12:00:00.000Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":7,\"publishedAt\":\"2025-01-29T12:10:49.018Z\",\"firstPublishedAt\":\"2024-11-07T13:28:04.114Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"1hujr3nFf6p0z8AmdSvuzr\"}},\"publishedCounter\":3,\"version\":8,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"1hujr3nFf6p0z8AmdSvuzr\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/2ALKVRW8HViL3FEvDj4T0E\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Legal\",\"title\":\"Legal\",\"navigationItems\":[{\"sys\":{\"id\":\"securityNavItem01\",\"type\":\"Entry\",\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"publishedVersion\":1,\"publishedAt\":\"2026-09-21T12:00:00.000Z\",\"createdAt\":\"2026-09-21T12:00:00.000Z\",\"updatedAt\":\"2026-09-21T12:00:00.000Z\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Security\",\"title\":\"Security\",\"path\":\"/security\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"68wXZIWCoefkMVU2dFfGAC\",\"type\":\"Entry\",\"createdAt\":\"2024-11-07T13:27:26.364Z\",\"updatedAt\":\"2025-01-29T12:07:49.526Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":8,\"publishedAt\":\"2025-01-29T12:07:49.526Z\",\"firstPublishedAt\":\"2024-11-07T13:27:59.614Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"1hujr3nFf6p0z8AmdSvuzr\"}}
14,\"publishedCounter\":3,\"version\":9,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"1hujr3nFf6p0z8AmdSvuzr\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/68wXZIWCoefkMVU2dFfGAC\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Privacy Policy\",\"title\":\"Privacy Policy\",\"path\":\"/privacy-policy\",\"arrowType\":\"None\"}},{\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"w5357h84kepa\"}},\"id\":\"JZVEnOOfDRvgJylPZJFXr\",\"type\":\"Entry\",\"createdAt\":\"2024-11-07T13:41:00.648Z\",\"updatedAt\":\"2024-11-07T13:42:03.793Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":2,\"publishedAt\":\"2024-11-07T13:42:03.793Z\",\"firstPublishedAt\":\"2024-11-07T13:42:03.793Z\",\"createdBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"updatedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"publishedCounter\":1,\"version\":3,\"publishedBy\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"User\",\"id\":\"0uqwLYRATZ7JKRifb75tAU\"}},\"fieldStatus\":{\"*\":{\"en-US\":\"published\"}},\"automationTags\":[],\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"navigationItem\"}},\"urn\":\"crn:contentful:::content:spaces/w5357h84kepa/environments/master/entries/JZVEnOOfDRvgJylPZJFXr\"},\"metadata\":{\"tags\":[],\"concepts\":[]},\"fields\":{\"entryTitle\":\"Cookie Settings\",\"title\":\"Cookie Settings\",\"arrowType\":\"None\"}}],\"arrowType\":\"None\"}}]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"9:[\"$\",\"$L12\",null,{\"themeName\":\"greenToBlack\",\"children\":[[\"$\",\"$L13\",null,{\"theme\":\"observer\"}],[\"$\",\"$L15\",null,{\"children\":[[\"$\",\"$L16\",null,{}],[\"$\",\"$L17\",null,{}],[\"$\",\"$L18\",null,{}],[\"$\",\"$L19\",null,{}],[\"$\",\"$L1a\",null,{}],[\"$\",\"$L1b\",null,{}],[\"$\",\"$L1c\",null,{}],[\"$\",\"$L1d\",null,{}]]}],[\"$\",\"$L14\",null,{\"entryTitle\":\"Footer\",\"type\":\"Footer\",\"navigationItems\":[{\"sys\":\"$7:props:children:2:props:navigationItems:0:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:0:metadata\",\"fields\":{\"entryTitle\":\"FooterNav::Developers\",\"title\":\"Developers\",\"arrowType\":\"Down\",\"navigationItems\":[{\"sys\":\"$7:props:children:2:props:navigationItems:0:fields:navigationItems:0:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:0:fields:navigationItems:0:metadata\",\"fields\":{\"entryTitle\":\"FooterNav::Get started\",\"title\":\"Get started\",\"path\":\"/get-started\",\"arrowType\":\"Internal link\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:0:fields:navigationItems:1:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:0:fields:navigationItems:1:metadata\",\"fields\":{\"entryTitle\":\"FooterNav::Documentation\",\"title\":\"Documentation\",\"path\":\"https://docs.grid.is/\",\"arrowType\":\"External link\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:0:fields:navigationItems:2:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:0:fields:navigationItems:2:metadata\",\"fields\":{\"entryTitle\":\"FooterNav::Licensing\",\"title\":\"Licensing\",\"path\":\"/license\",\"arrowType\":\"Internal link\"}}]}},{\"sys\":\"$7:props:children:2:props:navigationItems:1:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:1:metadata\",\"fields\":{\"entryTitle\":\"About us\",\"title\":\"About us\",\"tagline\":\"Spreadsheet Technology Company\",\"navigationItems\":[{\"sys\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:0:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:0:metadata\",\"fields\":{\"entryTitle\":\"Company\",\"title\":\"Company\",\"tagline\":\"We run spreadsheets\",\"path\":\"/about-us\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:1:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:1:metadata\",\"fields\":{\"entryTitle\":\"Careers\",\"title\":\"Careers\",\"tagline\":\"Join us to build the future of spreadsheets\",\"path\":\"/careers\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:2:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:2:metadata\",\"fields\":{\"entryTitle\":\"Blog\",\"title\":\"Blog\",\"tagline\":\"Updates and announcements\",\"path\":\"/blog\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:3:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:1:fields:navigationItems:3:metadata\",\"fields\":{\"entryTitle\":\"FooterNav::Contact us\",\"title\":\"Contact us\",\"path\":\"/contact\",\"arrowType\":\"Internal link\"}}],\"arrowType\":\"Down\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:2:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:2:metadata\",\"fields\":{\"entryTitle\":\"Press kit\",\"title\":\"Press kit\",\"path\":\"/press-kit\",\"arrowType\":\"Internal link\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:3:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:3:metadata\",\"fields\":{\"entryTitle\":\"Socials\",\"title\":\"Socials\",\"navigationItems\":[{\"sys\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:0:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:0:metadata\",\"fields\":{\"entryTitle\":\"LinkedIn\",\"title\":\"LinkedIn\",\"path\":\"https://www.linkedin.com/company/gridmakers/\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:1:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:1:metadata\",\"fields\":{\"entryTitle\":\"X / Twitter\",\"title\":\"XTwitter\",\"path\":\"https://twitter.com/GRID_hq\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:2:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:2:metadata\",\"fields\":{\"entryTitle\":\"Facebook\",\"t
14itle\":\"Facebook\",\"path\":\"https://www.facebook.com/gridmakers/\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:3:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:3:metadata\",\"fields\":{\"entryTitle\":\"Youtube\",\"title\":\"Youtube\",\"path\":\"https://youtube.com/@grid-is\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:4:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:3:fields:navigationItems:4:metadata\",\"fields\":{\"entryTitle\":\"Medium\",\"title\":\"Medium\",\"path\":\"https://medium.com/grid-spreadsheets-run-the-world\",\"arrowType\":\"None\"}}],\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:4:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:4:metadata\",\"fields\":{\"entryTitle\":\"Legal\",\"title\":\"Legal\",\"navigationItems\":[{\"sys\":\"$7:props:children:2:props:navigationItems:4:fields:navigationItems:0:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:4:fields:navigationItems:0:metadata\",\"fields\":{\"entryTitle\":\"Security\",\"title\":\"Security\",\"path\":\"/security\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:4:fields:navigationItems:1:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:4:fields:navigationItems:1:metadata\",\"fields\":{\"entryTitle\":\"Privacy Policy\",\"title\":\"Privacy Policy\",\"path\":\"/privacy-policy\",\"arrowType\":\"None\"}},{\"sys\":\"$7:props:children:2:props:navigationItems:4:fields:navigationItems:2:sys\",\"metadata\":\"$7:props:children:2:props:navigationItems:4:fields:navigationItems:2:metadata\",\"fields\":{\"entryTitle\":\"Cookie Settings\",\"title\":\"Cookie Settings\",\"arrowType\":\"None\"}}],\"arrowType\":\"None\"}}]}]]}]\n"])</script>
14<script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
14<script>self.__next_f.push([1,"1e:I[65700,[],\"IconMark\"]\nc:null\n"])</script>
14<script>self.__next_f.push([1,"10:[[\"$\",\"title\",\"0\",{\"children\":\"GRID | The Spreadsheet Engine for Agentic Products\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"GRID is the spreadsheet engine for agentic products. Install from npm with a free evaluation license, build with your agent, and license commercially when you ship.\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"GRID | The Spreadsheet Engine for Agentic Products\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"GRID is the spreadsheet engine for agentic products. Install from npm with a free evaluation license, build with your agent, and license commercially when you ship.\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:image\",\"content\":\"https://grid.is/contentful/images.ctfassets.net/w5357h84kepa/e1LyQq1ZERI1ODODx0tqT/9067c8b40169d991d409c4cfb006ed96/GRID_Green_1200x628.png\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:image:height\",\"content\":\"628\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:title\",\"content\":\"GRID | The Spreadsheet Engine for Agentic Products\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:description\",\"content\":\"GRID is the spreadsheet engine for agentic products. Install from npm with a free evaluation license, build with your agent, and license commercially when you ship.\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:image\",\"content\":\"https://grid.is/contentful/images.ctfassets.net/w5357h84kepa/e1LyQq1ZERI1ODODx0tqT/9067c8b40169d991d409c4cfb006ed96/GRID_Green_1200x628.png\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:image:height\",\"content\":\"628\"}],[\"$\",\"link\",\"13\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?b69f99191b6a8030\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"14\",{\"rel\":\"icon\",\"href\":\"/icon.png?4dfbdae34b66d65b\",\"type\":\"image/png\",\"sizes\":\"192x192\"}],[\"$\",\"link\",\"15\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?bdca42d5783d82d0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L1e\",\"16\",{}]]\n"])</script>
14</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.