Corporate Results Monitor

FNArena's All-Year Round Australian Corporate Results Monitor.

Currently monitoring March-July 2021.

Figures shown as at 21 June 2021

FNArena subscribers receive the most current information. Please login with your account details.

TOTAL STOCKS:

47

Beats

26

In Line

10

Misses

11

Total Rating Upgrades:

9

Total Rating Downgrades:

17

Total target price movement in aggregate:

4.33%

Average individual target price change:

3.56%

Beat/Miss Ratio:

2.36

Previous Corporate Results Updates

Company Result Upgrades Downgrades Buy/
Hold/Sell
Prev Target New Target Brokers Commentary
ALQ - ALS BEAT 0 2 2/4/0 10.28 12.51 6

ALS Ltd posted a clear beat of consensus, while the dividend was significantly higher than expected. To Ord Minnett (Hold) it appears the company has rounded the covid corner straight into a potential commodities boom. Macquarie (Buy) considers ALS to be the leader versus other global cyclicals in terms of resilient earnings. It's also considered the leader versus domestic contractors in terms of less exposure to labour/supply chain constraints. Further upside is expected but not at such a strong pace. Two downgrades to Hold reflect share price strength.

AMC - Amcor BEAT 0 0 4/3/0 16.81 17.13 7

Amcor's nine-month result beat all forecasts, underpinned by organic growth, Bemis merger synergies and share buy-back accretion. FY guidance has been upgraded. Brokers note increased raw material costs will flow through in the last quarter, although Morgan Stanley (Buy) suggests the company is handling resin cost inflation well. The fourth quarter will also see the cycling of tough comparables from last year. Varying levels of concern inform a split of ratings, although as ever brokers can point to Amcor's leading position across key global consumer packaging markets, earnings resilience and solid dividend yield of around 4%.

ANZ - ANZ Bank BEAT 0 2 3/3/0 30.09 30.17 6

ANZ Bank reported earnings in excess of broker forecasts, and also lifted its dividend by more than expected. But the market took a dim view on the outlook. Most of the earnings beat was due to the return of unneeded provisions against bad debts, and signs are of a slowing of revenues. Net interest margin and capital improved, but not all brokers are convinced the bank can reach management's ambitious cost reduction target. On a re-rating prior to the result, Credit Suisse and Morgan Stanley pull back to Hold, suggesting there is little to provide for further earnings upgrades ahead.

ALL - Aristocrat Leisure IN LINE 0 1 4/2/0 40.65 43.11 6

The highlight of Aristocrat Leisure's result, which was in line with upgraded guidance, was an apparent increase in market share. March quarter sales were down -40% on 2019 against a market drop of -45%. New machines installed in North America were well ahead of expectation. This provides strength against an expected second half easing in digital as the company cycles last year's lockdowns. Aristocrat is outspending its rivals but a fat balance sheet has brokers anticipating M&A. Macquarie (Hold) believes FY22 profit could exceed the pre-pandemic peak.

AST - AusNet Services MISS 0 0 0/4/1 1.87 1.84 5

AusNet Services' FY21 earnings missed forecasts due to an unexpected impairment of geospatial assets and higher operating expense in electricity distribution. However, the focus for brokers was on FY22 guidance. The company guided to flat FY22 distributions in order to maintain its credit rating and ahead of significant capex required for the newly acquired Mondo business from FY23. An earnings uplift from Mondo is now not expected until at least FY25. The company is considered a stable cash generator, and benefits from a government policy that supports renewables. On the flip side, these benefits are not likely to start flowing before FY23 and more materially FY25.

API - Australian Pharmaceutical Industries MISS 0 1 1/2/0 1.32 1.35 3

Australian Pharmaceutical Industries missed on forecasts due to a greater than expected impact from covid lockdowns. Citi has downgraded to Hold. Macquarie (Buy) believes foot traffic will begin to pick up as consumers reemerge and CBDs start to refill, and suggests upside is also on offer from the acquired Clear Skincare business building scale. Credit Suisse (Hold) disagrees, believing positive skincare industry tailwinds are not enough to offset weak retail and manufacturing sales plus higher costs.

BOQ - Bank of Queensland IN LINE 1 0 4/1/0 9.23 9.82 6

