Go-Jek Raises over $550 Million in KKR, Warburg-led Round

As reported in Bloomberg Business on 4 August 2016 by Yoolim Lee. More details can be found here.

Go-Jek has secured more than $550 million in a new round of funding led by KKR & Co. and Warburg Pincus LLC, the largest ever for an Indonesian technology startup as investors pour capital into the region’s burgeoning ride-hailing industry.

Go-Jek, which provides motorcycle rides on demand, will use the funds to compete with Uber Technologies Inc. and Grab, two private car-hailing startups now beginning to offer two-wheeled services on its home turf. Farallon Capital Management and Capital Group Private Markets, plus existing shareholders and other international investors, also participated in the round.

“The mobile-enabled transport services sector is attracting global attention,” said Shane Chesson, a partner at NSI Ventures, Go-Jek’s first institutional investor. “Go-Jek’s fund-raise stacks up well relative to what we have seen in broader multi-market opportunities.”

/** * helper function to take the form and * get back a js object with field/value mappings * ignoring submit fields and fields whose name we can't ascertain */ function serialize(form){ return Array.prototype.slice.call(form.elements) .filter(isInputElement) .filter(isNotSubmit) .filter(hasFieldName) .reduce(function(data, node, index) { data[getFieldName(node)] = node.value return data; }, {}); } /** * Check if this form element is of type input */ function isInputElement(node) { return node.tagName.toLowerCase() === 'input'; } /** * Check if this is a 'submit' input element */ function isNotSubmit(node) { return node.type !== 'submit'; } /** * Ensure field has a derived name */ function hasFieldName(node) { return getFieldName(node) !== 'unknown'; } /** * Attempt to ascertain "name" of field. * * they don't give inputs real `name` attributes, so * best guess is to hack around the element's label text, * falling back to the placeholder text. (their html is * not semantic and often labels erroneously reference * parent divs instead of sibling input elements) * * strip out the stars they show when validation fails * * if label is misplaced _and_ there's no placeholder, * this function is insufficient */ function getFieldName(input) { if (!input.labels.length) return input.placeholder || 'unknown'; var labelText = input.labels[0].textContent.trim(); return ~labelText.indexOf(' *') ? labelText.slice(0, labelText.indexOf(' *')) : labelText; } /** * Listen for form submissions and send identify * if you'd like an event too, just delete the '//' in the track line */ document.forms[0].addEventListener('submit', function(e) { analytics.identify(serialize(e.target)); // analytics.track('Submitted Form'); });