Corporate Results Monitor

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

Currently monitoring March-July 2024.

Figures shown as at 25 June 2024

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

TOTAL STOCKS:

51

Beats

22

In Line

15

Misses

14

Total Rating Upgrades:

9

Total Rating Downgrades:

9

Total target price movement in aggregate:

4.43%

Average individual target price change:

2.52%

Beat/Miss Ratio:

1.57

Previous Corporate Results Updates

Company Result Upgrades Downgrades Buy/
Hold/Sell
Prev Target New Target Brokers Commentary
ALQ - ALS Ltd IN LINE 0 0 2/1/1 12.78 13.59 4

ALS Ltd's result managed to beat market consensus by 1%, but missed expectations at Ord Minnett. Management stated FY27 targets are on track for revenue and earnings of $3.3bn and 0.6bn, respectively. Macquarie points to Life Sciences, particularly Environmental and Food segments, which delivered strong performance, with the company seeing substantial opportunities in testing for PFAS, the "forever" chemical. The Minerals division remained resilient amidst a spending slowdown for mining exploration. UBS sees upcoming catalysts from a turnaround of Nuvisan, integration of recent acquisitions, and a recovery in exploration activity.

AMC - Amcor BEAT 1 0 3/3/0 15.53 15.79 6

Packaging volumes remain under pressure, but Amcor's March quarter performance still beat analysts' forecasts due to lower costs, including lower interest expenses. Management intends to further reduce debt. Some rigorous restructuring of operations has structurally lowered the operational cost base. Healthcare packaging continues to battle customers' de-stocking. Rigids volumes were hardest hit, with ongoing softness in hot-fill beverage categories. Analysts are now suggesting the worst impacts of the global economic downturn may now be in the past for Amcor. Morgan Stanley makes the point while the outlook is improving, Amcor is still looking forward towards a relatively slow pace of growth. Forecasts have moved higher, slightly, and so have price targets. Only Macquarie upgraded to Outperform from Neutral for a perfectly balanced three Neutral/Holds and three Buy/Outperform/Accumulate ratings.

ANZ - ANZ Bank IN LINE 0 1 0/4/2 27.98 27.57 6

ANZ Bank's result equally beat, missed and met broker forecasts. It included robust market income, reasonable loan growth and lower than forecast margins in the retail segment, offset by softer bad debt provisions.The announced buyback was a positive and the market now looks ahead to the incorporation of Suncorp's bank. ANZ is UBS's (Hold) preferred bank, with the broker believing it is the least exposed bank to structural headwinds to retail bank profits. Morgan Stanley has downgraded to Hold from Buy due to the strategic challenges for the bank, which makes earnings upgrades a tough prospect. Macquarie (Sell) feels ANZ's capacity to sustain its current dividend is difficult. Citi (Sell) notes core earnings are still declining, with investors unsure of the strategic merit of management's current strategy, making it difficult to identify the earnings trough.

ALL - Aristocrat Leisure BEAT 1 0 4/1/0 47.60 50.20 5

Aristocrat Leisure's H1 surprised, predominantly on the back of lower-than-anticipated costs, but analysts equally view the intention to divest the digital assets, ex Social Casino, as a positive. Growth for these assets has stalled, commented Citi, plus there is little apparent synergy with the rest of the business. Aristocrat has added $350m to its share buyback. Turning to the H1 details, US operations slightly underperformed, but the Rest of the World smashed it out of the park. Positive momentum is expected to continue into H2 with further cost reduction benefits anticipated in H2 and FY25. With two brokers yet to respond, Ord Minnett is the sole analyst not sitting on Buy (Hold) post the latest earnings 'beat', with Morgans upgrading to Add from Hold.

ARX - Aroa Biosurgery IN LINE 0 0 2/0/0 1.05 0.98 2

Two brokers, two different forecasts, with Aroa Biosurgery's FY24 beating Bell Potter but forcing Morgans into sharply reducing forward projections. Management provided FY25 guidance for revenue of NZ$80-87m and normalised EBITDA of NZ$2-6m. Both brokers retain a positive rating, with price targets well above today's share price.

AAC - Australian Agricultural Co BEAT 0 0 1/0/0 2.00 2.00 1

Australian Agricultural Co's FY24 operating earnings of $50.5m beat Bell Potter's forecast for $49.2m. The Buy rating is retained with the analyst noting domestic cattle prices have rebounded and remain undervalued relative to meat price indicators, while agricultural land and water asset values have also remained robust over 2023. Bell Potter's $2.00 target is unchanged.

AVH - Avita Medical MISS 0 0 2/0/0 5.10 5.50 2