Bank of Queensland's improved result was led by strong deposit margin benefits and low impairment charges, broadly in line with guidance and broker forecasts. The dividend was also as expected. Brokers expect better momentum in retail banking will support above-system growth in mortgages in future periods. An improved net interest margin outlook is also considered a strong positive in the low rate environment. Provisions for bad debts are looking increasingly conservative and provision releases are a possibility. Increased scale and earnings diversification from the ME Bank acquisition is another positive. Ord Minnett upgrades to Buy, seeing the best turnaround prospect in the sector.

BKW - Brickworks BEAT 0 0 4/1/0 21.75 22.81 5

Brickworks' beat was driven by demand for industrial property driving valuations higher. Earnings momentum nonetheless continues to build in both the building products and property divisions. Other than disruption in NSW (rain), the second half should remain strong on HomeBuilder demand. The company also boasts property development potential that could significantly boost rental income. Conditions in US non-residential construction remain challenging, but building products account only for around 15% of valuation.

CIA - Champion Iron BEAT 1 0 1/1/0 6.65 7.55 2

Champion Iron reported FY21 financial results featuring strong growth in revenue, earnings and cash flow year-on-year. The Bloom Lake phase II expansion was approved in the period and management finalised the Kami acquisition. Citi believes the company is well-positioned to capitalise on a global de-carbonisation theme and expansion upside via Phase II delivery and potential Phase III expansion post the Kami acquisition, and upgrades to Neutral from Sell.

CLV - Clover IN LINE 1 0 2/0/0 2.29 2.19 2

It was a tough year for Clover Corp, with covid leading to a steep decline in infant formula demand. The company's result met expectations, with cost controls helping to weather the storm. FY21 guidance leads UBS to downgrade forecasts, but the broker upgrades to Buy on a recovery play offering a best-of-breed product and a unique growth story. Ord MInnett believes Clover is well-placed with its global network of infant formula customers that enables the company to meet demand wherever it may arise first.

CSR - CSR BEAT 0 1 2/4/0 5.51 6.40 6

CSR's result beat forecasts on better than expected cost control, and slightly better Building Product margins and Aluminium performance. With 95% of the aluminium book hedged, the division is expected to produce positive FY22 earnings. Both the dividend and special dividend exceeded expectations. Most brokers believe the macro backdrop is becoming more supportive, with Citi (Buy) detecting the early stages of an earnings upgrade cycle for the company. UBS (Hold) sees further near term upside, but with housing nearing peak levels in the broker's view, suggests the risk/reward outlook is more balanced.

ECX - Eclipx BEAT 0 0 3/0/0 2.32 2.53 3

Eclipx Group's result solidly beat forecasts of fleet net operating income, expenses and in particular, end of lease income, which was supported by record used car prices. The company boasts a record order pipeline and new business written is expected to pick up. The announced buyback came earlier than expected and second half new business writing could surprise to the upside, with one tailwind coming from a historically high fleet backlog and returning novated lease demand, offset by supply chain disruption.

ELD - Elders BEAT 0 0 2/0/0 12.95 13.75 2

Elders' result beat already strong forecasts driven by a mix of seasonal conditions, bolt-on acquisitions and organic growth, with cattle prices at record levels. The question now is as to whether the second half can see a repeat performance. Brokers agree cattle prices will likely ease, and to that end Morgans (Hold) sees earnings moderating. Citi (Buy) believes volumes will increase to offset any cattle price easing while Macquarie (Buy) suggests Elders is firing on all cylinders and forecasts a strong first half flowing through to a strong second half.

FCT - FirstWave Cloud Technology IN LINE 1 0 1/0/0 0.18 0.16 1

Firstwave Cloud technology's third quarter results were announced along with a $6m placement and a Share Purchase Plan for up to $2.5m (both at 9cps). Morgans estimates a balance of $12-15m of cash after the raise, which should fund the company for 12-24 months. The broker highlights meaningful progress with nine Level 1 and 49 billing partners already signed. These existing partners are considered to have the potential to generate around $70m of revenue and make the company profitable. Morgans reduces its target but this still represents significant upside to the current share price. An upgrade to Speculative Buy from Hold follows.

FPH - Fisher & Paykel Healthcare MISS 0 1 1/1/1 34.00 30.00 3

