Corporate Results Monitor

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

Currently monitoring September 2022 - January 2023.

Figures shown as at 10 December 2022

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

TOTAL STOCKS:

50

Beats

25

In Line

16

Misses

9

Total Rating Upgrades:

7

Total Rating Downgrades:

10

Total target price movement in aggregate:

-1.62%

Average individual target price change:

-0.11%

Beat/Miss Ratio:

2.78

Previous Corporate Results Updates

Company Result Upgrades Downgrades Buy/
Hold/Sell
Prev Target New Target Brokers Commentary
ART - Airtasker IN LINE 0 0 1/0/0 1.05 1.05 1

Commenting on FY22 results released by Airtasker on August 31, Morgans remains attracted to the strong growth pathway ahead, assuming execution by management. A key takeaway from results for the analyst was the Australian division becoming earnings positive. The company is targeting positive operating cash flow on a monthly basis by the end of FY23 via cost initiatives and a full year contribution from the OneFlare acquisition. The broker makes only minor changes to forecasts as most headline business metrics for FY22 were pre-released.

ALQ - ALS Ltd BEAT 1 0 3/1/0 13.44 13.38 4

ALS Ltd's result beat forecasts and guidance, with commodities the standout on higher volumes and pricing. The company is planning gradual price increases and a focus on margin improvement to offset inflationary impacts in the second half. Sample flow growth slowed through the half as the company approaches its seasonally weaker period, but brokers believe a notable slowdown may now be delayed. While ALS is not yet fully detached from commodity cycles, Morgans (Buy) suggests structural drivers in Life Sciences are "too compelling" to ignore. Ord Minnett upgrades to Accumulate.

AMC - Amcor IN LINE 0 0 1/5/0 18.58 18.05 6

Amcor's result was roughly in line with forecasts. On a constant currency basis, earnings rose 10% in the quarter, and FY guidance in constant currency terms has been maintained. However, adjusting for the strong US dollar leads to a cut in FX adjusted earnings guidance. Net sales lifted 3% despite volumes declining -0.6%, underpinned by price and mix. Brokers remain wary of volume impacts from channel de-stocking and the economic backdrop, but the business is expected to remain relatively resilient, as always. Management anticipates further price increases to overcome costs for the remainder of FY23.

ANZ - ANZ Bank BEAT 0 1 4/3/0 27.61 27.54 7

ANZ Bank's FY22 net interest margin and bad debt level were better than brokers had expected. Margins are expected to continue rising in FY23. On the flipside, increased cost guidance was worse than expected. The question is as to whether ANZ can grow revenues sufficiently to absorb higher costs and investment as brokers look ahead to weakening macro conditions and a potential increase in loan losses. Citi (Buy) is of the view the banking sector generally plans to use the rise in NIMs to accelerate investment spending. Morgan Stanley noted the stock ran up 15% into the result and downgrades to Hold.

ALL - Aristocrat Leisure IN LINE 0 0 5/1/0 42.53 41.27 6

Aristocrat Leisure reported in line with expectations, featuring a strong performance from the land-based gaming business and a tailwind from the USD, while growth in the digital gaming business came to a halt as the mobile games market normalised post-covid. This is what brokers had anticipated, but a weak share price response on the day suggests the market hadn't. Credit Suisse (Hold) is unconvinced the company can make its mark in an increasingly competitive digital gaming environment as user expenditure flattens. This broker also forecasts higher costs, reflecting currency and component challenges. Macquarie (Buy) is also more cautious than management.

BOQ - Bank of Queensland BEAT 0 0 3/2/0 8.66 8.55 5

Bank of Queensland posted a beat on net interest margin for the full year which surprised brokers, and suggests the bank is more leveraged to rate increases than previously assumed. While increased cost guidance is seen as disappointing, it is proportionally much less than revenue upgrades. Macquarie (Hold) warns upside risk is less material looking ahead, with deposit margins likely to peak in the first half of FY23, and considers risk to consensus margins from FY24. On a lack of distinct upside, and macro uncertainty, two brokers have subsequently downgraded to Hold from Buy after posting initial assessments.

SQ2 - Block BEAT 1 0 3/0/0 130.00 145.00 3

