ZIM - Financials - Quarterly Reports (2024)

Financial Summary Table

', minYear: 2015, showPast: true, fetchAllYears: true, itemNotFoundMessage: '

No financial data available right now. Please check back later.

', contentSources: { 'Press Release': { type: 'financials', docCategories: ['news'], reportTypes: ['First Quarter', 'Second Quarter', 'Third Quarter', 'Fourth Quarter'] }, 'Financial Statement': { type: 'financials', docCategories: ['file', 'tenq', 'tenk'], reportTypes: ['First Quarter', 'Second Quarter', 'Third Quarter', 'Fourth Quarter'] }, 'Earnings Webcast': { type: 'financials', docCategories: ['webcast'], reportTypes: ['First Quarter', 'Second Quarter', 'Third Quarter', 'Fourth Quarter'] }, 'Earnings Presentation': { type: 'financials', docCategories: ['presentation'], reportTypes: ['First Quarter', 'Second Quarter', 'Third Quarter', 'Fourth Quarter'] }, // 'Earnings Transcript': { // type: 'financials', // docCategories: ['transcript'], // reportTypes: ['First Quarter', 'Second Quarter', 'Third Quarter', 'Fourth Quarter'] // }, 'Annual Report': { type: 'financials', docCategories: ['file', 'online', 'annual'], reportTypes: ['Annual Report'], label: 'ar' }, 'Other: Press Release': { type: 'news', tags: ['financials'], label: 'other' }, 'Other: Earnings Webcast': { type: 'events', tags: ['financials'], label: 'other' }, 'Other: Earnings Presentation': { type: 'presentations', tags: ['financials'], label: 'other' }, 'SEC: Financial Statement': { type: 'sec', symbol: SECCONFIG.cik, excludeNoDocuments: true, includeHtmlDocument: true, filingTypes: ['10-K', '10-K/A', '10-Q'], exchange: 'CIK', label: 'sec' }, }, template: ( /* beautify preserve:start */ '{{#tplData}}' + '

' + '' + '' + '

' + '' + '' + '' + '' + '{{#years}}' + '' + '{{/years}}' + '' + '' + '' + '{{#categories}}' + '' + '' + '{{#catYears}}' + '' + '{{/catYears}}' + '' + '{{/categories}}' + '' + '
Financial summary table containing documents grouped by year, quarter and type
{{year}}
{{catTitle}}' + '{{#docs}}' + '{{#url}}' + '' + '{{{text}}} ' + '{{#blank}}(opens in new window){{/blank}}' + '' + '{{/url}}' + '{{^url}}' + ' {{shortType}} {{shortType}} {{year}} {{catTitle}} not available' + '{{/url}}' + '{{/docs}}' + '

' + '{{/tplData}}' /* beautify preserve:end */ ), beforeRender: function (e, data) { var categories = [], documents = {}, years = [], shortTypes = ['Q4', 'Q3', 'Q2', 'Q1'], arDocFormats = ['HTML', 'PDF'], tplData = { years: [], categories: [] }; function makeTargetBlank(doc) { if (doc.url) { var url = doc.url.toLowerCase().split('.'); if (url[url.length - 1] != 'aspx') { doc.blank = true; } } } function addContentItem(contentSrc, year, shortType, dataItem, override) { var overrideItem = override; if (documents[contentSrc]) { if (dataItem.shortType == "AR") { dataItem.text = dataItem.type == null ? 'HTML' : dataItem.type; var fIndex = documents[contentSrc][year].findIndex(function (arItem) { return arItem.docFormat == dataItem.text; }); if (fIndex > -1) documents[contentSrc][year].splice(fIndex, 1, dataItem); } else { var qIndex = documents[contentSrc][year].findIndex(function (quarter) { return quarter.shortType == shortType; }); if (overrideItem || !documents[contentSrc][year][qIndex].url) documents[contentSrc][year].splice(qIndex, 1, dataItem); } } } function setupFinancials(src, itm) { var contentSrc = src.title, year = itm.year, override = true, shortType = itm.shortType; if (itm.docs.length) { $.each(itm.docs, function (i, doc) { var docData = { category: doc.docCategory, type: doc.docType, shortType: shortType, size: doc.docSize, title: doc.docTitle, url: doc.docUrl, year: year, thumb: doc.docThumb, }; makeTargetBlank(docData); addContentItem(contentSrc, year, shortType, docData, override); }); } } function setDocDataOther(itm, contentSrc, contentID, docDataOther) { docDataOther.contentSrc = contentSrc; docDataOther.shortType = itm.shortType; docDataOther.year = itm.year; docDataOther.title = itm.title; switch (contentID) { case 'Press Release': docDataOther.category = itm.category; docDataOther.type = itm.docType; docDataOther.thumb = itm.thumb; itm.docUrl ? docDataOther.url = itm.docUrl : docDataOther.url = itm.url; break; case 'Earnings Webcast': if (itm.webcast) docDataOther.url = itm.webcast; // might have other secondary sources in it if (itm.docs) { $.each(itm.docs, function (ind, doc) { doc.title = doc.title.toLowerCase(); if (doc.title.includes('transcript')) { // if there's a webcast we need to create a new item to process from the beginning if (itm.webcast) { doc.contentSourceID = 'Earnings Transcript'; doc.year = itm.year; doc.shortType = itm.shortType; // do this by creating a new 'Transcript' src that will get appended to arr being looped through var otherTranscript = { title: CONTENTTITLES['Earnings Transcript'], id: 'Earnings Transcript', label: 'other', items: [] }; otherTranscript.items.push(doc); data.contentSources.push(otherTranscript); } // no webcast, just prep the transcript else { docDataOther.contentSrc = CONTENTTITLES['Earnings Transcript']; docDataOther.type = doc.extension; docDataOther.type = doc.docType; docDataOther.size = doc.docSize; docDataOther.title = doc.title; docDataOther.url = doc.url; } } }); } break; case 'Earnings Presentation': if (itm.tags.indexOf('transcript') > -1) docDataOther.contentSrc = CONTENTTITLES['Earnings Transcript']; docDataOther.type = itm.docType; docDataOther.size = itm.docSize; docDataOther.title = itm.title; itm.docUrl ? docDataOther.url = itm.docUrl : docDataOther.url = itm.url; break; case 'Earnings Transcript': docDataOther.type = itm.extension; docDataOther.size = itm.size; docDataOther.title = itm.title; docDataOther.url = itm.url; break; } makeTargetBlank(docDataOther); } function setupOther(src, itm) { var contentSrc = src.title, contentID = src.id, override; WIDGETSETUP.onlyFillBlanksOther ? override = false : override = true; var docDataOther = {}; setDocDataOther(itm, contentSrc, contentID, docDataOther, override); addContentItem(docDataOther.contentSrc, itm.year, itm.shortType, docDataOther, override); } function setupDocDataSec(itm, contentSrc, docDataSEC) { docDataSEC.contentSrc = contentSrc; docDataSEC.year = new Date(itm.date).getFullYear(); docDataSEC.date = itm.date; docDataSEC.type = itm.type; if (itm.description === 'Annual Report') { docDataSEC.year = SECCONFIG.secAnnualSameYear ? docDataSEC.year : docDataSEC.year - 1; docDataSEC.shortType = 'Q4'; } else { var filingMonth = new Date(itm.date).getMonth(); if (filingMonth >= SECCONFIG.secQuarterlyRange.Q1.monthStart && filingMonth <= SECCONFIG.secQuarterlyRange.Q1.monthEnd) { docDataSEC.shortType = 'Q1'; } else if (filingMonth >= SECCONFIG.secQuarterlyRange.Q2.monthStart && filingMonth <= SECCONFIG.secQuarterlyRange.Q2.monthEnd) { docDataSEC.shortType = 'Q2'; } else if (filingMonth >= SECCONFIG.secQuarterlyRange.Q3.monthStart && filingMonth <= SECCONFIG.secQuarterlyRange.Q3.monthEnd) { docDataSEC.shortType = 'Q3'; } } } function setupSECdocs(itm, docDataSEC) { if (SECCONFIG.secFilingTypes[itm.type]) { $.each(SECCONFIG.secFilingTypes[itm.type].preferredDocs, function (x, prefDoc) { var found = false; $.each(itm.docs, function (j, secDoc) { if (prefDoc === secDoc.docType) { docDataSEC.docType = secDoc.docType; docDataSEC.title = itm.type; docDataSEC.url = secDoc.docUrl; docDataSEC.DocumentType = 'File'; docDataSEC.thumb = null; makeTargetBlank(docDataSEC); found = true; } }); if (found) return false; }); } } function setupSec(src, itm) { var contentSrc = src.title, override, docDataSEC = {}; WIDGETSETUP.onlyFillBlanksSec ? override = false : override = true; setupDocDataSec(itm, contentSrc, docDataSEC); setupSECdocs(itm, docDataSEC); addContentItem(contentSrc, docDataSEC.year, docDataSEC.shortType, docDataSEC, override); } function createContentObj(src) { src.title = CONTENTTITLES[src.id]; if (src.label !== 'other' && src.label !== 'sec') { categories.push(src.title); documents[src.title] = {}; $.each(years, function (j, year) { documents[src.title][year] = []; if (src.label == 'ar') { documents[src.title][year][0] = { 'docFormat': 'PDF', 'shortType': 'AR', 'text': 'PDF', }; // $.each(arDocFormats, function (k, arDocFormat) { // documents[src.title][year][k] = { // 'docFormat': arDocFormat, // 'shortType': 'AR', // 'text': arDocFormat, // }; // }); } else { $.each(shortTypes, function (k, shortType) { documents[src.title][year][k] = { 'shortType': shortType, 'text': shortType }; }); } }); } } function organizeTemplateData() { $.each(years, function (i, year) { tplData.years.push({ year: year }); }); $.each(categories, function (i, cat) { var tplCat = { catTitle: cat, catYears: [] }; $.each(years, function (i, year) { documents[cat][year].reverse(); tplCat.catYears.push({ 'docs': documents[cat][year] }); }); $.each(tplCat.catYears, function (idx, year) { $.each(year.docs, function (i, doc) { if (doc.shortType !== 'AR') { doc.text = doc.shortType; } if (doc.shortType == 'AR') { doc.text = "AR" } }); }); tplData.categories.push(tplCat); }); } function checkForUrl(doc) { return doc.url == undefined; } function removeEmptyCols(zeData) { var emptyCats = [], emptyCatCount = {}, catQuant = tplData.categories.length; $.each(zeData.categories, function (i, catg) { $.each(catg.catYears, function (j, caty) { if (caty.docs.every(checkForUrl)) { emptyCats.push(j); } }); }); for (var z = 0; z < emptyCats.length; z++) { var num = emptyCats[z]; emptyCatCount[num] = emptyCatCount[num] ? emptyCatCount[num] + 1 : 1; } for (var v = 0; v < catQuant; v++) { if (emptyCatCount[v] == catQuant) { tplData.years.splice(v, 1); $.each(tplData.categories, function (f, catg) { catg.catYears.splice(v, 1); }); } } } function setYearAndShorttype(src) { $.each(src.items, function (ind, itm) { $.each(itm.tags, function (i, tag) { if (tag.startsWith('fin-')) { var detailsArr = tag.split('-'); itm.year = parseInt(detailsArr[1]); itm.shortType = detailsArr[2].toUpperCase(); // for items outside of desired years. If future year, append year to years array, if past year (such as fourth quarter docs from prev year), remove item. if (years.indexOf(itm.year) == -1) { itm.year > years[0] ? years.unshift(itm.year) : src.items.splice(ind, 1); } } }); }); } // 1. create array of item years for mapping later $.each(data.years, function (i, year) { years.push(year.year); }); // 2. the secondary content sources need their shortType and Year set from the tags $.each(data.contentSources, function (i, src) { if (src.id.startsWith('Other')) src.id = src.id.replace('Other: ', ''); if (src.id.startsWith('SEC')) src.id = src.id.replace('SEC: ', ''); setYearAndShorttype(src); }); // 3. create temporary templates for items to be pushed to later $.each(data.contentSources, function (i, src) { createContentObj(src); }); // 4. loop through items and push into previously created temporary templates accordingly for (var i = 0; i < data.contentSources.length; i++) { var src = data.contentSources[i]; if (src.label !== 'other' && src.label !== 'sec') { $.each(src.items, function (i, itm) { setupFinancials(src, itm); }); } else if ((src.label == 'other') && WIDGETSETUP.useOther) { $.each(src.items, function (i, itm) { setupOther(src, itm); }); } else if (src.label == 'sec' && WIDGETSETUP.useSec) { $.each(src.items, function (i, itm) { setupSec(src, itm); }); } } // 5. prepare good template organizeTemplateData(); // 6. rid of empties removeEmptyCols(tplData); data.tplData = tplData; }, complete: function () { var years = $('.module-financial-table_header-year'); var rightArrow = $('.module-financial-table_track-arrow--right'); var leftArrow = $('.module-financial-table_track-arrow--left'); var columnWidth = 268; var trackPosition = 0; var visibleTracks = 3; var trackEnd = years.length - visibleTracks; $('.module-financial-table_column > span.AR:not(:first-child)').each(function (i, span) { $(span).before('/') }); //screen sizes must be largest to smallest responsive = [{ breakpoint: 1024, visibleTracks: 3 }, { breakpoint: 768, visibleTracks: 2 }, { breakpoint: 480, visibleTracks: 1 } ]; function updateTrack() { $('.visible-track').removeClass('visible-track'); for (var i = 0; i <= (visibleTracks - 1); i++) { $('.module-financial-table_track .module-financial-table_item:nth-child(' + (trackPosition + i + 2) + ')').addClass('visible-track').find('.doc-link'); } $('.module-financial-table_track-showing').text('showing ' + (trackPosition + 1) + '-' + (trackPosition + visibleTracks) + ' of ' + (trackEnd + visibleTracks)); $('.module-financial-table_column-year').css('transform', 'translateX(-' + columnWidth * trackPosition + 'px)'); } function updateResponsive() { for (var i = 0; i < responsive.length; i++) { if (window.matchMedia('(min-width: ' + responsive[i].breakpoint + 'px)').matches) { visibleTracks = responsive[i].visibleTracks; break; } else { visibleTracks = 1; } } trackEnd = years.length - visibleTracks; columnWidth = $('.module-financial-table .module_container').width() / (visibleTracks + 1); $('.module-financial-table_column').css('width', (columnWidth + 'px')); $('.module-financial-table_container-years').css('margin-left', (columnWidth + 'px')); $('.module-financial-table_header-year').css('width', (columnWidth + 'px')); $('.module-financial-table_track-arrow--left').css('left', ((columnWidth + 20) + 'px')) updateTrack(); if (trackPosition === trackEnd) { rightArrow.addClass('module-financial-table_track-arrow--disabled').attr('disabled', true); } if (trackPosition === 0) { leftArrow.addClass('module-financial-table_track-arrow--disabled').attr('disabled', true); } } updateResponsive(); $(window).resize(function () { updateResponsive(); }); rightArrow.on('click', function (e) { e.preventDefault(); if (trackPosition < trackEnd) { trackPosition++; updateTrack(); leftArrow.removeClass('module-financial-table_track-arrow--disabled').removeAttr('disabled'); } if (trackPosition === trackEnd) { rightArrow.addClass('module-financial-table_track-arrow--disabled').attr('disabled', true); } }); leftArrow.on('click', function (e) { e.preventDefault(); if (trackPosition > 0) { trackPosition--; updateTrack(); rightArrow.removeClass('module-financial-table_track-arrow--disabled').removeAttr('disabled'); } if (trackPosition === 0) { leftArrow.addClass('module-financial-table_track-arrow--disabled').attr('disabled', true); } }); } }); })();

Proxy Statements

Download item year list

Download Description

AGM October 2023 - Results (opens in new window)

108 KB

AGM October 2023 - Announcement of Deferred Meeting (opens in new window)

109 KB

AGM October 2023 (opens in new window)

1.75 MB

AGM July 2022 (opens in new window)

132 KB

EGM April 2022 - Supplement to Notice and Proxy Statement (opens in new window)

35 KB

EGM April 2022 (opens in new window)

100 KB

EGM December 2021 (opens in new window)

333 KB

AGM May 2021 (opens in new window)

421 KB

ZIM - Financials - Quarterly Reports (2024)
Top Articles
Latest Posts
Article information

Author: Kimberely Baumbach CPA

Last Updated:

Views: 5656

Rating: 4 / 5 (61 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Kimberely Baumbach CPA

Birthday: 1996-01-14

Address: 8381 Boyce Course, Imeldachester, ND 74681

Phone: +3571286597580

Job: Product Banking Analyst

Hobby: Cosplaying, Inline skating, Amateur radio, Baton twirling, Mountaineering, Flying, Archery

Introduction: My name is Kimberely Baumbach CPA, I am a gorgeous, bright, charming, encouraging, zealous, lively, good person who loves writing and wants to share my knowledge and understanding with you.