Avita Medical's Q1 missed miserably and its share price was punished for it. Bell Potter was negatively surprised by a worrying and unexplained decline in utilisation rates in the core burns market. The broker speculates softness in the burns market may be due to overstocking of the channel in the December quarter and/or budget restraints within US hospitals in favour of cheaper treatment alternatives. Management has stuck to its FY24 guidance, albeit at the lower end of the range. Bell Potter is skeptical. Ord Minnett, however, keeps the faith. The May 30 launch of the company's improved Recell device is expected to assist in meeting guidance. Bell Potter has downgraded to Speculative Hold while slashing forecasts and its price target to $3.50. Ord Minnett (Accumulate, price target $5.40) has made no changes.

BOQ - Bank of Queensland BEAT 0 0 0/0/5 5.58 5.23 5

Bank of Queensland's H1 earnings beat analysts' forecasts, but the 'beat' was universally seen as of low quality, driven partly by lower bad debts, temporary margin tailwinds, and slower expensing of investment spend. The dividend was in-line to better than forecast. Bank management expects "margin pressure to moderate in the second half", but Morgan Stanley believes the better-than-expected margin was largely due to lower liquidity. While the outlook commentary provides some reassurance that a three-year period of significant margin decline has come to an end, Morgan Stanley does not expect much of a revenue recovery over the next twelve months, and is not alone. Brokers agree management’s FY26 targets of a cost to income ratio of 50% and better than 9.25% return on equity are likely to be lowered. The planned digital transformation is considered necessary, and should bring longer term cost benefits, but in the near term offers execution, cost blow-out and timing blow-out risks. In a competitive environment for banks, all brokers line up with Sell ratings... with exception of Ord Minnett which whitelabels research from a sector-optomistic Morningstar, and hasn't responded yet to date.

BGL - Bellevue Gold BEAT 1 0 1/1/0 1.68 2.03 2

Bellevue Gold has surprised Macquarie, reporting a positive profit result for the first half rather than the loss the broker had anticipated. The company delivered a small $2m profit for the half, a sizeable beat to an expected -$15m loss. The company finished the period with net debt of $181m, but with the ramp-up continuing, the broker does expect peak debt is behind Bellevue Gold. 

BOE - Boss Energy IN LINE 1 0 2/0/0 5.72 6.17 2

Boss Energy's first half underlying result was largely as Macquarie (Buy) expected. A gain on uranium inventory valuation saw reported profit materially beat. The first drum of uranium is expected to be produced from Honeymoon in the March quarter. Boss has also acquired 30% of the high-grade Alta Mesa ISR project in Texas, growing its production base globally, and also has organic growth optionality as recent drilling success could see production increase. Macquarie believes Boss Energy offers material upside at uranium spot prices versus its own forecasts. The company continued to keep overheads tight in the period, with exploration expenditure picking up a little year on year to $2.2m. It is expected the company will deploy -$45m for exploration and expansion studies, with the Honeymoon restart now complete. Bell Potter upgrades to Buy.

BKW - Brickworks IN LINE 0 1 2/4/0 28.21 30.47 6

Brickworks' fall in first half revenues was offset by better than expected earnings margins in Building Products, on price and efficiency gains. As expected, the result was heavily impacted by negative property revaluations for the industrial portfolio. Management predicts the Building Products "air pocket" will last until the start of 2025, before migration and an under-supply of housing leads to a new demand cycle, anticipating significant rental income growth in its property business ahead, and believing Australia to be on the cusp of a building boom. Bell Potter downgrades to Hold.

CAT - Catapult International BEAT 0 0 0/1/0 1.50 1.75 1

Catapult International delivered a better-than-expected FY24 performance, though broker Bell Potter, the only one covering the stock in the FNArena universe, had mixed feelings about the result. With revenues and gross profit surprising on the upside, Bell Potter's estimates have lifted, and so has the broker's price target; $1.75 versus $1.50 before the market update. EBITDA estimates have been downgraded due to higher share-based payments and purchase considerations.

CIA - Champion Iron BEAT 0 0 1/1/0 7.95 8.05 2

Champion Iron's FY24 report proved slightly better-than-forecast with the dividend beating by 7%. Citi notes the Bloom Lake Phase II expansion continues to ramp up, with Champion Iron targeting further production capacity increases through de-bottlenecking, and aiming for 16-17mtpa. The company is pursuing potential government funding and tax credits for the Kami project. Two brokers covering results in one Buy and one Hold rating.

CLV - Clover MISS 0 0 0/1/0 0.85 0.60 1