Note the target price for Block is misleading as most forecasts are in USD, thus appearing as zero. Block's result beat forecasts, reflecting beats across all of Square, Cash App and BNPL (Afterpay). The result demonstrated improved compound annual growth rate trends for both ex-Afterpay numbers, which Credit Suisse suggests augurs well for stability and exit rates heading into 2023. The company has forecast lower expense growth but costs are still growing, albeit more slowly.

BKW - Brickworks BEAT 0 0 3/1/0 24.74 26.17 4

Brickworks' result solidly beat forecasts, leading Morgans (Add) to note the opportunity for investors to buy the company's quality businesses well below replacement value. Property-related transactions were again a highlight, and the development pipeline remains key to income production moving forward. While Citi (Buy) sees the likelihood of Brickworks repeating its strong contribution from development profits as less likely, with the higher number of completions unlikely to reoccur near-term, the broker does see upside to near-term property earnings given strong rental growth. Macquarie (Hold) is less confident around the Building Products outlook.

CMM - Capricorn Metals BEAT 1 0 1/0/0 3.60 3.30 1

Capricorn Metals' full year result has missed Macquarie's expectations by -7% at the net profit line, which the broker attributed to higher-than-expected finance costs, depreciation and amortisation and tax charges. Net debt and underlying earnings exceeded the broker's assumptions. Ahead of a resource update of Capricorn's Mt Gibson asset, Macquarie lifts its valuation by $60m given recent positive drill results. The rating is upgraded to Outperform from Neutral.

CHN - Chalice Mining IN LINE 0 0 2/0/0 7.25 7.40 2

Chalice Mining has released its full year result, and with a $129.6m cash position and free cash flow of $65.3m Macquarie finds the company well funded for exploration and pre-development activities for the year ahead. A recent seismic survey at Julimar has suggested mineralisation may be deeper than previously estimated, and deeper drilling is needed. The company expects to deliver a scoping study by the end of the year.

CIA - Champion Iron BEAT 0 0 1/1/0 6.85 6.50 2

The second quarter was solid for Champion Iron, with production, shipments and costs all beating Macquarie's (Hold) predictions following the Bloom Lake Phase 2 ramp up. While cash costs decreased quarter-on-quarter, they are expected to further decline as the ramp up progresses. An interim dividend of CAD10 cents per share was announced, materially better than the CAD4 cents per share Macquarie had assumed. Citi (Buy) saw a "modest beat". Production surprised on the upside while costs were lower. The share price trades at too large a discount, in Citi's view, even with questions about China and the price of iron ore lingering.

CLV - Clover BEAT 1 0 1/0/0 1.63 1.35 1

Clover's second half sales surprisingly beat the top end of guidance, driven by improved China infant formula market conditions and new customers, UBS notes. At its first half result, Clover had indicated solid early second half trading may have benefited from order pull-forward, though this does not appear to have been the case The broker sees two medium term opportunities -- new customers in China and new products and omega-3 expansion beyond infant formula. An increased cost of capital takes the broker's target down, but rating upgraded to Buy.

CKF - Collins Foods MISS 0 1 1/2/0 11.10 8.73 3

Collins Foods posted an operational result in line with expectations. However, management had previously guided to margins recovering in the coming half, but reversed that decision with the result. While KFC sales proved resilient over the period despite price increases, there is no relief in sight on input cost and wage inflation as was hoped, particularly in Europe. Taco Bell has also disappointed. The company will have no choice but to raise prices further, brokers believe. Targets slashed, and Macquarie downgrades to Hold.

CSR - CSR BEAT 0 0 3/3/0 5.53 5.47 6

CSR's result beat most forecasts thanks to a better than expected performance from Building Products, supported by price increases and solid cost control. Performance for the aluminium business was weak due to higher input costs, but no one is much surprised. The second half will be supported by a backlog of building demand, but a down-cycle is expected thereafter. Morgan Stanley (Hold) suggests the latter kicks in from the beginning of FY24. Credit Suisse (Buy) notes approvals are still outpacing completions, despite rising interest rates, and expects Building Products earnings will be more resilient than expected, at least for the near term, ahead of FY24.