While Fisher & Paykel Healthcare posted 82% year on year earnings growth, this was well below forecasts due to lower hospital consumables sales. The clouds have now moved in on the company's moment in the sun, in which ventilator sales surged. The below-expectations result reflects lower demand for traditional product applications, primarily in the US and Europe. Brokers have rushed to cut earnings forecasts and targets, with the company offering no guidance due to uncertainty.

GNC - Graincorp BEAT 0 1 3/1/0 6.09 6.30 4

GrainCorp's result beat broker forecasts and FY guidance was materially upgraded. While a bumper FY21 crop was well anticipated, it was a substantial structural improvement in efficiency that drove the beat. The initial outlook for the FY22 east coast winter crop is encouraging, with FY21 rainfall improving soil moisture conditions. Brokers thus suggest potential earnings upside for FY22 but as is always the case with agri-stocks, it will all come down to the weather. Credit Suisse downgrades to Hold on valuation.

IPL - Incitec Pivot MISS 0 0 5/2/0 3.00 2.90 7

Incitec Pivot's result missed forecasts due to a deferral of diammonium phosphate sales and a lower realised DAP price. Industry fundamentals remain attractive and keep most brokers on Buy. All agree Incitec's shorter term performance hinges on resolving ongoing issue at the Waggaman plant in the US. The ability to achieve normal operating rates at Waggaman and the quality of the plant are dividing investor views. As there is no objective proof of plant quality, Credit Suisse (Hold) believes there will need to be several months of stable operations to prove the company's case.

IAP - Irongate MISS 1 1 1/1/0 1.39 1.49 2

Irongate Group's FY21 funds from operations were -5.3% less than FY20 and -1.6% below Ord Minnett’s forecast. A final dividend of 4.5c was declared, translating to a full-year payout of 8.92c. Ord Minnett considers the portfolio to be in good shape with strong revaluation uplifts in the second half. While office market fundamentals deteriorated, the broker highlights Irongate's strong asset management capabilities, which in the broker's view makes the company well placed to navigate potential headwinds. Industrial remains in demand among institutional investors. Macquarie took its time, but followed up with a downgrade to Neutral.

JHX - James Hardie Industries BEAT 0 0 4/2/0 44.84 45.82 6

James Hardie's FY21 result beat forecasts on revenue strength in Asia-Pacific and Europe. North America slightly disappointed and was impacted by two Texas plants being shut down during the Big Freeze. Home building growth is expected in double-digits into FY22 in both Australia an North America and the June quarter has already rebounded strongly from weather events. Management has warned, nevertheless, that rising raw material cost will be a significant headwind in FY22, but brokers believe James Hardie can continue to gain market share with a focus on higher-priced products.

JMS - Jupiter Mines BEAT 0 0 1/0/0 0.35 0.35 1

Jupiter Mines' full-year earnings result beat Macquarie by 15% while the 2c dividend was as expected. Tshipi was South Africa’s largest exporter of manganese at 3.4mtpa in FY21 and continues to lower operating costs. The broker expects further operational strength in FY22 but notes downside risk to earnings at current manganese spot prices. It's nonetheless hard to go past a 10% dividend yield forecast from FY22 (current financial year) onwards. Outperform retained.

KMD - Kathmandu IN LINE 0 0 0/1/0 1.35 1.30 1

Kathmandu's earnings were pre-released and in line with Macquarie's forecasts, while net profit beat estimates in the first half. Margins at Rip Curl improved amid restructuring and synergy savings. Some of this margin expansion, Macquarie suspects, is a one-off and margins are expected to settle in the mid-teens. The broker is reassured by the company's commentary, although a resolution on the CEO is still in train and strong comparables will be cycled over winter.

MQG - Macquarie BEAT 0 0 3/1/1 152.38 161.20 5

Macquarie Group's result beat estimates and featured a return to pre-covid profit levels. The beat came from performances in Commodities and Global Markets offsetting weaker numbers in other divisions. While such performance is expected to moderate, other divisions should take the baton, fueled by strong private markets and structural tailwinds in renewables and infrastructure on top of solid inflows into investment management. Citi (Sell) is not convinced, finding a lack of guidance as "odd", and noting risks around the prospect of higher interest rates and higher US taxes.

MYR - Myer MISS 0 0 1/0/0 0.40 0.40 1

Myer's first half results missed, but also highlighted to Citi a strong net cash position and a well placed balance sheet, well inside covenants. Capex is expected to increase in the second half before returning to normalised levels from FY22. No guidance was provided. The broker notes underperformance relative to peers on the degree of sales transfer to online from closed stores, with online sales growth moderating to 71%. Citi's earnings estimates have been cut by -18% in FY21, -2% in FY22 and -9% in FY23 with management placing the balance sheet on a higher priority than earnings. The broker retains the $0.40 target and Buy/High Risk rating, given the possibility of corporate action at the current depressed looking share price.

NAB - National Australia Bank BEAT 0 1 1/5/0 27.20 27.58 6

Brokers agree National Bank's result beat consensus, but it did not beat all database brokers. The reduction in bad debt impairments underwhelmed, and trading income was also soft. The bank's revenue trajectory exceeded peers, thanks to a shift in momentum in housing and business lending, but brokers are split on whether this trend can continue. Investor mortgage demand is on the rise and NAB is losing market share. Brokers are also split on the dividend trajectory, and there is concern with regard an increase in loans in arrears. Ord Minnett downgrades to Hold seeing limited potential upside despite above-peer revenue growth.

NHC - New Hope BEAT 0 0 1/3/0 1.44 1.46 4

New Hope Corp's result beat most forecasts, driven by higher than expected realised prices and a cost reduction at Bengalla. A 4c dividend was also considered a surprise, supported by a strong second half outlook. Thermal coal prices have increased around 100% since the lows of mid 2020 and there is upside to be gained in a spot price scenario. Higher prices are also expected to offset the impact of the NSW floods. Morgans (Buy) considers the company is conservatively valued on 80%-owned Bengalla's cash flows only while hard assets and growth options are still for free. Three Holds suggest others disagree.

NWS - News BEAT 0 1 3/1/0 36.23 39.27 4

News Corp's result beat forecasts with both revenue and operating income higher than expected. While REA Group made a positive contribution, as usual brokers were pleased with US equivalent Move posting a strong performance. Other segments also performed well, including Dow Jones/Wall Street Journal. The company has guided to higher costs across a number of divisions for the fourth quarter but despite this the revenue trends look favourable, plus the fourth quarter should see benefits from partnerships with Google and Facebook and recent acquisitions.

NUF - Nufarm BEAT 0 1 4/3/0 5.49 5.68 7

Nufarm's result blew forecasts away. Strength was seen across all segments, but particularly strong were Europe and A&NZ. The sale of higher margin products and cost-out benefits from the Performance Improvement Program also contributed. Management warned the first half may indicate a pull-forward of demand from the second half on a rush to restock inventory as a hedge against further covid disruption, but brokers highlight favourable weather conditions expected across key regions. Brokers suspect that despite a traditional first half skew, management is being conservative. One downgrade to Hold (Morgan Stanley) on valuation.

ORI - Orica BEAT 1 0 2/5/0 14.94 14.30 7

Orica's first half earnings were down -51% from last year, but not as bad as feared and reflective of covid disruptions, China's thermal coal ban and forex headwinds. There were also issues in transitioning to a new software system. The second half is not expected to see much improvement. From FY22, covid impacts are expected to abate, significant cost-outs are planned and five strategic growth priorities await. Hold ratings largely reflect the need to navigate FY21 but Citi upgrades to Buy, believing a cyclical low for ammonium nitrate volumes has been reached.

PDL - Pendal BEAT 0 0 3/2/0 7.95 8.35 6

Pendal Group's first half result beat expectations on lower costs. Investment performance across the UK/EU rebounded meaningfully, which should support flows and performance fees. The result itself was completely overshadowed by the announced acquisition of US-based fund manager Thompson, Siegel & Walmsley. Brokers see this as a bit of a game changer, noting TSW will likely benefit from an expanded distribution network in the US and globally, the opportunity to build a direct retail brand and more corporate support. Brokers believe Pendal offers the potential for meaningful earnings and multiple upside if management executes on its growth plan.

PX1 - Plexure IN LINE 0 1 0/1/0 1.36 0.80 1

Plexure Group's FY21 was reasonable according to Ord Minnett, and largely in line with guidance. Cash flow surprised to the upside but downward pressure on the gross margin is seen as a concern. Main customer McDonald's is making the company pay for a higher rate of communications and infrastructure costs as app usage increases. Ord Minnett has reduced its forecasts, while acknowledging risks have risen, but also that a re-negotiation of the contract is probably overdue, without putting too much faith in this actually happening. Downgrade to Hold.