The UBS target for Clover falls to 60c from 85c due to material medium-term earnings forecast downgrades, partially offset by less material long-term cuts as the broker incorporates a sales and margin recovery over time. These changes follow 1H results and a first half outlook showing softer than expected customer reordering post sales made via China's Singles Day, reflecting soft demand. There were also appreciably softer gross margins, down -4 percentage points year-on-year, driven by increased price competition in the market and customer mix impacts.

CXO - Core Lithium MISS 0 0 0/1/1 0.17 0.12 2

Core Lithium had already suspended operations at its open pit mine and put discretionary spending under review. The company's release revealed a shock loss to the tune of -$168m, including -$120m impairment for Finniss. The CEO has exited. A non-executive director has resigned. There's currently no intention to resume mining when stockpiles have run down, estimated by mid-year. Some good news: the company doesn't think there will be a requirement to pay Tesla under the lawsuit. There's no debt and $125m held in cash. Incorporating costs for care & maintenance, Citi analysts do not see positive free cash flow in the second half. The broker had previously nominated Core Lithium as the highest cost producer in its coverage of the lithium sector on the ASX.

CRN - Coronado Global Resources MISS 0 0 4/1/0 1.77 1.64 5

Coronado Global Resources posted a clear miss of forecasts, but cyclonic weather hitting the Bowen Basin was to blame. Coal production was down -14% quarter on quarter. Realised prices were also lower. All brokers have nonetheless retained Buy ratings, bar one. UBS highlights improving cash flow is a key target for the company, with the second half of 2024 expected to be stronger on improved volumes and lower costs at Curragh. Retained 2024 guidance implies Coronado will make a step-change in performance beginning now, although Morgans warns costs again risk disappointing. Similarly, Macquarie sees cost guidance as optimistic and a potential risk to forecasts. Ord Minnett balances Coronado’s discount to net asset value with near-term deliverability risks, the softer free cash flow forecast this year, and minimal total shareholder return based on the broker's fair value estimate, as reason to retain Hold.

CSR - CSR IN LINE 0 0 0/4/0 7.41 9.00 5

Does anyone still care? CSR will soon be acquired by French suitor Saint Gobain and, in the process, the local building materials company has released an interim result broadly in line with expectations. Only two analysts have responded post the market update, and that pretty much shows the market's confidence about the acquisition successfully completing soon.

DVP - Develop Global MISS 0 0 1/0/0 4.30 4.10 1

Increased underground development and mining activity at Bellevue saw Develop Global deliver a beat to Bell Potter's forecast at the revenue line. The company reported revenue of $65.8m, representing 162% growth year-on-year. Underlying earnings of $6.6m, however, disappointed on higher than anticipated share-based payments and overheads. The broker anticipates a ramp-up in earnings from Develop Global through to FY26, as the Woodlawn operations restart and revenue generation from the underground mining services business grows.

ELD - Elders MISS 0 1 3/2/0 8.81 9.08 5

Elders' interim performance fell short of expectations, having already disappointed in April, but analysts refuse to get more bearish as the company might be operating near the bottom of the cycle, implying the future looks a lot brighter offering better conditions and an earnings recovery. Management reconfirmed FY24 EBIT guidance of $120m-$140m and Citi analysts for one are presuming a return to average trading conditions in the coming quarters. Macquarie is banking on improved seasonal conditions, stabilising gross margins, and a recovery in livestock prices. Macquarie has downgraded to Neutral from Outperform, joining UBS. Three other brokers are sticking with Buy.

FPH - Fisher & Paykel Healthcare BEAT 0 0 1/3/1 22.10 23.06 5

Fisher & Paykel Healthcare's FY24 performance met expectations, while FY25 guidance has forced some analysts to lift forecasts. The FY24 performance was carried by the Hospital division showcasing better pricing and higher device sales, with Homecare struggling. It was all about the profit margin with Ord Minnett highlighting the underlying gross margin increased by 216bps to 61% due to lower freight rates, manufacturing efficiencies and increased pricing, which more than offset inflationary pressures. Citi comments the gross margin recovery is on track to reach around 65% by FY27. With the share price up strongly since November, only one lonely rating says Buy (UBS), with three Hold/Neutral ratings and Ord Minnett on Sell.

FPR - FleetPartners Group BEAT 0 2 3/1/0 3.35 3.78 4

FleetPartners Group managed to beat market consensus with its interim performance, with a strong end-of-lease (EOL) income in particular raising eyebrows. Ord Minnett noted a 'higher-for-longer' trend for used car prices due to lower volumes of three-to-five year old cars and some increased demand for used vehicles from both consumers and business. A share buy-back of $27m was announced. Two downgrades followed the release, which might explain why the share price failed to respond positively. Ord Minnett downgraded to Accumulate from Buy and Macquarie downgraded to Neutral from Outperform. Citi and Morgan Stanley are still on Buy and Outperform, respectively.