ECX - Eclipx Group IN LINE 0 0 3/0/0 2.79 2.56 3

Eclipx Group's result was largely in line with forecasts, featuring elevated yields and end-of-lease income as supply remains restricted. Credit Suisse suggests the company is continuing to perform "as well as it can". Management has highlighted natural hedging with interest on cash providing an offset against funding costs on the warehouse and corporate debt. While vehicle supply, and the impact of elevated end of lease income earnings, will normalise, underlying performance supports Buy ratings.

ELD - Elders BEAT 0 0 1/1/0 15.38 12.91 2

Given Elders' result came in ahead of expectation, the big share price fall on the day is attributed to the announced retirement of the CEO, although cash flow was below forecast. The company enjoyed ideal conditions in FY22, which Morgans (Hold) expects must normalise in FY23, hence guidance for earnings growth may be difficult to achieve. But Macquarie (Buy) notes strong agricultural conditions are expected to continue into the new year, and acquisitive and organic growth could offset market risk ahead.

FPH - Fisher & Paykel Healthcare BEAT 0 0 2/2/0 20.25 21.50 4

Fisher & Paykel Healthcare's result beat consensus and hit the top end of the guidance range, although Credit Suisse (Hold) notes this was inflated by a lower tax rate. Brokers otherwise found the result pleasing. Homecare revenue proved the star performer, offering more upside ahead. No guidance was provided, and brokers agree earnings are difficult to forecast, but management foresees stronger revenue and margins going forward, despite higher costs.

FSF - Fonterra Shareholders Fund IN LINE 0 0 0/1/0 0.00 0.00 1

Macquarie notes a solid FY22 result that was consistent with guidance by management of Fonterra Shareholders Fund. The FY22 final dividend of 20 cents represents a 59% payout. Management recently provided FY23 guidance for 45-60cps. Fonterra noted the sale process for Soprole is progressing though the Australian business will be retained, which the analyst estimates could lower capital returns from the $1bn previously expected. The broker's target is lowered to NZ$3.52 from NZ$3.62 after allowing for positive earnings revisions, which were offset by the adoption of a higher risk free rate assumption.

GL1 - Global Lithium Resources MISS 0 0 1/0/0 3.00 3.00 1

A full year loss of -$4.3m from Global Lithium Resources was 11% larger than Macquarie had anticipated, largely given higher employee costs and office overheads. The company has recently announced a solid metallurgical test result from its Marble Bar lithium project, including a spodumene concentrate grade of 5.76%, which Macquarie finds encouraging. The broker sees movement in spodumene pricing as the most material risk to its outlook.

GNC - GrainCorp IN LINE 1 0 2/1/0 9.71 9.32 3

GrainCorp's record FY22 result fell slightly short of forecasts but was within the company's guidance range. Macquarie (Buy) suggests the result is reflective of significant global demand for Australian grain and oil seeds. But it doesn't get much better than this, and FY23 earnings are unlikely to exceed FY22, especially with wet weather creating some uncertainty. UBS nevertheless suggests floods are more likely to limit potential upside rather than create downside, and upgrades to Buy. Morgans (Hold) is not so confident.

HAS - Hastings Technology Metals IN LINE 0 0 1/0/0 6.10 6.10 1

Macquarie makes only minor changes to its forecasts after reviewing FY22 results for Hastings Technology Metals. The company is undertaking an institutional placement and share purchase plan to raise $110m. The funds are necessary to enable the Yangibana project to commence production.

IPL - Incitec Pivot BEAT 0 1 3/3/0 4.18 4.34 7

Incitec Pivot's 162% year on year earnings increase was a marginal beat of consensus. While an announced buyback was welcomed, the focus was on the company's planned demerger. Given Incitec has received a number of unsolicited bids to acquire its Waggaman plant, it has delayed the potential demerger of its Dyno Nobel explosives and fertiliser operations while it assesses strategic options.The key is retaining an offtake agreement in order to continue to enjoy the benefits of low-cost gas for the Dyno Nobel operation. Fertiliser prices will not provide as much of a tailwind in FY23 and current Australian weather will impact. Credit Suisse downgrades to Hold.

JHX - James Hardie Industries MISS 0 0 5/1/0 47.65 40.57 6

James Hardie rather blindsided brokers with a sudden cut to FY23 guidance post the September quarter due to a rapid reversal in new construction demand. It had all been going so well up to that point. Macquarie (Buy) suspects exposure to larger inventory-driven new construction business models could explain the big change since the September investor day. R&R demand is holding up relatively well, but here too the company sees moderation to flat second half volumes. Morgan Stanley (Buy) suggests revised guidance indicates the US housing environment has deteriorated more sharply than anticipated and expected R&R resilience has not eventuated. No change to Buy ratings given the share price fall.

JHG - Janus Henderson BEAT 0 0 0/1/2 30.78 30.45 3

Janus Henderson posted a beat in the September quarter due to improving average assets under management and fee rates. Outflows were also not as bad as feared. While stock markets are on the move up again, Credit Suisse (Sell) warns the fourth quarter is likely to be impacted by elevated redemptions and lower than expected earnings power. Citi (Sell) suggests management is trying to turnaround the business through evolution rather than revolution and this implies, still, investors need to remain patient.

JRV - Jervois Global MISS 0 0 1/0/0 0.55 0.55 1

Jervois Global had pre-announced September-quarter earnings, which fell slightly below Macquarie's forecast. The company also appointed a new independent director and announced Idaho Cobalt Operations construction was 71% complete as of September 30. The company has spent US$91m out of a US$107.5m budget, and construction will continue through to the new year, with first commercial concentrate production expected in the December quarter.

LTR - Liontown Resources IN LINE 0 0 1/1/0 1.80 2.60 2

FY22 results for Liontown Resources are largely in line with Macquarie's forecasts. It's felt a cash balance of $453m is sufficient to progress the Kathleen Valley project. While the broker retains its $2.50 target price, a spot price scenario generates a $14.11/share valuation. It's noted 90% of the planned production from Stage 1 of Kathleen Valley is now under offtake agreements.

MQG - Macquarie Group BEAT 0 0 4/1/1 192.50 189.88 6

Performance from commodities and global markets underpinned Macquarie Group's first half consensus earnings beat. Morgan Stanley (Buy) feels FY23 guidance on both commodities and gains on sale will prove conservative and believes Green Energy and other growth options will assist. However, despite raising near term earnings forecasts, brokers agree macro headwinds are likely to slow performance ahead. Morgan Stanley expects the market will await improving economic conditions before pushing shares higher. Ord Minnett expects gains to materially slow in the second half, reflecting a more challenging environment. And that's from two Buy-raters.

MTS - Metcash BEAT 0 0 3/2/0 4.59 4.61 5

The highlights of Metcash's result, which beat forecasts, were ongoing outperformance from Hardware and a continuation of the local grocery shopping trend brought about by lockdowns. Cost inflation nevertheless bit, leading to flat margins and no earnings growth, and this is expected to remain the case for now. The company is increasing its investment in Hardware, which brokers do not disagree with, but it will mean poor cash realisation and may impact on dividends. The interim dividend was nevertheless pleasing, and Credit Suisse (Hold), for one, believes the payout ratio can be maintained.

NAB - National Australia Bank IN LINE 0 2 1/6/0 32.00 32.12 7

National Australia Bank delivered an in-line result, underpinned by solid performances in the Business Bank and NZ franchise. Interest rate leverage started to come through in the second half, albeit below expectations, and below that delivered by peers, reducing the potential upside risk to margins in the first half FY23. No cost guidance was provided but brokers expect increased expenses due to higher inflation. Management warned investment spend will increase in the coming year. Business lending has been a key point of differentiation for NAB versus peers, but macro forecasts indicate a sharp slowdown.

NHC - New Hope BEAT 1 0 3/1/0 5.35 6.38 4

New Hope Corp's full year results were largely in line, with buoyant coal pricing supporting a material year-on-year financial and cash flow increase. The dividend was a source of the beat, with a 25c special on top of a 31c final, taking the payout ratio to above 45%. Credit Suisse had previously suggested a dividend payout ratio of 45% of earnings would serve as a possible catalyst for a re-rate, and the share price has done nothing but rally ever since. Thermal coal prices are expected to remain elevated for the time being, driving solid cash flows.