PMV - Premier Investments BEAT 1 0 2/3/0 24.77 26.61 5

Premier Investments reported above forecasts and January guidance. Significant margin gains were supported by online growth and rent relief. Margins are expected to normalise but still exceed pre-pandemic levels amid long-term rent reductions and a shift to online. Smiggle providing leverage to reopening will position the company well, suggests Ord Minnett (upgrade to Accumulate), to manage a difficult comparable period in some brands, especially Peter Alexander from 2020. Premier has seen online sales increase to 20% from 10% over the past three years, accelerated by covid. Citi (Hold) expects this to increase to 30% over the next five years, as online continues to be margin accretive.

PPH - Pushpay IN LINE 0 0 0/3/0 1.95 1.84 3

Pushpay Holdings' result was roughly in line with forecasts, with brokers focusing on different metrics. The result reflected the benefit of covid-driven stay-at-home, hence is not expected to be matched in FY22. To that end, Pushpay is pushing into the Catholic market, targeting an ambitious market share target of 25% within five years. While management sees this as the next leg of growth, brokers see success as far from guaranteed, a long way off and requiring material investment in the near-term.

REA - REA BEAT 0 0 2/4/0 152.40 157.75 6

A continued rebound in REA Group's domestic listings during the third quarter was above expectations, offset by slightly increased cost growth and lower depth penetration, but cycling very tough comparables from a year ago. While all brokers foresee the rebound continuing, Morgan Stanley (Buy) considers there is potential for an earnings "super-cycle" over 2021-22 from Sydney/Melbourne listings post-covid and higher property churn as Australians re-think their work and living locations. Earnings are expected to benefit from a cyclical recovery in both residential listings and developer volumes.

RMD - Resmed MISS 1 1 2/4/0 28.20 28.01 6

ResMed's March quarter featured a miss of forecasts on the revenue line due to a drop-off in demand for ventilators, but brokers acknowledge the company was cycling very tough comparables on ventilator demand one year ago. Attention now turns to the sleep device market, which took a back seat during last year. While uncertainty of demand remains in the short term, brokers are confident in an improved FY22, with the late FY21 launch in the US of the new Airsense 11 a driving force, particularly with rival Phillips yet to receive approval of its new device. Ord Minnett upgrades to Hold from Lighten, while Citi, despite seeing the stock as undervalued, pulls back to Hold from Buy.

SHV - Select Harvests MISS 0 0 1/0/0 7.08 6.80 1

After first half results, Citi forecasts FY21 will represent the trough in both pricing and earnings for Select Harvests. A softer result and a softer expected FY21 average almond price drives a -40% reduction in the broker's FY21 earnings forecast. The share price has historically been highly-correlated with spot almond prices, which the broker argues is currently pricing the company's orchard assets at a discount to their potential market value. A current valuation by the analyst implies a $7.23 share price.

SKO - Serko MISS 0 0 2/0/0 6.55 7.38 2

Serko's FY21 net loss was more than Ord Minnett expected. The broker suggests the result highlights a company gearing up for what could be a transformational deal with Booking.com. The traditional online booking tools business continues to be adversely impacted by the decline in corporate travel volumes due to the pandemic. In Ord Minnett's view, investors should focus on potential earnings upside from the Booking.com deal.

SIG - Sigma Healthcare IN LINE 0 1 1/2/0 0.68 0.71 3

Sigma Healthcare's result was largely pre-announced, heavily affected by the pandemic, restructuring and the start of the Chemist Warehouse contract. Macquarie retains Hold given the company's reliance on sales to CW and increased competition in front-end sales. Pharmacy brands are at risk from competition and the company runs the risk of losing the CW contract if that business gains sufficient scale to manage its own supply. Credit Suisse (Buy) expects Sigma will achieve an income growth rate of 10% to FY24, driven by cost-outs, increased efficiencies and continued above-market growth in its retail and wholesale division. Citi downgrades to Hold on valuation.

STG - Straker Translations BEAT 0 0 1/0/0 2.10 2.46 1

Straker Translations reported a very good FY21 result according to Ord Minnett, weathering the covid storm well, winning the IBM contract and adding the highly strategic Lingotek acquisition. The broker notes the company has a solid base for strong growth as conditions improve. Further, Lingotek is expected to provide cross-sell opportunities and drive higher margins while in FY22, the IBM contract will ramp up and aid Straker in showcasing its RAY platform. In the brokers view, covid should lead to a range of acquisition opportunities as the translation industry continues to consolidate.

SM1 - Synlait Milk MISS 0 0 1/1/1 2.78 2.58 4

Synlait Milk's weak result met expectations, but FY21 guidance has led to material forecast earnings downgrades. Weakness was the result of a sudden drop in canned infant formula demand, a shift in mix to ingredients and shipping delays, which Macquarie (Hold) considers to be one-offs. Morgans maintains a Reduce rating due to near-term earnings uncertainty, heightened balance sheet risk and long-term challenges with major customer a2 Milk. UBS (Buy) notes Synlait is trading on a record discount to book value for a business with hard assets and proven world-class manufacturing capability.

TNE - Technology One BEAT 0 0 1/2/0 9.35 9.57 3

A solid result showed TechnologyOne continues to transition customers from its legacy on-premise business to its SaaS product, with 37 new customers added half-on-half. Incremental annual recurring revenue per customer was $570k versus $310k over FY20. Management indicated the second half outlook is strong in Government and Education verticals. As recurring revenue grows the mix improves and the double-digit revenue growth will become clearer. Guidance is for SaaS and continuing business revenue to grow at around a 15% compound annual growth rate once the legacy business is totally wound down.

UMG - United Malt BEAT 0 1 2/2/0 4.41 4.84 4

United Malt Group's result beat both broker forecasts and guidance upgraded in March, due to a stronger than expected recovery in volumes (now 95% of 2019) and a greater than expected impact from the company's Business Transformation Program. The volume recovery should be boosted further as Europe and the UK open up for the northern summer, albeit Asia remains problematic covid-wise. It's not just a matter of higher beer sales but one of opportunities for further expansion. One downgrade to Hold (Credit Suisse) reflects share price appreciation.

VUK - Virgin Money UK BEAT 1 0 0/3/0 2.86 3.73 3

While Virgin Money UK's result goes down as a beat, it can be explained by lower than feared bad debt impairments. Otherwise brokers see a mixed performance. Guidance is for improvement for net Interest margins but Citi suggests investors will be paying attention to a prospective heavy increase in operational costs. Macquarie believes Virgin Money UK is well-placed to enjoy a further re-rating, although another miss on expenses and non-interest income could offset improved margins. The share price rallied into the result, thus Hold ratings retained. Morgans took its time and ended up upgrading to Hold.

VHT - Volpara Health Technologies IN LINE 0 0 1/0/0 1.59 1.87 1

Volpara Health Technologies' FY21 result held few surprises for Morgans. The key highlight was the last quarter average revenue per user (ARPU). FY22 revenue guidance is 30% higher than FY21, aided by the recent CRA acquisition (breast risk assessment company), recent contract wins and a rising ARPU.

SOL - Washington H. Soul Pattinson and Co BEAT 0 0 0/1/0 23.32 28.84 1

Washington H Soul Pattinson's overall positive first half result highlighted to Morgans the cyclical earnings nature of some of the company's core businesses, including investments in New Hope Corp and Round Oak. The investment portfolio remained resilient, generating around $85m of net cash flow, allowing for a 26cps fully franked dividend to be declared. Morgans upgrades its profit forecast by 33% after factoring in improved growth assumptions and earnings upgrades from recent results of core holdings New Hope and Brickworks.

WEB - Webjet IN LINE 0 0 4/3/0 5.54 5.53 7

Another weak result was expected and Webjet delivered, although increased costs offset better than expected revenues. The ongoing Australian border closure pushes an expected recovery out further, but brokers agree a rebound when it happens will be swift due to pent-up demand. While not offering guidance, management is upbeat about prospects in B2B, particularly in the Americas, and remains optimistic about the roll-out of vaccines across the US and UK. It's a matter of uncertain timing, but not of overvaluation.

WBC - Westpac Banking BEAT 0 0 4/2/0 26.79 28.49 6