FSF - Fonterra Shareholders Fund BEAT 0 0 0/1/0 0.00 0.00 1

Fonterra Shareholders Fund posted a "strong" first half result, Macquarie suggests, with earnings from continuing operations (excluding the DPA Brazil divestment impact) up 14% year on year. On a continuing operations basis, operating earnings were down modestly, after adjusting for impairments, offset by improvement in net finance costs and tax. The broker has incorporated higher near-term forecast earnings, partially offset by an increase in the risk-free rate.

GMD - Genesis Minerals MISS 0 0 2/2/0 1.91 1.97 4

A softer than expected first half result from Genesis Minerals, reports Macquarie. Earnings missed the broker's forecast by -24%, while net profits missed by -36%. The broker explains higher than expected operating costs drove the earnings miss. The broker considers the company's cash position as of the end of the period as strong. Macquarie notes Genesis Minerals should be well capitalised to increase capacity at Admiral through the calendar year.

GTK - Gentrack Group BEAT 0 0 1/0/0 6.90 9.10 1

Gentrack Group's 1H revenue and earnings (EBITDA) beat Shaw and Partners forecasts by 23% and 20%, respectively. Plus management upgraded FY24 guidance for revenue and earnings (EBITDA) by 17% and 9%, respectively, with the working capital outflow to narrow materially in 2H. The broker (Buy) notes growth in all regions and highlights underlying utilities revenue grew by 60% year-on-year. The target is increased to $9.10 from $6.90 due to higher forecast cashflows.

GNC - GrainCorp IN LINE 0 0 5/0/0 8.65 9.42 5

GrainCorp finally managed to release H1 financials in line with forecasts, but two severe profit warnings had preceded. Yet, Buy and equivalent ratings have remained in place on the general expectation FY25 will bring along much improved market conditions. The FY25 outlook consists of a big east coast winter grain plant following favourable seasonal conditions. Management has reiterated FY24 guidance, but also upgraded its through-the-cycle EBITDA guidance to $320m from $310m to include the recent acquisition of XF Australia. Macquarie highlights the balance sheet has net cash of $495m, supportive of robust dividend payments and growth investments. UBS highlights negatives are canola crushing requiring higher capex plus the JV in Canada remains a negative drag. The share buyback of up to $50m, announced previously, is scheduled to commence shortly. Five brokers translate into five Buy ratings.

IKE - ikeGPS Group MISS 0 0 1/0/0 0.63 0.63 1

ikeGPS Group's net loss for FY24 was larger than Bell Potter's forecast with the broker noting pre-reported revenues fell -23% on the previous year. Higher costs are responsible. With management still anticipating 50%-plus growth in subscriptions revenue in FY25, the broker's Buy rating and 63c price target have remained unchanged.

IPL - Incitec Pivot BEAT 0 0 2/3/0 3.03 3.05 6

Incitec Pivot released a half-yearly performance that was almost exclusively carried by its explosives division, with profit diving -55% on the prior year, but analysts' expectations were materially lower. The one disappointment is the fertilisers business still hasn't been sold. Discussions are ongoing, management stated. The timing of the deal decides when the company starts buying back its own shares. The result included an around -$500m impairment of the Fertiliser business, and the asset value has been revised to $1bn. According to common opinion, Incitec Pivot should be a better business without fertilisers, but the wait continues. Management expects earnings growth of mid-to high-single digits. UBS stands out with a lonely Buy rating, whereas others prefer to remain Neutral, while Ord Minnett sits on Accumulate (in between Buy and Hold).

IFT - Infratil MISS 0 0 0/1/0 0.00 0.00 1

Infratil reported FY24 EBITDAF of NZ$864m, 3% above midpoint guidance, with a final dividend of NZ$0.13 per share, but management's FY25 EBITDAF guidance of NZ$920m missed the broker's forecast by -7%. Higher development expenses are to blame. Macquarie notes guidance for Canberra Data Centres' FY25 EBITDAF missed by -9%, but utilisation rates are stabilising. Gearing is below the group's 30% target at 20% which could offer more capacity, according to Macquarie (Neutral).

JHX - James Hardie Industries MISS 1 1 3/2/0 61.58 55.48 5

James Hardie Industries' FY24 performance wasn't quite up to scratch but what really surprised was a much weaker-than-anticipated guidance for FY25. Softer US repair and remodel (R&R) activity is to blame, but equally so a substantial increase in SG&A expenses as the company appears to be investing in future brand appeal and increasing market share. Often lauded as Australia's highest quality cyclical, analysts take the disappointment on the chin, but pretty much universally declare the medium-term structural growth story remains intact. Lower interest rates down the track should reinvigorate market dynamics. On softer forecasts and price targets, Citi downgrades to Neutral and Macquarie upgrades to Outperform for three Buys against two Neutral/Hold ratings.

KMD - KMD Brands IN LINE 0 0 0/3/0 0.64 0.53 3

KMD Brands reported in line with previously downgraded guidance. Sales decline of -3.5% year-on-year for the beginning of the second half represented an improvement on -14.5% in the first half. The result revealed slightly better earnings as management had pulled back on opex, but finance costs proved a nasty surprise to UBS, dragging net profit below expectations. As the company has missed earnings expectations several times, Morgan Stanley lacks confidence medium-term targets can be achieved. The near-term outlook for the Kathmandu brand is considered challenging due to past execution issues and a more competitive backdrop. The wholesale inventory reduction cycle for Rip Curl and Oboz should come to an end in FY24, which Macquarie expects will support a recovery in the wholesale channel in FY25.

MYR - Myer IN LINE 0 0 0/1/0 0.75 0.75 1

Myer's trading update back in early February only saw Ord Minnett make minor adjustments to forecasts. The first half release proved in line with that trading update. The broker finds trading momentum is better than expected. The top-line growth forecast has been lifted though the broker remains of the view consumer spending will slow later in the year. Ord Minnett's long term outlook for Myer is "muted". Department stores are projected to underperform the broader discretionary sector. Profit margins are not expected to rise.

NAB - National Australia Bank IN LINE 0 0 0/3/3 30.01 30.24 6

National Australia Bank's interim result proved in line with forecasts while the share buyback was enlarged. A positive share price response suggests traders were positioned for a worse outcome, possibly also guided by what are generally perceived elevated sector valuations. Most analysts remain undeterred, however, seeing no major improvement on the horizon, with NAB's cash profit forecast to decline in the year ahead. Macquarie (Underperform) highlights NAB's tier 1 capital is below peers, leaving a smaller buffer for potential credit quality deterioration or stronger balance sheet growth, hence this broker was surprised by the size of the announced (extra) buyback. Citi (Sell) sees operating costs rising by approximately 5.4% annually from FY24 to FY26, which acts as an extra barrier for the bank's growth potential. Six broker views are equally divided over Sell (3) and Neutral (3) ratings.

NHC - New Hope IN LINE 0 0 0/3/1 4.84 4.84 4

There were few surprises within New Hope's result given key metrics were pre-reported, and all management guidance was re-affirmed. The dividend came in either above or below broker expectations. The impact of a -58% fall in average prices was more than offset by higher coal sales and lower unit cash costs. The Bengalla growth project is tracking ahead of schedule with unit costs expected to fall further. Management expects New Acland to ramp to circa 5mtpa by FY27 with cash costs similar to Bengalla. New Hope has increased its stake in Malaba Resources to 19.9%. By comparison to more leveraged peers, Morgans (Hold) highlights New Hope offers less volatility due to defensive attributes such as a solid balance sheet, 56% cash margins and steady dividends. Macquarie retains Sell due to free cash flow headwinds and a higher multiple relative to peers.

NEM - Newmont Corp BEAT 0 0 3/1/0 71.67 72.67 4

Newmont Corp, including Newcrest Mining assets, finally broke the trend for issuing disappointing market updates with its March quarterly performance report. With enough indications that volumes are on the up, while costs remain contained, with asset sales on the agenda, against a backdrop of rising enthusiasm for gold, overall optimism among analysts is rising as well. The proceeds from asset sales will facilitate a share buyback. UBS is still holding on to its Neutral rating, awaiting more evidence of successful execution, but Ord Minnett (Accumulate) and Macquarie (Outperform) are willing to grant the benefit of the doubt.

NWS - News Corp IN LINE 0 0 3/1/0 42.13 37.93 4

News Corp's result equally beat, met and missed broker forecasts. Strength in REA Group, Dow Jones and Books, which are all in an earnings upgrade cycle, Morgan Stanley (Buy) suggests, helped lift forecasts for the company. News Corp continued to flag it is reviewing its corporate structure to maximise shareholder value, including a sum-of-the-parts value realisation. Management intends to increase marketing and product development spending for Move, which Ord Minnett (Hold) describes as the digital real estate poor cousin to the 61%-owned REA Group in Australia. Macquarie (Buy) believes the company offers a modest growth profile and earnings upside risk if the group can maintain its cost base as News Media and Dow Jones scale. Positive catalysts in the next 12 months include AI contracts and SOTP value realisation.

NUF - Nufarm MISS 0 1 2/5/0 6.13 5.69 7

Nufarm's interim result was expected to be poor, but it still missed market forecasts and came with a disappointing FY24 guidance on top. As Macquarie pointed out, the agri-chem business is facing weak margins amid ongoing price pressure and ample supply. UBS now expects margin pressures to remain for longer than previously anticipated. The Seeds business stood out in a positive sense on the back of burgeoning momentum for Omega 3. Management has stuck with its aspirational targets for FY26 but general skepticism is now over-ruling cautious belief. Earnings forecasts have been slashed, price targets tumbled, and Citi has downgraded to Neutral. UBS stands out with a lonely Buy rating.

ORI - Orica BEAT 0 0 3/3/0 18.94 19.28 6

Orica's result beat most forecasts. Operating cashflow was a material improvement on recent years. While ammonium nitrate volumes and revenues fell, earnings rose, helped by a rise in margin to 9.7% from 8.1%. The company expects earnings for FY24 from underlying business will be higher than FY23, and slightly better than management's expectation at the FY23 result. Management is also confident on the FY25 outlook. Mine-site productivity is a key focus of the resource sector as ore body quality continues to decline and cost pressures remain, Macquarie (Buy) notes. Orica's suite of products geared around extracting more value from mines is well placed in this regard. The result missed Ord Minnett's (Hold) forecast, but due to higher-than-anticipated impacts from plant maintenance, with the Kooragang Island ammonia plant completing a six-year major overhaul.

PMV - Premier Investments BEAT 1 0 2/1/1 26.90 31.38 4

Premier Investments' first half retail earnings beat guidance and forecasts due largely to solid cost controls, which provided for steady margins despite lower sales. Brokers lauded a well-managed company. The company also confirmed its plans to spin-off its star performers into new listed entities, with Smiggle planned for January and Peter Alexander being considered for sometime in 2025. While brokers all lifted target prices in response to the result, ratings remain diverse. The two issues at hand are how discretionary retailers will perform from here as consumers back off, and whether Premier Investments deserves the premium it enjoys to peers. Buy-raters believe that premium is justified, while Ord Minnett (Sell) does not, suggesting the market is anticipating a more pronounced sales recovery than is likely. Brokers do nevertheless agree the spin-offs would unlock value for the company. UBS has become more confident in management post result and upgrades to Hold.

REA - REA Group BEAT 1 0 2/3/1 175.34 183.67 6

REA Group's March quarter trading update displayed ongoing strength in the company's key markets, Morgans (Hold) notes, helping national new listings grow 6% on what was a strong previous corresponding period. Management commentary and Corelogic data suggest positive momentum has continued into May. A price increase for FY25 of 10% is in line with industry feedback, but lower than the 13% achieved in FY24. The valuation is challenging, Macquarie (Hold) suggests, but REA presents as a highly sustainable high growth business with a benefit if rates move lower. The company's market leadership and yield uplift to 19%, pricing power, plus strength in R&D/product investment, are attractive to Morgan Stanley (Buy).  Unlike the market, Ord Minnett (Sell) doesn't expect property prices to increase by double digits every year, noting listing prices are strongly linked to property prices over the long-term.

RMD - ResMed BEAT 0 0 5/1/0 34.38 35.73 6

ResMed's Q3 surprised handsomely through a forecasts-beating gross margin on the back of better product pricing, manufacturing efficiencies, stable component costs, and lower freight. The release has triggered a flurry in analysts upgrades to forecasts, valuations, and price targets. While supply chain bottlenecks might lift the overall cost input for Q4, analysts are with management at the company in that margins can, and likely will, improve further in FY25. Major competitor Philips is not ready to return into the US market just yet, offering ResMed opportunity to further expand market share, while the jury on any long-term impacts from GLP-1s remains undecided. The company thinks its CPAPs will prove complementary, with early indication supporting that thesis. Five positive ratings out of six, with only UBS happy to stick with Hold, tell the story.

SHV - Select Harvests MISS 0 0 2/1/0 4.68 4.38 3

Select Harvests' H1 report revealed a lower-than-estimated net loss, but management guided towards higher costs, which proved a negative surprise for analysts. However, the tide is seemingly turning for the almond grower and marketer, and thus nobody wants to be too negative near the bottom of the cycle. The company increased FY24 guidance for almond crop volumes to 29.5-30kmt (previously 28.5-30kmt) and price to $7.57/kg (previously $7.30-7.50/kg), noting strengthening prices in recent weeks. Bell Potter remains cautious on the potential development of a La Nina weather pattern in 2024, an event that would typically adversely impact almond yields in Australia. Three brokers covering results in two Buys and one Hold.

SKO - Serko MISS 0 0 2/0/0 5.18 4.13 2

