91³Ô¹ÏÍø

Watch CBS News

SantaCon organizer lavished more than $1M in charity funds on himself and "stole Christmas," prosecutors allege

From ho, ho, ho to no, no, no. 

A New Jersey man who organized the popular, and occasionally problematic, SantaCon in New York City was a con man himself, federal prosecutors alleged Wednesday. 

Stefan Pildes claimed that SantaCon, which drew some 25,000 attendees, was a charitable bar crawl, but instead he spent roughly half of the $2.7 million it raised from 2019-2024 on himself, federal prosecutors claimed. 

Pildes, 50, faces wire fraud charges. If convicted, he could spend up to 20 years in prison. 

He was released on $300,000 bond.

How Pildes allegedly spent the money

Pildes organized SantaCon through a nonprofit he created called Participatory Safety, Inc., or PSI, prosecutors said. He promoted the event on a SantaCon website, informing attendees tickets cost $10-20 and got them entry to SantaCon venues and would help various charities. Venues would enter agreements with PSI to be part of the official SantaCon route, and PSI would get a percentage of food and beverage sales during the event - typically 10-25%, prosecutors said. That fee was called a "charitable commission" or a "donation." 

Pildes instead allegedly "misappropriated and stole the majority of SantaCon proceed by diverting them to an entity that [he] controlled," called the Creative Opportunities Group, Inc. 

Pildes "spent SantaCon proceeds on extensive renovations to a lakefront property in New Jersey, luxury vacations in Hawaii, Las Vegas, and Vail, extravagant meals, and a luxury vehicle," according to the indictment. 

screengrab-00001.jpg
SantaCon organizer Stefan Pildes leaves court on April 15, 2026.  CBS News New York

"As alleged, Stefan Pildes promoted SantaCon as an event grounded in charitable giving, but instead of donating the millions of dollars he raised, he ran his own con game," U.S. Attorney Jay Clayton said.  "He took advantage of New Yorkers' generous holiday spirit to finance his lifestyle through personal expenses, big and small.  No matter how you dress it up, fraud is fraud.  We are committed to protecting New Yorkers from those who exploit their enthusiasm and generosity."  

"Pildes allegedly stole Christmas from tens of thousands of victims and deprived local charities of more than one million dollars.  The FBI continues to root out scrooges that greedily exploit the goodwill of New Yorkers," FBI Assistant Director in Charge James Barnacle, Jr. said.

Gov. Kathy Hochul's office seemed delighted by word of the indictment. 

"THE REIGN OF TERROR IS OVER," .

Michael Sciaraffo, president of the , says his nonprofit received donations from SantaCon nearly every year, and while he was grateful at the time, he says he now feels victimized.

"These charities have been defrauded," he said. "Money that was allocated for the purpose of helping organizations like us, and we're struggling, and somebody's off using it for not that purpose."

Sciaraffo said he's now worried about his nonprofit's future.

"We are in danger of not being able to exist due to a lack of financial support," he said.

Read the indictment

SantaCon organizer Steven Pildes indictment
Page of
View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });