April Fools Sees Fake Extra Millions For Users of Brokerage Site
Upstart online brokerage site Zecco had an unfortunate April Fool's day snafu that they are claiming was an honest mistake. Users logged on to find larger balances than they should have, sometimes millions of dollars extra, and many of those users started trading with the nonexistent money. Happy April Fool's Day. "... when Zecco realized it, the company apparently started to force sell, even at a loss, charging the losses to the customers along with a '$19.99 broker-assisted trading fee.' Oops."
the conservative, sandwich-heavy portfolio pays off for the hungry investor. - Dr. Zoidberg
Sig this!
It's like a performance art piece about our worm-riddled crony capitalist mess!
Quit making excuses guys, and head on down to the gallery...
Conficker? Or just some programmers/administrator's Easter Egg?
Seriously. I thought all financial institutions had given up on using Perl for their back-end systems. One misplaced _$ and suddenly everyone is swimming in money.
Next time use a strict typing language like Haskell.
I'm guessing some coke-head in marketing/sales dreamed this one up to get free press about the site. Nobody in IT or Finance would conceive of a "joke" so stupid.
A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
http://www.zecco.com/blogs/zeccopulse/Setting-The-Record-Straight.aspx
The company is rather adamant that it was not a prank, but a mistake that just happened on that day.
The mountain is high, the valley is low
And you're confused 'bout which way to go
So I flew here to give you a hand
And lead you into the promised land
So, come on and take a free ride (free ride)
Come on and take it by my side
Come on and take a free ride
I logged in to Zecco 4/1 at around 9:30 AM... my cash-on-hand was off by about $1.6 MM (balance was 1.8 MM instead of 0.2 MM). I immediately instructed Zecco to wire me the excess funds... and the funds hit my bank account at 12:02 PM!
As of today, the money is still in my account, but there is a hold on it. Apparently, the funds transfer was initiated properly, fully authorized... so my bank is holding the funds while I accrue interest on it until they determine final disposition.
Oh hell, who am I kidding... I don't have 0.2 MM in an online investment account. Hell, I don't think I have 0.2 MM is assets, unless you include my wife & daughter, who I could probably sell for that much if I found a good buyer or if there was a bidding war.
Oops... was that my out-loud voice?
"Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
use strict;
TFA and the summary both state that the broker "started to force sell, even at a loss, charging the losses to the customers". However, they are silent on what happened to those who were ahead on their trades. Did they get to keep the profits?
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
Let me see if I get this straight (understanding that the summary has a typo and should read they shouldn't have on the second statement. Or, and this is the link to the consumerist story.
You log in your account and find a huge sum of money in their. Or, I hit the jackpot you think. Now you go and start using it for trade. TFA is a bit lightly on the details, but looks like this trades were go, meaning basically, market fraud. Not, to add some salt on all this, they go out to reverse the money, sell the stocks people bought at a loss, charge than the loss and ask for a commission??? I see lawsuits coming from so many points it gets ridicule.
From the consumerist post: "west: ummmm, this is ridiculous. so i thought it was an april fools joke, put in an order for SKF, and it went through then Zecco just sold it â"-- more than likely making me take the loss please let me know if any of you experienced this! lol....and they charged me $19.99 for commission". So basically they did an April's fool joke, it went wrong, and they are trying to make people pay for their mistake.
Impressive. They do get credits because you need a lot of balls to joke with the market after all it went through recently. And no, I don't buy the "honest mistake" line.
--- "When you gotta do something wrong. You gotta do it right. (Fighter)"
First of all, it obviously WAS an honest mistake. Even if they millions showing up as "buying power" were intended as a joke, the fact that the system allowed them to be used for actual purchases, most certainly was a mistake.
Now, when you have a brokerage account and are trading stocks, you should know what you are doing and be responsible for your actions. So, when you see several million in you account, you should know as much to not start investing them. If it is not your money, at best it will be considered a margin trade which has to abide to SEC mandated rules. IIRC on a margin trade you have to have equity worth 25% (or whatever the figure is) of the security that you acquired on margin. Otherwise the broker has to automatically sell to cover. If you don't know things like that, you should not be trading at the stock market.
Violence is the last refuge of the incompetent. Polar Scope Align for iOS
I appreciate a good Perl joke as well as the next Perl hacker, but if you wedge a "_$" into your code you'll just get syntax errors. Did you mean "$_"? That error (misplaced default parameter) I've seen quite often, mostly among Perl nubs.
I can't comment on the frequency or trend of Perl back-end systems. Most back-end systems I've worked with are J2EE.
Your ideas on type-safety are intriguing to me and I wish to subscribe to your newsletter.
Welcome to the Panopticon. Used to be a prison, now it's your home.
Hahaha, surely, thou art on the highway to Hell.
Ducketh thou, the swine that thou hast cast your perl before will rise up and smiteth thee.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
Screw ups like this is why I insist that all financial institutions that I have business with send me paper statements.
...people aren't that stupid.
More likely many of them realized "Hey, this could be an aprils fool or then not. I don't know. I could check it and get confirmation oooor.... I could act as if it wasn't and sue the hell out of them if this is!"
While nobody should be stupid enough to fall into that joke for too long, no organization should be stupid enough to make jokes with large sums of money.
... if a ridiculously large amount of money shows up unexpectedly in your bank account, rushing out to spend it wildly before the mistake can be caught is not actually the smartest of the available options. The authorities look disapprovingly on such activities.
Life needs more saving throws.
Whooosh!
Whooosh!
Whooosh!
Whooosh!
A whole flock of them went right over your head. Check for droppings.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
It's true, we're doomed, I tell you!!!
*reaches for tinfoil hat*
More seriously, original post is here. They're claiming it was a mistake in a feed...
http://preview.tinyurl.com/ca37sl
An abstract...
"The surge in "Buying Power" was an accidental extension of credit to the customers' accounts. Actual funds were not deposited therein. After the error was discovered, the mistaken credit was withdrawn. However, not before some executed trades on the lines of credit, including including one guy who bought over $1 million in shares. The company then acted to reverse the errors, saying on their blog, "Except in a very small number of egregious and fraudulent cases, customers will not be responsible for losses (or gains) incurred for trades in excess of their buying power."
Wonder how they define "egregious and fraudulent"?
*removes tinfoil hat, reaches for lawyer*
Are you illiterate? From the summary: Upstart online brokerage site Zecco had an unfortunate April Fool's day snafu that they are claiming was an honest mistake (emphasis mine).
From the linked "article": Consumerist has updated their post with a message from Zecco claiming that it was not an April Fool's joke,...
And from the "real" article that is linked from there: Online brokerage site Zecco accidentally increased 1% of their customers' Buying Power balances by millions on April 1st, leading some customers to wonder whether it was a system glitch or some horrible April Fool's joke. It turned out to be the former.
And from Zecco itself: "Additionally, we want to make it clear that contrary to some reports, this was not in any way intentional and was not an April Fool's joke. We take the integrity of our customers' accounts very seriously and we have taken measures to ensure this does not happen again."
Whether or not you believe Zecco is a different matter, but the only thing pointing towards it being an April Fool's joke is speculation, and this is flatly contradicted by the claims of Zecco, and the summary somewhat accurately conveys this.
None of this was intentional. FTA:
"Update: Consumerist has updated their post with a message from Zecco claiming that it was not an April Fool's joke, but noting "Some clients may experience incorrect display of Buying Power and Account Balances." It's not entirely clear how those "incorrect displays" were apparently off by millions in some cases."
It was indeed a Perl joke and it's been too long since I've programmed in it to remember that $_ was the correct sintax. I mean syntax. I guess I'm still in the category of "Perl nubs".
If a large amount of money shows up in your bank account, and you have no idea how it got there, spending it WILL land you in jail if you withdraw the money and hide it or blow it.
This is the case even if you ask the teller if the money is yours and he/she says yes. Once they figure out the truth, they WILL hold you responsible for the cash.
I see no difference between that and this case. These folks knew they did not actually have an account worth millions, yet they bought stock based on money they did not have. Gee, what did they think was going to happen; of COURSE the broker is going to get their cash back ASAP.
If I was the broker, I would waive the trading fees for selling your shares, but would hold the account holder responsible for any losses. Maybe, in a goodwill gesture, sign over the gains (if any) also, but that would be the limit of my generosity.
SirWired
You ever get the feeling we don't know what we're doing anymore?
... if a ridiculously large amount of money shows up unexpectedly in your bank account, rushing out to spend it wildly before the mistake can be caught is not actually the smartest of the available options
The smartest thing to do is take it all out as cash, convert it into gold bars, then disappear.
Deleted
Perl's type system was developed by hippies under the influence of drugs that impair one's ability to distinguish between strings and floating point numbers.
Zecco made the error.
Zecco eats the consequences.
Period. Why should people be held liable for someone else's mistakes?
If I were a Zecco customer, I would file suit to make them pick up the tab. If they are going to offer services as an online brokerage, they should have understood the risks, which, like all businesses, include making serious errors.
Think of it like this:
If a scalpel slips in the hands of a surgeon, and the patient bleeds to death, is the surgeon responsible because they were performing the surgery, or is the patient responsible because they bled to death? This issue of responsibility with Zecco is a no-brainer.
By changing the amounts of money in customers' account, Zecco basically 'gave' that extra money to the customers, and the customers spent it. Now, Zecco is trying to 'take back' that money. Regardless of the fact that Zecco made a mistake, they still *made the mistake*. I smell a lawsuit in the making.
Knowing Google's lust for data collection, the Soviet Union is still alive and well inside the psyche of Sergey Brin....
""Except in a very small number of egregious and fraudulent cases, customers will not be responsible for losses (or gains) incurred for trades in excess of their buying power.""
-No fraud was perpetrated. The customer had no influence on what funds were available and how much they got.
Knowing Google's lust for data collection, the Soviet Union is still alive and well inside the psyche of Sergey Brin....
Finally there is an online broker worse than Sharebuilder!
Translation into modern English: "Ducks you, the swine that you have cast your perl before will rise up and smites you." Yes, I am such a pedant, I will critique your usage of outdated English.
SSC
it's been too long since I've programmed in it to remember that $_ was the correct sintax. I mean syntax.
Can I have that explained? Since it clearly couldn't possibly be true that you would choose to type "I mean syntax" instead of hitting backspace a few times to correct yourself, I'm guessing it's a joke I missed. The only thing I see is "sin tax" and I don't know how that applies to perl or the topic at hand.
Need some help here.
Exactly what I told the cops about the $100k bank error on my account. I had no influence on the available funds, the bank giveth, I taketh and ran!
I thought the practice was only frowned upon - it turns out it is illegal!
There was no change in anyone's balance, 1% of users simply had their credit line extended. And some of those people decided to spend egregiously from this new credit line.
They probably thought they could make a quick buck and pay back the AIG mortgage that they defaulted on. Apparently we have learned nothing from the economic collapse.
"Wonder how they define "egregious and fraudulent"?"
any trades that resulted in a loss.
Any trades that resulted in a gain we will just keep the difference and call it ok.
A friend just found a bug in his (production) Java code, despite strict typing:
if(condition); //Code that always happens due to bug
{
}
Strict vs. loose typing has little effect on code quality. Testing+QA is how you avoid mistakes, not strict typing.
Strict typing only removes a small class of runtime errors. Which are then reintroduced due to strict typing (and compilation) being such a pain that most projects use loosely typed XML config files for an awful lot of "programming". Doh.
Nay, but duckest thou, the swine before which thy olde joke was cast has freakin' Haskell.
Would it still be fraud if a person had one of those stock trading robots? Not being funny I really don't know.
It "could" be possible a small hand full of people are using those robots that were trading away without the account holder knowing what had happen. Could you be charged as if you knowingly committed fraud when you had no idea anything took place? There are people who fire up these robots and only check accounts manually periodically to see if they are up or down and don't care what is going on if things are up.
You may just be thinking wow I'm getting my money's worth out of this bot! Not thinking I wonder if my bot is dong anything illegal I can be arrested for.
use haskell;
I think there is a world market for maybe five personal web logs.
Bank error in your favor! Collect $1,000,000.00!
Wait...did you just put a lawyer on your head?
Perl's type system is very strict -- it just only has three types.
If I had found this, I would have made arbitrage plays or other fully-hedged trades that have very small margins but are completely safe. Too bad most of these would take a few days (at least) to pay out. Worth a shot though.
I've encountered a different problem every time I've deposited funds with Zecco.
Let's say I have $10,000 cash in my account. I hold no securities and I have no transactions waiting to settle.
If I go to the Funding and Transfers page, it shows that I can withdraw my $10,000 to my bank account as it should.
Now, if I deposit another $500, I have to wait a few business days for that deposit to clear at which point I will have $10,500 to trade or withdraw as I should.
HOWEVER, during the intervening time between when I make a deposit and when it clears, my funds available to withdraw DECREASES by whatever amount I'm depositing. So, in my example from above, when I deposit an additional $500, Zecco suddenly says that I'm only allowed to withdraw $9,500 of my $10,000.
I've called them three times about this. Twice I got people who assured me there wasn't a problem and that my display was wrong. The third time, I got a guy who claimed to understand the problem after I explained it to him three times. He claimed to be a math major. Umm, OK.
I have not made a deposit since the last time I called them.
It should be noted that my buying power is never effected and that all the numbers end up correct after a few days but this is money. This is serious business. The fact that it's ever incorrect seems really bad!
Yes. I'm chronically broke. I would notice just about any extra money.
thou.duckest((FreakinHaskell) oldjoke, swine);
The Perl pseudocode that started it all..
1) Increase tradeable $.
2) __$_$$_$_$_$$
3) PROFIT!
GP here. I post AC because I haven't registered. (Though I am very active commenter and normally get decent moderations.) And why would I? I'd rather that people pay all the thought to the contents of the comment and none to who posted it. I am not sure if I even want to discuss with the part of the /. that filters out everything not posted by registered users (who are somehow inheritly better people, I guess).
Please tell me though... Does registering get you around the "You can't post a comment because you posted one half an hour ago."?
Sure, static typing isn't magic : it won't find every bugs in your programs...
But assessing that it has absolutely no positive effect and that you need ugly frameworks full of XML to compensate for the lack of dynamism only shows that you never tried a strongly statically typed modern functional language like Haskell.
The world isn't black and white, just because static typing isn't the panacea doesn't mean we should all use dynamic language and test every single function to see how it (mis)behave under conditions that couldn't ever happen in a decently typed language. Besides the suggested Haskell isn't only statically typed, it is also a purely functional language, which means a completely different paradigm than Java or Perl (both fairly imperative) often credited of reducing implementation error and facilitating tests.
--
Jedai (not Anonymous)
Yes, that's correct.
If you make a deposit in your account, you cannot cash it until either (1) it clears or (2) a hold is placed on your account in the amount of the check to cover it in case it bounces.
Since your buying power was not affected, this means that you are able to treat the deposited item as cash, investing it in securities. This is only possible if there is a hold on equivalent funds in your account.
What is boils down to is that in order for the funds to be available for you to purchase securities with, a hold has to be placed on covering funds. If Zecco instead had a policy where funds could not be invested until the deposit clears, then you'd be able to withdraw the $10000 without a problem.
Say your buying power is 1x your deposits. Your despoits were 10,000 (100% cleared) and $500 (not cleared). You buy 500 of securities, and withdraw $10000. Then the check bounces. Now you have $0 deposits to cover $500 of securities. Uh-oh... FTC securities violation.
Because of the fact that Zecco needs to make funds available for investment immediately (I dunno if this is statutory, or if it's to compete in the marketplace), they have to place the hold on your $500.
"Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
Haskell's typing language is Turing Complete. It is extremely expressive and easy to use. It does a lot more than "remove a small class of runtime errors". It is a tool in itself.
After all, I am strangely colored.
Jeez, it's almost like the GP was trying to state the opposite of the truth... I mean, not only does TFA say otherwise, but so does the post DIRECTLY above him.
What a dumbass.
Try not to take me more seriously than I take myself.
Wait let me get this straight.
I'm sorry is it just me or does it seem like Zecco are the ones committing fraud here.
If I offered you a ten dollar line of credit to purchase stock with, you accepted and purchased said stock, I changed my mind, and sold the stock (which is your property) it seems to me that I would get in trouble for fraudulently selling your property.
Unless I'm missing something here...
It means they figured out a way to "reverse" nearly all of the transactions in a way where they come out ahead (forced sells that resulted in a gain > forced sells that resulted in a loss)
> use strict;
/e switch on the substitution operator. So there's a trade-off between the guarantees that strict typing can give you, and the power and convenience that loose typing can give you. Actually, come to that, the ability to store any of several things in a variable is in itself fairly powerful and if used well can *enormously* simplify the code for certain kinds of problems. And as any decent programmer knows, simpler code is easier to maintain.
While the strict pragma is undeniably useful, ESPECIALLY for modules that are called by other people's code, it is not the same thing as strict typing.
Strict typing means that a variable has a specific data type (like integer, for instance), and if you try to put anything ELSE in it, you get an error.
However, this is really only useful, IMO, if you can get the error at compile time -- which implies that your language can't have certain fairly powerful and undeniably useful constructs, several of which Perl does have, such as, for instance, the
IMO, Perl makes good sense for the web-based front end (i.e., the UI), but it should probably be getting the financial details from a back-end process...
Cut that out, or I will ship you to Norilsk in a box.
From the reports, it sounds like what the Zecco error did wasn't really to increase the amount of cash in the customer accounts, but rather, incease the amount of margin available to them. I.e., it allowed the customers in question to borrow millions of dollars. That makes it doubly dumb to actually try to exploit Zecco's error; you're supposed to pay that money back!
Are you adequate?
Actually, come to that, the ability to store any of several things in a variable is in itself fairly powerful and if used well can *enormously* simplify the code for certain kinds of problems.
Strongly typed languages often contain constructs that allow to emulate this behaviour if absolutely necessary. For example, F# (and thus, I assume, ocaml) allows unions.
type myType = {
| type_A of int
| type_B
| type_C of string
}
They are still strictly typed, just that their type is (A or B or C). That way, you get flexibility when you need it, while retaining the behaviour of a strongly typed language.
And as any decent programmer knows, simpler code is easier to maintain.
Simple doesn't mean unprincipled. I started coding exclusively in F# last summer, and I haven't looked back. On several occasions, I have written several hundred lines of complex scientific code in one go, ending up with a bug-free piece of software right after the first compilation. If you can do this in perl or python, you are a better programmer than me. Plus, the code looks gorgeous, and you can actually read it from top to bottom and understand what's going on.
We would like to set the record straight on the alleged April Fool's prank. Insinuations that Zecco Trading pulled a bad joke on its customers are factually inaccurate and complete misinformation. Please take the effort to read the real story: http://www.zecco.com/blogs/zeccopulse/Setting-The-Record-Straight.aspx">Setting The Record Straight
Thanks for adding this much needed clarification.
J2EE???? I work on a heavy-weight back-office banking product, we work in the cutting edge world of COBOL development. No doubt the CTO believes J2EE to be just another flash-in-the-pan "glamour" technology that will fade away - just like the attempt to migrate to SmallTalk circa '92.
Yes, you're missing something. Margin lending is very strictly regulated, and the regulations allow brokers to sell off your positions in many situations; this is called a margin call. From the SEC investor guidance site:
Are you adequate?
In 1990, I found $25K extra in my brokerage account - using a thick client over the internet. I immediately contacted the broker and the next day it had been "journaled" out of my account. I figure is was:
a) an honest mistake
b) someone laundering money
I never saw anymore concerning that cash. It didn't show up on my monthly statement. It didn't show up on my taxes.
Honesty - well, for $25K, it wasn't worth trying to "steal" money that wasn't mine. For $1M, it isn't worth it either.
*removes tinfoil hat, reaches for lawyer*
You clearly have no idea how to use lawyers - you don't put them on your head, they suck like leeches from the arms or legs.
Seems more like a badly repurposed Lisp joke, since syntax is a sin...err...
I had a $200+ bank error in my account in the late 1980s... I waited a month before spending the money. I then spent it without problems. Your suggestion that the bank missed some account debits is probably why this happened.
Tech Public Policy stuff
I'm currently building a case against my online broker in Canada (Courtage Direct Banque Nationale) because I had a similar problem with them last October. I had been trading with money I thought was in my account, not validating the individual amount of each positions I owned against the margin, only to find later that I actually had not enough money to cover even the slightest loss, the buying power was all fictitious. I had no marginable position. In the end, they force-sold all my positions and I ended with an account in negative of a few thousands, instead of a real positive balance of a couple of thousands prior to the glitch. They said they tried to contact me, but I have no trace of those calls. Anyway, that week I was sick, and spent most of the time in bed... They decided to sell everything. All there was in the account. But If they had waited just the end of the day to start selling I would have owed them nothing. And if they had waited the next day I would have made a lot of money. Now I have to build a case against them, because they say I was responsible for all the actions in my account. I'm responsible for what I buy, but I'm also responsible for the losses resulting from the actions they took, without my consent, without my knowledge. The only time I knew something was wrong was when they sold everything, starting with the position that incurred the losses, then everything I owned. Now I have nothing left and I need to take legal actions against a bank. They took everything like if it was theirs. I'm like David against Goliath!!! I have fun!!!
Right but on a margin call you still get any profits and are responsible for any losses.
Haskell does however not help you if you put in a divide instead of a multiply in some special case compound interest calculation (or some such). It's more likely a math/logic/database admin error than a typing related error (even a unit conversion) that caused such a glorious snafu.
Fuck off, Zecco! Where's my $1,000,000?!?!?!
Probably a bit late for anyone to notice this...
Everyone is saying "Stupid customers, spending money that thye should know isn't yours!".
Unfortunately if you are running an automated trading system, the process goes something like:
- I want to place a trade
- Ask broker system how much money/margin etc I have available for the trade
- Size trade based on response from broker
- Place trade
usually these systems don't keep an entirely seperate portfolio system (especially retail systems) to ensure that the brokers response is actually correct.
> many of those users started trading with the nonexistent money
If I was to suddenly find a million bucks in my account, I'd go and find out where it came from and if it's really mine, before I start spending it.
What a depressingly stupid machine.
Yeah, _$ would likely cause problems.
But at least perl uses a different operator to distinguish between string concatenation and, say, numeric addition. Unlike, hrm, javascript.
I think the most sad thing about my comment is I meant it to be funny and it got modded informative. Oh, well. Not everyone can know what strong typing really means.