Serko's FY24 performance surprised through a much lower-than-expected net loss, but FY25 guidance disappointed Ord Minnett with Citi acknowledging the new financial year will be weighted toward the second half. Management's comments indicated momentum in Europe is more fragile than anticipated. Ord Minnett is willing to accept the extension of the Booking.com deal until March 2029 removes uncertainty around the stock, and upside potential remains. Both brokers have a Buy rating.

SIG - Sigma Healthcare IN LINE 0 2 0/3/2 0.96 1.11 5

Excluding merger-related costs, Sigma Healthcare's FY24 result revealed earnings at the top end of the guidance range. Macquarie (Sell) considers the results were largely a sideshow when set against the ongoing reverse takeover by Chemist Warehouse Group. While Sigma Healthcare had been targeting a completion of the merger in the second half of 2024, a detailed review being undertaken by the ACCC has added to difficulties in determining a timeline. Shaw and Partners attributes a -9.2% revenue fall year on year to reduced RAT test sales and the sale of the Hospitals business, partially offset by wholesale revenue growth. This broker believes the market is treating ACCC approval for the Chemist Warehouse transaction as a foregone conclusion, and downgrades to Sell. Morgans downgrades to Hold.

SM1 - Synlait Milk MISS 0 0 0/1/1 0.75 0.66 2

Synlait Milk's first half loss was in line with previously downgraded guidance, but FY24 guidance has, yet again, been downgraded, to negative from a prior flat forecast. The downgrade was due to a weakening lactoferrin market, currency impact, discounting of inventory, and higher expenses. Operations are still challenged and the expected medium-term recovery is now more muted. Asset sales are considered key to the going concern status, and an equity raise would require a steep discount, in Macquarie's (Sell) view. Bell Potter (Hold) has reduced earnings forecasts by -38% in FY24 and -20% in FY25, but notes the company has sealed an agreement with Bright Dairy and with banks that allows management to work on debt reduction. Revised forecasts imply continued losses for FY24-FY26.

TSK - Task Group IN LINE 0 0 0/2/0 0.83 0.84 2

Task Group is likely to be fully acquired by PAR Technology shortly, which makes any release of financial details an academic exercise. Judging from commentary by Bell Potter and Ord Minnett, released FY24 financials proved slightly better or in line with forecasts. The increase in the pre-tax loss to -$10.2m from -$4.9m in FY23 was due to investments in headcount and deployment capabilities, Bell Potter explains.

TNE - TechnologyOne BEAT 2 0 3/3/1 16.07 17.11 7

TechnologyOne's half-yearly performance has seen analysts further increase already strong growth projections. Management raised FY24 guidance to 12%-16% EPS growth, higher than the historical average. Pre-tax profit margins are expected to expand to 35% over time. Annual recurring revenue (ARR) is projected to reach $500m in FY25, and expected to double in size every five years. If there was any complaint it is the absence of growth acceleration in the UK. There was awe in the air on the day of the release, except for Ord Minnett, whitelabeling Morningstar research, which maintains there's nothing special about this company or its business model in contrast to its enviable track record since 2004. Most price targets have lifted, and the share price has been quick to respond. Three Buys equal three Neutral/Holds, with Ord Minnett on Sell.

TUA - Tuas BEAT 0 0 1/0/0 3.15 4.30 1

First half revenue and earnings for Tuas beat Morgan Stanley's forecasts by 3% and 10%, respectively. The broker highlights a first-time positive for free cash flow and ongoing mobile net additions momentum along with an upside surprise for margins. While 5G coverage was ahead of forecast, broadband subscriptions growth was slower than expected, though customer acquisition is set to ramp up. Morgan Stanley has increased earnings forecasts across FY24-26 on an assumed lift in mobile subscriptions and margins.

WEB - Webjet BEAT 0 0 5/1/0 9.43 10.50 6

Webjet's FY24 was in line, but amidst the finer details bookings and total transaction value (TTV) growth of 35% was well ahead of expectations, suggesting momentum is tracking around 10% higher than initial guidance. International travel momentum is outpacing domestic activity, and B2B is outshining B2C. Management is now officially considering offloading the consumer-facing business, potentially leading to a re-rating for the much stronger corporate travel business. Ord Minnett was most in awe amongst analysts, referring to a "remarkable turnaround in fortunes" in comparison to when covid hit and the company was effectively on its knees. At that time, the broker recalls. when smaller competitors were equally struggling to survive, Webjet made the all-important decision to invest in improving and consolidating its various IT platforms. Today, Webjet has the strongest growth outlook in its history. International momentum is expected to remain strong. Macquarie has joined Morgan Stanley on Neutral/Hold by downgrading post the update. All others continue to rate the stock as Buy.

