Alternatives in 2021: Real Assets in Focus - Americas - Recording & Slides

 

2020 Highlighted the resilience and adaptability of real assets in challenging times. The year ahead is likely to bring further challenges. How might the Americas market evolve? 

To coincide with the launch of our 2021 Preqin Global Alternatives Reports, our webinar will draw on the latest Preqin data and the results of our recent investor and fund manager surveys to provide an exclusive insight into developments in fundraising, performance, and deals.

Fill out the form to access the webinar recording, slide deck, and other interesting content curate just for you!

 

'); // Wrap in a container $inputField.after('' + decodeURI('%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20" class="search-icon">')) // Find the container (assuming it's the direct parent with the class) const $container = $inputField.closest('#formField--companyName'); // Demo display element const $idDisplaySpan = $('#selected-id-display span'); let $resultsContainer = null; let $resultsList = null; let valueWasSelected = false; // Flag to track if the current value is from selection let responseData = null; // Store the response data // --- Helper Functions --- function ensureResultsListExists() { if(!$resultsContainer || $resultsContainer.length === 0) { $resultsContainer = $container.find('.autocomplete-results'); if($resultsContainer.length === 0) { $resultsContainer = $('
').addClass('autocomplete-results').hide(); $resultsList = $('
    '); $resultsContainer.append($resultsList); $container.append($resultsContainer); } else { $resultsList = $resultsContainer.find('ul'); if($resultsList.length === 0) { $resultsList = $('
      '); $resultsContainer.append($resultsList); } } } $resultsList.empty(); return $resultsList; } function hideResults() { if($resultsContainer && $resultsContainer.length) { $resultsContainer.hide(); if($resultsList) { $resultsList.empty(); } } if(currentRequest) { currentRequest.abort(); currentRequest = null; } } // Function to clear the stored ID function clearSelectedId() { $hiddenFirmIdInput.val(''); valueWasSelected = false; $idDisplaySpan?.text('(None)'); // Update demo display // Clear company type field when ID is cleared $companyTypeField.val(''); // console.log("Hidden ID cleared"); } // Function to perform quick search API request function performQuickSearch(searchTerm, options = {}) { const { autoSelectFirst = false } = options; // Clear any existing timer and request clearTimeout(debounceTimer); if(currentRequest) { currentRequest.abort(); currentRequest = null; } const $currentResultsList = ensureResultsListExists(); $currentResultsList.html('
    • Searching...
    • '); $resultsContainer.show(); currentRequest = $.ajax({ url: `${apiUrl}?size=10&term=${encodeURIComponent(searchTerm)}`, method: 'GET', dataType: 'json', success: function(responsePayload) { $currentResultsList.empty(); responseData = []; let hasResults = false; if(responsePayload && Array.isArray(responsePayload) && responsePayload.length > 0) { responseData = responsePayload; $.each(responsePayload, function(index, item) { if(item && item.name && item.id) { $('
    • ') .text(item.name) .data('company-id', item.id) .data('company-data', item) .appendTo($currentResultsList); hasResults = true; } }); } if(hasResults) { $resultsContainer.show(); // Automatically select the first item if requested if (autoSelectFirst) { const $items = $resultsList.find('li:not(.autocomplete-message)'); if ($items.length > 0) { $items.first().addClass('active'); } } } else { $currentResultsList.html('
    • No matching companies found.
    • '); $resultsContainer.show(); } currentRequest = null; }, error: function(jqXHR, textStatus) { if(textStatus !== 'abort') { console.error('Autocomplete API Error:', textStatus, jqXHR); ensureResultsListExists().html('
    • Error fetching results.
    • '); $resultsContainer.show(); } currentRequest = null; } }); } // Function to match company type from API to dropdown option function setCompanyTypeFromAPI(apiCompanyType) { if (!apiCompanyType || !$companyTypeField.length) { return; } // First try exact match (most API types match dropdown options exactly) let matchedOption = $companyTypeField.find('option').filter(function() { return $(this).text().trim() === apiCompanyType; }); // If no exact match, check for specific mappings for the differences if (matchedOption.length === 0) { const specificMappings = { 'Non-sponsor backed': 'Other', // API type not in dropdown 'Professional Services': 'Other', // API type not in dropdown 'Infrastructure - Other': 'Infrastructure - Other', // Check if this exact match works 'Natural Resources - Other': 'Natural Resources - Other', // Check if this exact match works 'Real Estate - Other': 'Real Estate - Other' // Check if this exact match works }; if (specificMappings[apiCompanyType]) { const mappedType = specificMappings[apiCompanyType]; matchedOption = $companyTypeField.find('option').filter(function() { return $(this).text().trim() === mappedType; }); } } // Set the matched option or clear if no match found if (matchedOption.length > 0) { $companyTypeField.val(matchedOption.first().val()); } else { $companyTypeField.val(''); console.log(`No matching dropdown option found for API company type: "${apiCompanyType}"`); } } // Function to handle selection (from click or Enter key) function handleSelection($selectedItem) { if(!$selectedItem || $selectedItem.length === 0 || $selectedItem.hasClass('autocomplete-message')) { return; // Do nothing if no valid item or it's a message } const selectedText = $selectedItem.text(); const selectedId = $selectedItem.data('company-id'); // Retrieve stored ID const selectedCompanyData = $selectedItem.data('company-data'); // Retrieve complete company data if(selectedId) { $inputField.val(selectedText); // Update visible input $hiddenFirmIdInput.val(selectedId); // Update hidden input // Update company type field if type exists in company data if(selectedCompanyData && selectedCompanyData.typeRaw) { setCompanyTypeFromAPI(selectedCompanyData.typeRaw); } else { $companyTypeField.val(''); // Clear if no type available } valueWasSelected = true; // Mark that selection occurred $idDisplaySpan?.text(selectedId); // Update demo display // console.log("Selected:", selectedText, "ID:", selectedId); hideResults(); $inputField.trigger('change'); // Optional: Trigger change event for other listeners } else { console.warn('Selected item missing company ID data:', $selectedItem); hideResults(); // Hide results even if ID is missing } } // --- Event Handlers --- $inputField.on('input', function() { const currentInputValue = $(this).val(); const searchTerm = currentInputValue.trim(); // CRITICAL: If the user types anything, clear the previously selected ID // Only clear if the flag 'valueWasSelected' is true, meaning the last change // wasn't already a manual input modification. if(valueWasSelected) { clearSelectedId(); } // We always set valueWasSelected to false here, because *any* input // event means the current value is potentially manual, until a selection happens again. valueWasSelected = false; clearTimeout(debounceTimer); if(currentRequest) { currentRequest.abort(); currentRequest = null; } if(searchTerm.length === 0) { hideResults(); clearSelectedId(); // Also clear ID if input is emptied return; } debounceTimer = setTimeout(() => { performQuickSearch(searchTerm); }, debounceDelay); }); // Handle click on a suggestion item (delegated to container) $container.on('click', '.autocomplete-results li', function(e) { handleSelection($(this)); // Pass the clicked LI to the handler }); // Keyboard navigation and selection/dismissal $inputField.on('keydown', function(e) { // Handle arrow-down when results are not visible - trigger search if (e.key === 'ArrowDown' && (!$resultsContainer || !$resultsContainer.is(':visible'))) { e.preventDefault(); const searchTerm = $(this).val().trim(); // If there's text in the input, trigger a search if (searchTerm.length > 0) { performQuickSearch(searchTerm, { autoSelectFirst: true }); } return; } // Handle TAB key when results are not visible - allow normal focus movement if (e.key === 'Tab' && (!$resultsContainer || !$resultsContainer.is(':visible'))) { // Don't prevent default - allow normal tab navigation to next field return; } if(!$resultsContainer || !$resultsContainer.is(':visible')) { // If results not visible, ESC shouldn't do anything special here return; } const $items = $resultsList.find('li:not(.autocomplete-message)'); if(!$items.length && e.key !== 'Escape') { return; } // No items to navigate (but allow ESC) let $currentActive = $items.filter('.active'); let currentIndex = $items.index($currentActive); switch(e.key) { case 'ArrowDown': e.preventDefault(); currentIndex = ($currentActive.length === 0) ? 0: (currentIndex + 1) % $items.length; $items.removeClass('active'); $items.eq(currentIndex).addClass('active'); break; case 'ArrowUp': e.preventDefault(); currentIndex = ($currentActive.length === 0) ? $items.length - 1: (currentIndex - 1 + $items.length) % $items.length; $items.removeClass('active'); $items.eq(currentIndex).addClass('active'); break; case 'Enter': e.preventDefault(); // IMPORTANT: Prevent form submission if($currentActive.length) { handleSelection($currentActive); // Use the selection handler } else { // Optional: Hide results if Enter is pressed without a selection hideResults(); } break; case 'Escape': // ESC key dismisses e.preventDefault(); hideResults(); break; case 'Tab': // Tab key dismisses and allows normal focus movement hideResults(); // Don't prevent default - allow normal tab navigation to next field break; } }); // Hide results when clicking outside $(document).on('click', function(e) { // Check if the click is outside the input AND outside the results container if(!$inputField.is(e.target) && !$container.is(e.target) && $container.has(e.target).length === 0) { if($resultsContainer && $resultsContainer.is(':visible')) { hideResults(); } } }); // Initial state check (optional) if($hiddenFirmIdInput.val()) { $idDisplaySpan?.text($hiddenFirmIdInput.val()); valueWasSelected = true; // Assume pre-filled value was selected } });

       