NWS - News Corp IN LINE 0 0 2/1/0 33.83 33.37 3

News Corp's September quarter result was in line with consensus. No guidance was offered but the impact of a soft macro environment on expectations for ad revenues and in digital real estate will be key. Management also pointed to challenges in the December quarter arising from the Amazon warehouse consolidation. No further news on the possible re-merger with Fox, which will need ex-Murdoch family shareholder approval. Note of the two brokers reporting on the result, their average target price has fallen, not risen as indicated. This is due to only two out of four prior covering brokers having updated to date.

NUF - Nufarm BEAT 1 0 5/2/0 6.71 6.95 7

Nufarms' result equally slightly beat or missed broker forecasts. FY23 outlook commentary for modest underlying earnings growth on a constant-currency basis is a positive surprise, underpinned by favourable conditions and a strong outlook for soft commodity prices. The balance sheet continues to deleverage after cash flow came in significantly stronger than expected. Management reiterated it remains on track to meet FY26 revenue aspirations. Ord Minnett upgrades to Accumulate. Morgans retains Hold but on a longer-term view retains Nufarm as its key pick in the agri sector.

ORI - Orica BEAT 0 0 2/5/0 15.96 16.18 7

Orica's result comfortably beat forecasts, even taking into account Russian earnings which will be no more. The company continues to manage higher costs well via timely pass-through mechanisms and is benefiting from improved pricing and mix. Pricing is assisted by tight global ammonium nitrate markets and a value-over-volume focus. Given the macroeconomic conditions, management's FY23 outlook commentary was surprisingly constructive, with earnings expected to be ahead of FY22 on growth in global commodities demand. Cost inflation remains a challenge but further cost reduction initiatives will be introduced.

PDL - Pendal Group MISS 0 0 1/3/0 5.01 5.01 5

Pendal Group's result missed forecasts, on a material fall in management fee margin. Funds flow pressure continues, partly exacerbated by a disappointing performance from the International Select strategy, and inflation also weighed on costs. Pendal notes the takeover offer from Perpetual remains legally binding, but approval is still required. This makes the stock currently a binary risk, with significant upside on approval and significant downside if not.

PMV - Premier Investments BEAT 0 1 3/3/0 25.68 25.61 6

Premier Investments' result beat expectations and brokers are surprised by the strength of early FY23 sales, tracking at pre-covid levels. Despite lockdowns and difficult covid comparables in the previous year, the retailer delivered earnings growth in FY22. The company finished the year with excess cash, announcing both a special dividend and a buyback. Peter Alexander sales surprised to the upside and provided a contribution to a gross margin increase. Smiggle has performed well in the northern hemisphere back-to-school period. Citi pulls back to Hold on share price strength.

PPH - Pushpay Holdings IN LINE 0 0 0/0/0 0.00 0.00 1

Pushpay Holdings' first half result and FY23 guidance met previously announced numbers. Customer growth was softer than expected, Macquarie notes, as churn increases. Management cites economic and competitive pressures for slower growth. Macquarie is currently restricted from making a recommendation.

REA - REA Group MISS 0 0 3/3/1 131.36 125.87 7

While REA Group posted only a small miss to forecasts, the outlook is bleaker than feared. The company has guided to an -18% listings decline year on year in October, and early signs point to a -25% decline year on year in November. Morgan Stanley (Hold) notes channel checks suggest listings will fall by -20% to -30% over the next four to six months. The expectation of further rate rises will continue to weigh on seller sentiment near-term. On the positive side, REA has lowered cost guidance.

RMD - ResMed IN LINE 0 1 3/3/0 37.41 36.63 6

Brokers equally called ResMed's quarterly result a beat or a miss, so we'll net to in-line. One issue was the take-up of card-to-cloud devices, which was strong in the US as it alleviated chip shortages but weak in the rest of the world. Credit Suisse (Buy) attributes the weaker result partially to supply constraints, and highlights it will take longer for the backlog to be filled with demand continuing to outstrip supply. The never ending question is when will Philips return to the market, and whether ResMed has permanently increased market share. While supply chain impacts improve and the competitive dynamic remains in ResMed's favour, Citi anticipates a more gradual gross margin recovery and has updated its forecasts accordingly, and pulls back to Hold.