WBC - Westpac BEAT 0 0 0/2/4 24.22 25.22 6

Westpac's result was in line with or slightly better than broker expectations. What underscores a beat was a surprise special dividend and increased share buyback. On revised forecasts, Westpac could potentially spend another $5bn of excess capital over FY25-26 on buybacks and special dividends before its CET1 capital ratio reaches the top end of its operating target range of 11-11.5%, Morgans (Hold) points out. The result supported Ord Minnett's (Hold) view net interest margin pressure is moderating with some home lending rates raised, and less aggressive discounting of existing loans. The adjusted NIM was flat on the 2H of FY23. Ord Minnett expects a similar outcome in the 2H FY24 and modest improvement over the medium-term. Those are the only two brokers with a Hold rating. Everyone else has a Sell. Macquarie considers the capital distribution to use excess franking credits and surplus capital as reasonable, but rates the increased ordinary dividend as stretching the already high payout ratio. Morgan Stanley felt that given a run-up in the share price, the result was already priced in.

SOL - WH Soul Pattinson IN LINE 0 0 1/1/0 30.83 34.30 2

WH Soul Pattinson's first half results displayed a broadly resilient performance by the investment portfolio, Morgans (Buy) suggests. For the 24th consecutive year the dividend increased, as the management team continues to deliver both organic and inorganic growth over the long term. The strategic portfolio comprises large stakes in Brickworks, New Hope Corp and TPG Telecom, and an increased holding in Perpetual. Around half of the private equity portfolio is comprised of agricultural assets. A 10% uplift in net asset value was largely due to market value growth in the strategic portfolio. The result was in line with Ord Minnett (Hold).

XRO - Xero BEAT 0 0 3/1/1 127.25 144.72 5

Forecasts and price targets have gone flying higher after Xero's market-beating FY24 release, with plenty of signals strong momentum shold carry into FY25. Free cash flow surprised on the upside. Average revenue per user (ARPU) grew 8.6% year-on-year (yoy) on the back of recent price increases. The finer details also revealed subscriber growth was weaker than expected in A&NZ, and churn rates increased slightly. Cost will increase. Higher R&D investment will result in a contraction in the free cash flow margin to circa 17% in FY25 from 20% in FY24, and it is then expected to expand to 27% in FY27. Ord Minnett/Morningstar are not a fan and highlight customer acquisition costs were -14% worse compared to FY23, and are three times higher than in A&NZ. Four Buys outnumber one Hold by Morgans, and the ever-present Sell from Ord Minnett/Morningstar.

Total: 51

ASX50 TOTAL STOCKS:

9

Beats

6

 66.7% 

In Line

2

 22.2% 

Misses

1

 11.1% 

Total Rating Upgrades:

3

Total Rating Downgrades:

2

Total target price movement in aggregate:

3.95%

Average individual target price change:

2.19%

Beat/Miss Ratio:

6.00

ASX200 TOTAL STOCKS:

31

Beats

16

 51.6% 

In Line

10

 32.3% 

Misses

5

 16.1% 

Total Rating Upgrades:

9

Total Rating Downgrades:

7

Total target price movement in aggregate:

4.23%

Average individual target price change:

3.91%

Beat/Miss Ratio:

3.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) = '2024/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) = '2024/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 
Monday
24 June

earnings report


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) = '2024/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) = '2024/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 
Tuesday
25 June

earnings report


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) = '2024/06/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) = '2024/06/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 
Wednesday
26 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) = '2024/06/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) = '2024/06/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 
Thursday
27 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) = '2024/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) = '2024/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 
Friday
28 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) = '2024/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) = '2024/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 
Monday
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) = '2024/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) = '2024/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 
Tuesday
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) = '2024/07/03'
					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) = '2024/07/03'
					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
3 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) = '2024/07/04'
					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) = '2024/07/04'
					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
4 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) = '2024/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) = '2024/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 
Friday
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) = '2024/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) = '2024/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 
Monday
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) = '2024/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) = '2024/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 
Tuesday
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) = '2024/07/10'
					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) = '2024/07/10'
					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
10 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) = '2024/07/11'
					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) = '2024/07/11'
					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
11 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) = '2024/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) = '2024/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 
Friday
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) = '2024/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) = '2024/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 
Monday
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) = '2024/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) = '2024/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 
Tuesday
16 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) = '2024/07/17'
					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) = '2024/07/17'
					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
17 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) = '2024/07/18'
					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) = '2024/07/18'
					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
18 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) = '2024/07/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) = '2024/07/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 
Friday
19 July

Listed Companies on the Calendar

Date Code
25/06/2024CKFearnings report
Date Code
24/06/2024MTSearnings report