Speakers

julie-terres
Julie Terres, CBRE Global Investors
Global Head of Analytics & Risk Measurement
Julie Terres is the Global Head of Analytics & Risk Measurement for CBRE Global Investors. In this role she is responsible for setting the standards for all business lines performance reporting, attribution and portfolio analytics, investment risk measurement, maintaining global performance composites; and managing our relationships with performance and benchmarking service providers.
darren-thorpe
Stewart Rubin, New York Life Real Estate Investors
Head of Strategy and Research
Mr. Rubin is Head of Strategy and Research and Senior Director at New York Life Real Estate Investors (NYLREI) and serves as strategist for the Equity, Debt, and CMBS platforms. Mr. Rubin joined NYLREI in 2009 and has over 30 years of commercial real estate experience including positions at Guggenheim Partners Asset Management and Moody’s Investors Service.
Image 14-1
Justin “Biff” Ourso, Nuveen
Senior Managing Director, Nuveen Real Assets
Biff is responsible for leading and developing the strategic direction and investment execution of Nuveen Real Assets’ business across the agriculture, timberland, infrastructure and impact sectors, which encompasses more than $20 billion in assets under management. Biff also participates as a member of the investment committees for Nuveen’s investment specialists in farmland, timberland, and agribusiness and their accompanying investment funds.
Image 14-1
Laura Dietzel, RSM US
Partner, Real Estate Senior Analyst
Laura specializes in providing real estate audit and consulting matters for privately held companies and private equity funds specializing in real estate. Since joining RSM, she has worked with commercial, residential, retail, hotels and real estate opportunity funds, as well as performed due diligence services for real estate funds and various lenders in the real estate conduit markets.
lynn-robinson
Alex Murray, Preqin
VP, Research Insights
Alex joined Preqin as Vice President in the Research Insights team in late summer 2020 and specialises in coverage of the Infrastructure asset class.
lynn-robinson
David Lowery, Preqin
SVP, Head of Research Insights
David leads the company’s analysis and research coverage across global private markets. David has worked in a variety of roles within the finance industry in a career spanning more than 20 years.