CINXE.COM

Cactuslab · Work · Westpac Calculators

<!doctype html> <!--[if lte IE 9 ]><html lang="en" class="ie9 lte9"><![endif]--> <!--[if (gt IE 9)|!(IE)]><!--><html lang="en" class="js--html"><!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-TileImage" content="/static/img/favicon/ms-icon-144x144.2d537cba.png"> <meta name="theme-color" content="#ffffff"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@cactuslab"> <meta name="twitter:title" content="Cactuslab: Westpac Calculators"> <meta name="twitter:description" content="Cactuslab worked with Westpac New Zealand to rebuild several of its financial calculators as interactive HTML5 web apps for its public site. The new calculators make use of&nbsp;APIs&nbsp;to populate Westpac&rsquo;s latest interest rates, and provide live results based on user input across a range of component types. Additionally, the&nbsp;&lsquo;What could my rent get me?&rsquo;&nbsp;calculator uses HTML5 geo-location and Trade Me APIs to suggest possible properties in the user&rsquo;s neighbourhood and price&nbsp;range."> <meta name="twitter:image" content="https://cactuslab.com/assets/resized/sm/upload/ha/i0/qs/xy/property-investment-crop-0-500-0-0.jpg?k=8969c9d00b"> <meta property="og:url" content="https://cactuslab.com/work/westpac-calculators/"> <meta property="og:type" content="article"> <meta property="og:title" content="Project details for Westpac Calculators at Cactuslab"> <meta property="og:description" content="Cactuslab worked with Westpac New Zealand to rebuild several of its financial calculators as interactive HTML5 web apps for its public site. The new calculators make use of&nbsp;APIs&nbsp;to populate Westpac&rsquo;s latest interest rates, and provide live results based on user input across a range of component types. Additionally, the&nbsp;&lsquo;What could my rent get me?&rsquo;&nbsp;calculator uses HTML5 geo-location and Trade Me APIs to suggest possible properties in the user&rsquo;s neighbourhood and price&nbsp;range."> <meta property="og:image" content="https://cactuslab.com/assets/resized/sm/upload/ha/i0/qs/xy/property-investment-crop-0-500-0-0.jpg?k=8969c9d00b"> <meta property="og:image:width" content="500"> <meta property="og:image:height" content="750"> <meta property="fb:app_id" content="654000414758342"> <title> Cactuslab &middot; Work &middot; Westpac Calculators </title> <link rel="stylesheet" href="/static/css/main.min.9fa619f9.css" type="text/css" media="all"> <link rel="apple-touch-icon" sizes="57x57" href="/static/img/favicon/apple-icon-57x57.f5d574c5.png"> <link rel="apple-touch-icon" sizes="60x60" href="/static/img/favicon/apple-icon-60x60.8aa9891b.png"> <link rel="apple-touch-icon" sizes="72x72" href="/static/img/favicon/apple-icon-72x72.f8a44f32.png"> <link rel="apple-touch-icon" sizes="76x76" href="/static/img/favicon/apple-icon-76x76.8b365de5.png"> <link rel="apple-touch-icon" sizes="114x114" href="/static/img/favicon/apple-icon-114x114.27bae8dc.png"> <link rel="apple-touch-icon" sizes="120x120" href="/static/img/favicon/apple-icon-120x120.5d2efb29.png"> <link rel="apple-touch-icon" sizes="144x144" href="/static/img/favicon/apple-icon-144x144.2d537cba.png"> <link rel="apple-touch-icon" sizes="152x152" href="/static/img/favicon/apple-icon-152x152.ec29f70b.png"> <link rel="apple-touch-icon" sizes="180x180" href="/static/img/favicon/apple-icon-180x180.83b0e344.png"> <link rel="icon" type="image/png" sizes="192x192" href="/static/img/favicon/android-icon-192x192.fdddf555.png"> <link rel="icon" type="image/png" sizes="32x32" href="/static/img/favicon/favicon-32x32.08b5775d.png"> <link rel="icon" type="image/png" sizes="96x96" href="/static/img/favicon/favicon-96x96.d4326dad.png"> <link rel="icon" type="image/png" href="/static/img/favicon/favicon-32x32.08b5775d.png"> <link rel="manifest" href="/static/img/favicon/manifest.1caa16a2.json"> <script type="text/javascript" src="/static/js/main.min.ecc35a3c.js"></script> </head> <body class="js--body -is-not-scrolled"> <div id="wrapper" class="js--wrapper"> <style> .site-logo { color: #E41A13; } .external-link { color: #E41A13; } .external-link:hover, .external-link:focus { border-color: #E41A13; } </style> <div class="context js--context"> <header class="site-header js--site-header"> <div class="scrollbar-offset js--scrollbar-offset -is-fixed"> <div class="constraint js--constraint"> <a class="site-logo js--site-logo" href="/"> <span class="_sr-only">Cactuslab &middot; </span> <svg class="glyph" xmlns="http://www.w3.org/2000/svg" width="36" height="50" viewBox="0 0 36 50" preserveAspectRatio="xMaxYMid meet"> <title>Cactuslab Glyph Logo</title> <g fill="none" fill-rule="evenodd" transform="translate(6 5)"> <circle class="bubble js--bubble" cx="16" cy="38" r="3"/> <circle class="bubble js--bubble" cx="6" cy="28" r="6"/> <circle class="bubble js--bubble" cx="16" cy="9" r="9"/> </g> </svg> <svg class="wordmark" xmlns="http://www.w3.org/2000/svg" width="123" height="25" viewBox="0 0 123 25" preserveAspectRatio="xMinYMid meet"> <title>Cactuslab Wordmark Logo</title> <g fill-rule="evenodd" stroke-width="0"> <path d="M16.14 4.01c-.987-.707-1.393-.943-2.264-1.238-1.16-.472-2.38-.65-3.658-.65C4.645 2.122.406 6.488.406 12.21c0 6.015 4.18 10.32 10.044 10.32.93 0 1.684-.06 2.67-.295.988-.236 1.452-.412 2.613-.943l-.638-2.005c-1.568.648-2.845.943-4.47.943-4.587 0-7.548-3.243-7.548-8.197 0-4.48 2.96-7.725 7.083-7.725 1.858 0 3.31.472 4.76 1.474l1.22-1.77zm9.36 14.744c-1.916 1.415-2.612 1.71-3.6 1.71-1.103 0-1.8-.708-1.8-1.77 0-.53.06-.825.407-1.473l4.993-1.29v2.83zm3.367 1.887c-.696-.11-1.045-.35-1.103-.7v-8.32c0-2.06-1.683-3.36-4.354-3.36-2.845 0-4.82 1.24-4.82 3.01 0 .3 0 .47.234.83l2.264-.47c-.116-.23-.116-.35-.116-.53 0-.76.638-1.18 2.032-1.18 1.683 0 2.554.59 2.554 1.65v2.42l-4.644 1.12c-1.974.47-2.96 1.77-2.96 3.78 0 2.127 1.392 3.54 3.598 3.54.93 0 2.032-.292 2.845-.763.464-.235.755-.47 1.393-1.06.117 1.296.755 1.77 2.613 1.886l.464-1.83zM42 21.06l-1.16-1.77c-1.103.826-1.916 1.12-3.193 1.12-2.845 0-4.644-1.945-4.644-5.012 0-3.007 1.8-5.13 4.47-5.13 1.22 0 1.974.294 3.02 1.18l1.276-1.83c-.93-.648-1.34-.884-2.21-1.12-.64-.177-1.28-.236-1.98-.236-4.13 0-6.97 3.007-6.97 7.253 0 4.13 2.78 6.96 6.85 6.96 1.33 0 2.61-.295 3.71-.943.11-.06.4-.237.81-.473zm10-.236l-.93-1.474c-.928.707-1.392.943-1.915.943-.464 0-.754-.236-.754-.65-.05-.116-.05-.41-.05-.824l-.06-.59v-7.67h3.54V8.67h-3.54V4.717h-2.21v3.95l-2.26.59v1.298h2.27v8.906c0 1.77 1.04 3.01 2.55 3.01 1.05 0 1.8-.35 3.37-1.65zm13.83 1.297V8.61h-2.263v8.257c-1.51 2.123-3.658 3.656-5.05 3.656-1.104 0-1.57-.708-1.57-2.36V8.61h-2.205v10.144c0 2.477 1.22 3.774 3.54 3.774 2.033 0 3.775-1.06 5.343-3.184v2.83h2.206v-.06zm12.496-3.48c0-2.12-.813-3.06-3.6-4.24-2.438-1-2.786-1.24-3.31-1.77-.23-.23-.347-.53-.347-.82 0-1 .98-1.71 2.49-1.71.52 0 .98.06 1.56.24.69.18 1.04.36 1.91.89l1.1-1.83c-1.108-.65-1.63-.822-2.618-1-.58-.06-1.16-.116-1.685-.116-3.13 0-5.05 1.47-5.05 3.83 0 1.65.87 2.537 3.485 3.657 2.38 1 3.02 1.355 3.544 2.12.174.177.29.59.29.944 0 1.06-.987 1.77-2.38 1.77-.93 0-2.148-.3-3.077-.77-.236-.12-.58-.294-.99-.53l-.93 1.887c1.336.707 1.86.88 3.136 1.12.7.118 1.28.177 1.86.177 2.845 0 4.587-1.415 4.587-3.833z"/> <path d="M81.836.413h2.206v21.703h-2.206z"/> <path d="M94.62 18.754c-1.915 1.415-2.61 1.71-3.598 1.71-1.103 0-1.8-.708-1.8-1.77 0-.53.058-.825.406-1.473l4.993-1.29v2.83zm3.31 1.887c-.696-.11-1.044-.35-1.103-.7v-8.32c0-2.06-1.683-3.36-4.354-3.36-2.845 0-4.82 1.24-4.82 3.01 0 .3 0 .47.234.83l2.264-.47c-.05-.23-.11-.35-.11-.53 0-.76.64-1.18 2.03-1.18 1.69 0 2.56.59 2.56 1.65v2.42l-4.65 1.11c-1.97.47-2.96 1.77-2.96 3.78 0 2.127 1.39 3.54 3.6 3.54.93 0 2.03-.293 2.85-.764.467-.236.757-.472 1.396-1.062.116 1.298.754 1.77 2.61 1.888l.466-1.83zm11.973-5.77c0 2.24-.522 3.54-1.974 4.54-.64.47-1.34.77-2.15.95-.41.06-.76.12-1.16.12-.82 0-1.34-.11-1.92-.41v-8.61c1.1-.76 2.09-1.06 3.31-1.06 2.44 0 3.89 1.65 3.89 4.49zm2.44-.12c0-3.89-2.265-6.49-5.633-6.49-.813 0-1.8.12-2.496.3-.523.18-.813.3-1.51.65V.42h-2.206v21.29c.64.29.87.41 1.335.47.697.18 1.916.292 2.67.292 4.762 0 7.84-3.01 7.84-7.728z"/> </g> </svg> </a> <nav class="site-nav"> <ul class="navlist"> <li class="navitem"><a class="label" href="/about/">About</a></li> <li class="navitem active"><a class="label" href="/work/">Work</a></li> <li class="navitem"><a class="label" href="/ventures/">Ventures</a></li> </ul> </nav> </div> </div> </header> <article class="site-content context-transition -fade-in js--context-transition"> <div class="constraint page-layout -has-no-aside"> <div class="page-body"> <header class="page-section project-information"> <div class="header"> <h1 class="title">Westpac Calculators</h1> </div> <div class="body"> <div class="rich-text"> <p><span>Cactuslab worked with Westpac New Zealand to rebuild several of its financial calculators as interactive HTML5 web apps for its public site. The new calculators make use of&nbsp;</span><abbr title="Application Programming Interfaces">APIs</abbr><span>&nbsp;to populate Westpac&rsquo;s latest interest rates, and provide live results based on user input across a range of component types. Additionally, the&nbsp;</span><a href="http://www.westpac.co.nz/home-loans/calculators/rent-as-mortgage/" target="_blank">&lsquo;What could my rent get me?&rsquo;</a><span>&nbsp;calculator uses HTML5 geo-location and Trade Me APIs to suggest possible properties in the user&rsquo;s neighbourhood and price&nbsp;range.</span></p> </div> <p><a class="external-link" target="_blank" href="http://www.westpac.co.nz/home-loans/calculators/">Visit site</a></p> </div> </header> <section class="page-section project-media"> <figure class="mediaitem -has-no-border -has-no-fade-top -has-no-fade-bottom"> <img data-aspect-ratio="0.8445454545454546" src="/assets/resized/sm/upload/nw/j9/g6/ep/kiwisaver-crop-0-1100-0-0.jpg?k=85489449b0" srcset="/assets/resized/sm/upload/nw/j9/g6/ep/kiwisaver-crop-0-1540-0-1299-crop-1.jpg?k=0cc9f24b06 2x" alt="Detail image for Westpac Calculators" style="width:70%;" /> </figure> <figure class="mediaitem -has-no-border -has-no-fade-top -has-no-fade-bottom"> <img data-aspect-ratio="3.0845454545454545" src="/assets/resized/sm/upload/bi/y1/f0/mi/property-investment-0-1100-0-0.jpg?k=c378a3c80c" srcset="/assets/resized/sm/upload/bi/y1/f0/mi/property-investment-0-1540-0-4748-crop-1.jpg?k=1a86b9c627 2x" alt="Detail image for Westpac Calculators" style="width:70%;" /> </figure> <figure class="mediaitem -has-no-border -has-no-fade-top -has-no-fade-bottom"> <img data-aspect-ratio="1.6754545454545455" src="/assets/resized/sm/upload/lc/u4/l5/jp/choices-offset-0-1100-0-0.jpg?k=6b40798e1d" srcset="/assets/resized/sm/upload/lc/u4/l5/jp/choices-offset-0-1540-0-2578-crop-1.jpg?k=b4aabf4338 2x" alt="Detail image for Westpac Calculators" style="width:70%;" /> </figure> <figure class="mediaitem -has-no-border -has-no-fade-top -has-no-fade-bottom"> <img data-aspect-ratio="1.0518181818181818" src="/assets/resized/sm/upload/z9/2z/ot/ql/repayments-0-1100-0-0.jpg?k=a30767696e" srcset="/assets/resized/sm/upload/z9/2z/ot/ql/repayments-0-1540-0-1619-crop-1.jpg?k=d482d18b2a 2x" alt="Detail image for Westpac Calculators" style="width:70%;" /> </figure> <figure class="mediaitem -has-no-border -has-no-fade-top -has-no-fade-bottom"> <img data-aspect-ratio="0.9245454545454546" src="/assets/resized/sm/upload/jy/mw/px/f0/split-home-loan-0-1100-0-0.jpg?k=a30767696e" srcset="/assets/resized/sm/upload/jy/mw/px/f0/split-home-loan-0-1540-0-1423-crop-1.jpg?k=70e942bf23 2x" alt="Detail image for Westpac Calculators" style="width:70%;" /> </figure> </section> <section class="page-section projects-more-of-type"> <h3 class="moreoftypetitle">More Web work</h3> <div class="project-list"> <article class="project" data-text-color="light"> <div class="proportions" style="background-color:#556677"> <a class="repositioning" href="/work/letterboxd/"> <h3 class="name">Letterboxd</h3> <div class="device js--device -desktop -landscape" data-device-type="desktop"> <div class="bezel js--bezel"> <div class="ratio js--ratio"> <div class="mask"> <img data-aspect-ratio="1.5" src="/assets/resized/resized/sm/upload/o1/op/oq/p2/lb-film-tdk-0-440-0-0-0-0-0-660-crop-1.jpg?k=dad5fcdddc" srcset="/assets/resized/resized/sm/upload/o1/op/oq/p2/lb-film-tdk-0-880-0-1594-crop-1-0-0-0-1320-crop-1.jpg?k=4feb6029ff 2x" alt="Image for Letterboxd" /> </div> </div> </div> </div> </a> </div> </article> <article class="project" data-text-color="light"> <div class="proportions" style="background-color:#009BDD"> <a class="repositioning" href="/work/48hours/"> <h3 class="name">48Hours</h3> <div class="device js--device -desktop -landscape" data-device-type="desktop"> <div class="bezel js--bezel"> <div class="ratio js--ratio"> <div class="mask"> <img data-aspect-ratio="1.5" src="/assets/resized/resized/sm/upload/8a/sg/ov/a3/48-home-crop-0-440-0-0-0-0-0-660-crop-1.jpg?k=734377b32b" srcset="/assets/resized/resized/sm/upload/8a/sg/ov/a3/48-home-crop-0-880-0-1830-crop-1-0-0-0-1320-crop-1.jpg?k=734377b32b 2x" alt="Image for 48Hours" /> </div> </div> </div> </div> </a> </div> </article> <article class="project" data-text-color="dark"> <div class="proportions" style="background-color:#00B9BC"> <a class="repositioning" href="/work/stqry/"> <h3 class="name">STQRY</h3> <div class="device js--device -desktop -landscape" data-device-type="desktop"> <div class="bezel js--bezel"> <div class="ratio js--ratio"> <div class="mask"> <img data-aspect-ratio="0.8727272727272727" src="/assets/resized/sm/upload/zy/n3/mz/jr/stqry-home-0-440-0-0.jpg?k=3cd8bb6241" srcset="/assets/resized/sm/upload/zy/n3/mz/jr/stqry-home-0-880-0-768-crop-1.jpg?k=a08bc32131 2x" alt="Image for STQRY" /> </div> </div> </div> </div> </a> </div> </article> <article class="project" data-text-color="light"> <div class="proportions" style="background-color:#FF545D"> <a class="repositioning" href="/work/nziff/"> <h3 class="name">NZIFF</h3> <div class="device js--device -desktop -landscape" data-device-type="desktop"> <div class="bezel js--bezel"> <div class="ratio js--ratio"> <div class="mask"> <img data-aspect-ratio="0.7159090909090909" src="/assets/resized/sm/upload/xj/rf/9v/i2/nziff-1-0-440-0-0.jpg?k=4f40227d57" srcset="/assets/resized/sm/upload/xj/rf/9v/i2/nziff-1-0-880-0-630-crop-1.jpg?k=27575ecd6a 2x" alt="Image for NZIFF" /> </div> </div> </div> </div> </a> </div> </article> <article class="project" data-text-color="dark"> <div class="proportions" style="background-color:#FCF0DB"> <a class="repositioning" href="/work/the-greenhouse/"> <h3 class="name">The Greenhouse</h3> <div class="device js--device -desktop -landscape" data-device-type="desktop"> <div class="bezel js--bezel"> <div class="ratio js--ratio"> <div class="mask"> <img data-aspect-ratio="0.8522727272727273" src="/assets/resized/sm/upload/56/uu/yp/ks/gha-2-0-440-0-0.jpg?k=f5fa3ab99a" srcset="/assets/resized/sm/upload/56/uu/yp/ks/gha-2-0-880-0-750-crop-1.jpg?k=f132e6ef39 2x" alt="Image for The Greenhouse" /> </div> </div> </div> </div> </a> </div> </article> <article class="project" data-text-color="light"> <div class="proportions" style="background-color:#E40712"> <a class="repositioning" href="/work/honda-new-zealand/"> <h3 class="name">Honda New Zealand</h3> <div class="device js--device -desktop -landscape" data-device-type="desktop"> <div class="bezel js--bezel"> <div class="ratio js--ratio"> <div class="mask"> <img data-aspect-ratio="1.5" src="/assets/resized/resized/sm/upload/3q/vm/dq/po/honda-home-crop-tall-0-440-0-0-0-0-0-660-crop-1.jpg?k=6d1ae8eb2c" srcset="/assets/resized/resized/sm/upload/3q/vm/dq/po/honda-home-crop-tall-0-880-0-2068-crop-1-0-0-0-1320-crop-1.jpg?k=e43f67cd35 2x" alt="Image for Honda New Zealand" /> </div> </div> </div> </div> </a> </div> </article> </div> <a class="moreoftypetitle -allworklink" href="/work/">All<span class="extendedtext"> work</span></a></h3> </section> </div> </div> </article> <div class="adjacent-project-navigation"> <a class="arrow -previous" href="/work/the-coconet/" data-target="-1"> <img src="/static/img/assets/arrow.3dd72681.svg"> </a> <a class="arrow -next" href="/work/letterboxd/" data-target="1"> <img src="/static/img/assets/arrow.3dd72681.svg"> </a> </div> <footer class="site-footer"> <div class="constraint"> <div class="copyright">&copy;<!-- 2025 --> Cactuslab, est. 2001 <a class="backtotop js--backtotop -is-hidden">&#8593;</a> </div> </div> </footer> </div> </div> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-748523-1', 'auto'); ga('send', 'pageview'); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10