SHV - Select Harvests MISS 0 0 1/0/0 7.00 6.40 1

The market's focus was less on earnings for Select Harvests and more on outlook commentary, which was relatively soft, UBS notes. The company continues to target a 30t almond crop in FY23, but UBS anticipates a 29t harvest given the risk presented by recent wet weather. Softening demand appears to be keeping almond prices at cyclical lows, which, combined with higher anticipated costs in the coming year, has seen UBS reduce its FY23 earnings per share forecast -71%.

SKO - Serko BEAT 0 1 0/1/0 5.57 5.57 2

Serko's September-half result outpaced consensus and Macquarie's forecasts, and management reiterated guidance, while noting caution regarding Europe. Macquarie has downgraded its rating to Neutral from Outperform, observing a lack of momentum in key growth projects. The broker notes the company has $103m in cash and burned -$3.6m a month (less than the broker forecast), and that management is now targeting a FY25 breakeven.

SIG - Sigma Healthcare MISS 0 1 0/0/3 0.52 0.51 3

Sigma Healthcare's result disappointed brokers and has led to earnings forecasts being slashed, given no turnaround expected in the next eighteen months. The first half benefit of covid testing masked underlying challenges, suggests Morgan Stanley. The company remains focused on stabilising business and regaining customer trust over an eighteen month turnaround, following Enterprise Resource Planning implementation issues, but Citi finds near-term visibility limited. Credit Suisse downgrades to Sell.

SM1 - Synlait Milk IN LINE 0 0 0/0/1 0.00 0.00 1

The FY22 result for Synlait Milk was largely as Macquarie expected, with the business broadly on track for recovery over FY23-24 as new customers ramp-up. While net debt was a key positive for the analyst, a more cautious approach by management to increasing volume resulted in a significant step down from prior long-term return on capital targets. Macquarie's Underperform rating is retained due to execution risks and the target falls to NZ$3.25 from NZ$3.30.

TNE - TechnologyOne BEAT 0 1 0/3/0 11.34 13.00 3

Stronger economics from its SaaS transition meant FY22 results for TechnologyOne exceeded expectations. Guidance was for SaaS annual recurring revenue growth of around 40% and the company delivered a record 43%, though Macquarie (Hold) points out UK growth declined (partially due to currency) and looks weak. The broker sees a solid outlook as factored into the price and Morgans agrees, pulling back to Hold, while calling TechnologyOne one of the highest quality stocks on the ASX.

TUA - Tuas BEAT 0 0 1/0/0 1.65 1.85 1

Following FY22 results for Tuas, Morgan Stanley increases its FY23 and FY24 earnings forecasts by 11% and 14%, respectively, on higher estimates for subscribers and margins. The broker now estimates growth plans can be self-funded (despite FY23 capex guidance exceeding forecasts), and free cash flow breakeven reached in FY24.

UMG - United Malt IN LINE 0 0 2/1/0 3.78 3.79 4

United Malt's FY22 earnings ex-SaaS cost were in line with guidance. FY23 guidance is revised marginally lower for higher SaaS costs. Easing supply side headwinds and ongoing beer demand underpinned recent upgrades. UBS (Buy) expects operational performance is improving and should drive 40% earnings growth over the coming year. Macquarie (Buy) sees a full-year reversal of the crop impost, improved customer pricing and terms, transformation benefits, a better sales mix, and the contribution of a full-year run rate from the Scottish distillery.

VUK - Virgin Money UK BEAT 0 0 1/0/0 3.95 4.20 1

Virgin Money UK’s leverage to rising interest rates continued to shine through in the second half, Macquarie notes, providing margin upside into FY23. The announced buyback is small, but given the stock trades at only 0.4x net tangible assets, highly earnings accretive. Add in a relatively resilient expected margin performance and the broker believes Virgin Money UK should broadly sustain and potentially grow its earnings even as impairment charges rise. While there is scope for the stock to re-rate, the main upside risk will likely be driven by the broader sector, Macquarie suggests.