Westpac's result beat forecasts on lower bad debt provisions and a better net interest margin. While underlying metrics remained relatively subdued, the market cheered on the bank's announced cost cutting target. Brokers have been waiting for such an announcement for years and while considered ambitious, the target is not seen as unachievable. Ord Minnett (Hold) does find it unusual for a business suffering weak and deteriorating customer metrics to embark on such bold cost saving. The new payout ratio, and thus dividend, slightly missed expectations, so all eyes will be on costs.

XRO - Xero MISS 0 0 2/2/2 114.75 119.50 6

Xero's FY21 result featured a beat on subscriber growth and increase in revenues, but higher sales & marketing costs leading to a miss of earnings forecasts. Marketing spend is expected to continue thus leading brokers to rebase earnings expectations for FY22. Yet a return to higher spend stimulated higher than expected subscriber growth, lower churn and better average revenue per user. There is little disagreement among brokers as to Xero's growth potential amidst structural tailwinds. What splits broker ratings is largely a shorter term versus longer term outlook.

Total: 47

ASX50 TOTAL STOCKS:

9

Beats

7

 77.8% 

In Line

1

 11.1% 

Misses

1

 11.1% 

Total Rating Upgrades:

1

Total Rating Downgrades:

4

Total target price movement in aggregate:

4.02%

Average individual target price change:

2.64%

Beat/Miss Ratio:

7.00

ASX200 TOTAL STOCKS:

30

Beats

22

 73.3% 

In Line

3

 10.0% 

Misses

5

 16.7% 

Total Rating Upgrades:

6

Total Rating Downgrades:

13

Total target price movement in aggregate:

4.44%

Average individual target price change:

5.75%

Beat/Miss Ratio:

4.40

Yet to Report

Indicates that the company is also found on your portfolio

SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/21'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/21'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Monday
21 June
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/22'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/22'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Tuesday
22 June
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/23'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/23'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Wednesday
23 June
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/24'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/24'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Thursday
24 June
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/25'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/25'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Friday
25 June
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/28'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/28'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Monday
28 June

earnings result


SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/29'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/29'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Tuesday
29 June

earnings result


SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/30'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/06/30'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Wednesday
30 June
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/01'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/01'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Thursday
1 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/02'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/02'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Friday
2 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/05'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/05'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Monday
5 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/06'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/06'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Tuesday
6 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/07'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/07'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Wednesday
7 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/08'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/08'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Thursday
8 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/09'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/09'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Friday
9 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/12'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/12'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Monday
12 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/13'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/13'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Tuesday
13 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/14'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/14'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Wednesday
14 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/15'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/15'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Thursday
15 July
SELECT calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone, max(p.portfolioID) as portfolioID,
					sec.sector,CASE WHEN (sec.sectorurl IS NULL OR sec.sectorurl = '')
                        THEN 'sector'
                        ELSE sec.sectorurl
                    END as SectorURL   
					FROM (
					select seasonReport,calendarID, source, externalID, title, symbol, itemdate, isDisplayed, 1 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/16'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol != '')
					
					UNION
					
					select seasonReport,calendarID, source, externalID, title, type AS symbol, itemdate, isDisplayed, 0 as display, timezone
					from calendar c left join countrycode cc on c.type = cc.code
					where convert(varchar(10),itemDate,111) = '2021/07/16'
					AND isDisplayed = 1
					AND seasonReport = 1
					AND (symbol = '') 
				) AS calendar
				left join (select p.* from portfolio p inner join customerportfolio cp on p.CustomerPortfolioID = cp.CustomerPortfolioID where cp.customerid = '' and cp.archived is NULL) 
				p on calendar.symbol = p.symbol
				LEFT JOIN (SELECT sr.symbol, s.sector,s.sectorID,dbo.RemoveNonAlphaCharacters(s.sector) as sectorurl FROM sector s 
                    INNER JOIN SectorRelationship sr on s.sectorID = sr.sectorID 
                    WHERE isPriority = 1) AS sec on calendar.symbol = sec.symbol
				GROUP BY calendar.calendarID,calendar.source,calendar.externalID,
					calendar.title,calendar.symbol,calendar.itemdate,calendar.isDisplayed,
					calendar.display,calendar.timezone,sec.Sector,sec.sectorurl
				ORDER BY calendar.display, calendar.timezone desc, calendar.symbol, calendar.title 
Friday
16 July

Listed Companies on the Calendar

Date Code
29/06/2021CKFearnings result
Date Code
28/06/2021MTSearnings result