WEB - Webjet BEAT 0 0 6/1/0 6.56 6.91 7

Webjet's result beat consensus and indicated that bookings were back to pre-covid levels with total transaction volume at 90%, while the cost base was -16% lower, resulting in a solid earnings margin. WebBeds led the recovery, with bookings currently up over 30% versus pre-covid levels. Management expects a similar performance in FY23. Credit Suisse (Buy) believes WebBeds and other large players have been taking share from smaller players, with an organic growth story becoming increasingly evident. Morgans (Buy) notes Webjet is leading the recovery of travel stocks under coverage.

WBC - Westpac IN LINE 0 0 4/2/0 26.00 25.87 7

Westpac's result was in line with expectations. A negative share price response on the day was likely due to net interest margin expectations being overblown. Westpac appears less leveraged to rate rises than peers. With the ongoing benefit of higher rates and replicating loan portfolio tailwinds, margins are expected to peak in first half FY23 and begin to moderate gradually in the second half. The key negative was the cost target of $8.6bn, revised up from $8bn, due to higher inflation. UBS (Buy) still suggests staying inside that target remains "a stretch".

SOL - WH Soul Pattinson BEAT 0 0 1/0/0 30.60 29.60 1

FY22 results for WH Soul Pattinson highlighted to Morgans ongoing strong contributions from core investment holdings including New Hope Corp and Brickworks.Underlying profit improved by 154% year on year thanks to stronger dividend income from New Hope, which declared a special dividend. After the deconsolidation of New Hope from Soul Pattinson's statutory results, the broker updates its financial model to now mirror the parent entity. Target falls to $29.60 from $30.6.

XRO - Xero MISS 0 0 4/2/0 99.41 85.24 6

Xero's revenues rose 26% year on year but earnings missed expectations on higher costs. Average revenue growth per user was stronger than expected but international subscriber growth disappointed. Morgan Stanley points out investors now prefer companies that can demonstrate a pivot to well-established earnings profitability and expanding free cash flow and as yet, Xero doesn't meet these requirements. The company has a meaningful opportunity to create value should it pivot to profitability by reducing its expense base/capex. Macquarie's analysis suggests spending less on sales & marketing reduces the growth pace medium-term. Macquarie and UBS are the only brokers sitting on a cautious Neutral rating. Others are happy to stick with a Buy or equivalent, while price targets have been pulled back further.

Total: 50

ASX50 TOTAL STOCKS:

9

Beats

2

 22.2% 

In Line

5

 55.6% 

Misses

2

 22.2% 

Total Rating Upgrades:

0

Total Rating Downgrades:

4

Total target price movement in aggregate:

-5.06%

Average individual target price change:

-4.31%

Beat/Miss Ratio:

1.00

ASX200 TOTAL STOCKS:

36

Beats

21

 58.3% 

In Line

10

 27.8% 

Misses

5

 13.9% 

Total Rating Upgrades:

6

Total Rating Downgrades:

8

Total target price movement in aggregate:

-1.59%

Average individual target price change:

0.54%

Beat/Miss Ratio:

4.20

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) = '2022/12/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) = '2022/12/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 December

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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/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) = '2022/12/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 December
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) = '2022/12/19'
					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) = '2022/12/19'
					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
19 December
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) = '2022/12/20'
					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) = '2022/12/20'
					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
20 December
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) = '2022/12/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) = '2022/12/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 
Wednesday
21 December
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) = '2022/12/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) = '2022/12/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 
Thursday
22 December
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) = '2022/12/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) = '2022/12/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 
Friday
23 December
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) = '2022/12/26'
					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) = '2022/12/26'
					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
26 December
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) = '2022/12/27'
					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) = '2022/12/27'
					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
27 December
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) = '2022/12/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) = '2022/12/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 
Wednesday
28 December
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) = '2022/12/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) = '2022/12/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 
Thursday
29 December
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) = '2022/12/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) = '2022/12/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 
Friday
30 December

Listed Companies on the Calendar

Date Code
05/12/2022MTSearnings result