- Enforcement
- AI & Technology
- Markets & Trading
Machine speed, human governance
In forty-five minutes, a routine software deployment turned Knight Capital Americas from the largest retail market maker in US equities into a near-insolvent firm, for a loss of about $460 million. It was not a trading failure. It was an engineering one: dead code, a reused flag, a control calibrated never to fire, a system no one could stop.

In forty-five minutes, a routine software deployment turned Knight Capital Americas from the largest retail market maker in US equities into a near-insolvent firm, for a loss of about $460 million. It was not a trading failure. It was an engineering one: dead code, a reused flag, a control calibrated never to fire, a system no one could stop. This is a case study in what software development and trading, each learned the hard way, now teach AI governance: how to build, test, bound and stop a system that acts faster than anyone can watch. The problem was never that the machine was fast. It was that nothing human could keep pace with it, or stop it, in time, and the next machine is an AI.
A deployment, not a strategy, nearly ended the firm
On the morning of 1 August 2012, Knight Capital Americas deployed new code to the automated system that routed its stock orders to the market. The deployment was incomplete, it reactivated long-dead code, and it had no safety net behind it. When the market opened, Knight's router began sending millions of unintended orders into 154 stocks. In roughly 45 minutes the firm executed more than four million trades totalling over 397 million shares, accumulating billions of dollars in unwanted positions and a pre-tax loss of about $460 million.1
Knight did not lose the money to a bad bet, a rogue trader, or a market crash. It lost the money to its own technology, operating exactly as its flawed configuration told it to, with nothing in place to notice or stop it. The Securities and Exchange Commission's 2013 order charged violations of Rule 15c3-5, the Market Access Rule, and settled for a $12 million penalty.1 The firm survived only through an emergency capital rescue of roughly $400 million and was absorbed by a competitor within months, ending its independent existence.
The surface story, a legacy flag and a missed server, is the least interesting part. This study treats Knight as what it really is: a complete anatomy of how a sophisticated automated firm fails. It walks the warning signs that preceded the event, inventories the nineteen distinct points at which the failure could have been prevented or stopped, examines the organisational and testing gaps that let all nineteen coexist, maps the lot to the Market Access Rule, places it beside Goldman Sachs's strikingly similar options event a year later, and then asks the question that matters most now: which of these failure modes persist, and which get far worse, when the automated system at the centre is an AI.
Knight incident at a glance
More than four million trades were executed in roughly 45 minutes; one of eight servers did not receive the new code.
Source: SEC orders on Knight Capital and Goldman Sachs; see sources and notes.
The warning signs, and the post-mortem that never happened
Catastrophes of this kind are never a bolt from a clear sky. They are the last link in a chain of ignored signals, and Knight had signals at every timescale. The most immediate arrived that very morning. As the flawed code began running in the pre-market, Knight's systems generated 97 automated emails referencing SMARS and a "Power Peg disabled" condition. Ninety-seven warnings, sent before a single customer order was harmed, to people who had no procedure that treated them as alerts. The firm had a smoke detector. It had simply never wired it to anyone's attention.1
When the alarm is just noise
Those 97 emails deserve a closer look, because they expose one of the most common and most dangerous illusions in operational control: the false confidence of believing you have monitoring simply because something, somewhere, is generating messages. Knight's systems were, in a narrow sense, alerting. The BNET messages did fire, before the market even opened. But an alert that no one can act on is not a control; it is noise with a timestamp. Those messages referenced SMARS and a "Power Peg disabled" condition in terms that meant nothing actionable to the people who received them. They did not say, in plain language, what had gone wrong, where to look, how serious it was, or what to do about it. A reviewer reading one had no way to tell that it signalled an unfolding, firm-threatening event rather than one more piece of routine system chatter.
This is a design failure, not a staffing one. A reject or error message that carries a code and a system name, but not the nature of the problem or the response it demands, pushes the entire burden of interpretation onto a human who, in the moment, has neither the context nor the time to carry it. And when messages of that kind arrive constantly, a second failure compounds the first: complacency. Reviewers habituated to a steady stream of cryptic, mostly-benign alerts stop treating any single one as urgent, because they cannot afford to. If the monitoring is permanently lit up like a Christmas tree, the one alert that genuinely matters is indistinguishable from the hundred that do not, and the severity of the real one is simply lost in the glare.
The useful picture is the dashboard of a car. A warning light that illuminates for everything at once tells the driver nothing, because not everything can be an emergency. But an unfamiliar icon that flashes, without the driver being able to tell quickly what it means or whether to pull over, is just as useless, because it cannot be acted on in the time available. A good alert lives between those two failures. It lets the reviewer understand what went wrong, where it happened, and how to investigate it, and ideally it tells them the action to take next, the move that would mitigate the situation or stop the bleeding. Knight's alerts failed that test on every count, which is why, for all the messages flying around that morning, the firm was effectively driving blind with the whole dashboard lit.
The deeper signals predated 1 August by years. None of the conditions that caused the loss were created that morning. The dead Power Peg code had sat in the code base since around 2003. The practice of manually deploying to production by hand, without a second reviewer or a written procedure, was the standing way the firm worked. The monitoring that could see but not stop, the capital controls that warned but did not block, the absence of any system-level halt: these were architectural facts about Knight that had been true for a long time. The event did not reveal new weaknesses. It detonated old ones.
The October 2011 loss the SEC itself flagged
This is not merely an inference. The SEC's own order makes the point directly, opening its discussion of Knight's controls with the observation that several previous events had presented an opportunity for Knight to review the adequacy of its controls in their entirety. The clearest of them came in October 2011.1
That month, Knight used test data to run a weekend disaster-recovery exercise. After the test concluded, the firm's lead market maker desk mistakenly kept using that test data to generate automated quotes when trading opened the following Monday morning. Quoting live markets off stale, non-live test data, Knight lost nearly $7.5 million before the error was caught.1 No strategy failed. A system simply kept acting, confidently and automatically, on data that was no longer real.
This is the archetype of an operational-risk event, and it deserves to be understood as one. A firm like Knight lives on data, the live market feeds and the reference and test data around them, and an automated market maker does not pause to sanity-check what it is given. It keeps quoting against whatever picture of the world it holds. When that picture is stale, the loss arrives fast and silently. The infrastructure that supplies and switches this data, across live feeds, failover, and disaster-recovery environments, is among the most complex and least visible parts of a trading stack, and the assumption that the data in hand is current is buried everywhere downstream. A loss of this kind is not really a trading loss. It is an operational failure that happened to express itself as one.
From an operational risk management perspective, a near-$7.5 million loss driven by stale data belongs at or near the very top of the firm's risk matrix. It scores high on both axes that matter: likelihood, because data disruptions are common and the dependency is total, and impact, because a data fault in an automated system produces a very large loss very quickly, with no human able to intervene in time. A firm with a functioning operational-risk framework treats an event like that as a mandated trigger to review the whole category of risk, not a one-off to be absorbed and patched.
What Knight did instead is the heart of the lesson, and the SEC spelled it out. The firm responded narrowly, fixing the specific symptom: it limited the system to market hours, changed the control so the system would stop providing quotes after receiving an execution, and added an item to a disaster-recovery checklist requiring a check of the test data. But, in the SEC's words, Knight "did not broadly consider whether it had sufficient controls to prevent the entry of erroneous orders, regardless of the specific system that sent the orders or the particular reason for that system's error," and it "did not have a mechanism to test whether their systems were relying on stale data."1
Read that against what happened ten months later. A different system, SMARS, erroring for an entirely different reason, a reused flag and dead code rather than stale test data, sent a flood of erroneous orders into the market. That is precisely the class of event the broad review would have been built to catch: erroneous orders, regardless of which system sent them or why. Knight had been handed the exact question whose answer would have saved it, had answered a narrower one, and moved on. The October 2011 loss was not a warning the firm ignored for lack of information. It was a warning it received, remediated too literally, and failed to generalise, which is the specific failure that a disciplined operational-risk and post-mortem function exists to prevent.
The post-mortem discipline firms should take from Knight
The most valuable thing to carry away from this is not a verdict on Knight but a discipline that every firm running automated systems should adopt from watching it fail. A firm running automated systems at scale lives or dies by its post-incident culture. Every disruption, and every near-miss, is supposed to trigger a blameless, architectural review that asks not "who typed the wrong thing" but "what in our system allowed a single human error to become a firm-level event, and what will we change so the next one cannot." Large technology firms institutionalise this. Trading firms, which carry the same operational risk with faster consequences, are expected to do the same, and the better ones do.
The pattern is one the October 2011 loss had already exposed. A firm that had genuinely dissected that event, rather than patching its narrowest cause, would have been forced to confront the very questions that went unanswered on 1 August: do we deploy by hand, do we verify every node, do we leave retired code in production, can we actually halt a runaway system, and are our limits bells or blocks. A rigorous, generalising review of that single prior incident would have surfaced at least some of the nineteen gaps that follow. That it did not is itself a finding. The absence of an effective review loop is what let a decade of accumulated fragility survive intact until the morning it mattered.
The October 2011 test-data loss, Knight's narrow remediation of it, and the finding that the firm did not broadly review its erroneous-order controls or build a stale-data check are all documented in the SEC order, at paragraph 33; the 97 pre-market emails are documented too. What is analysis, clearly flagged, is the operational-risk framing around them: that a loss of this size should have sat at the top of a risk matrix and compelled a firm-wide controls review.
There is a regulatory dimension to this too. Rule 15c3-5 does not only require controls to exist; it requires the firm to review their adequacy, with the broker-dealer's chief executive certifying annually that the risk-management controls and supervisory procedures comply with the rule.1 That certification is, in effect, a mandated post-mortem and assurance loop. A functioning version of it asks every year whether the controls still match the business. Knight's evidently did not, because the gaps it should have caught were exactly the gaps that produced the loss.
An incident you do not learn from is not an accident. It is a rehearsal.
The firm and the system
Knight Capital Americas was one of the largest market makers in US equities, routinely handling order flow measured in the tens of billions of dollars a day. At the centre of its equities business sat SMARS, the Smart Market Access Routing System: a high-speed automated router that received "parent" orders from other Knight systems and broke them into "child" orders sent out to the exchanges for execution.1
On 1 August 2012, NYSE was launching its Retail Liquidity Program, a new venue feature intended to offer price improvement to retail orders. To participate, Knight had to update SMARS. In the days beforehand, a technician manually deployed the new code to the eight servers that ran SMARS. Buried in SMARS was a piece of functionality called Power Peg, a feature Knight had stopped using around 2003 but had never removed from the code base. The new deployment reused a flag that had once activated Power Peg, and on the one server the technician missed, setting that flag woke the old code. Power Peg's job had been to feed child orders into the market, and the function that told it to stop once a parent order was filled had been moved out of it. Woken on that server, it had an accelerator and no brake.
A material change, treated as a routine push
The trigger for the whole episode was a market-structure change with a hard external deadline: the NYSE Retail Liquidity Program went live on 1 August 2012, and any firm that wanted to participate had to be ready that day. This matters more than it first appears, because the nature of the change dictated the level of care it deserved, and Knight gave it the level of care appropriate to a routine code push.
A change to how a firm's order router behaves, tied to a new venue mechanism, is about as material as operational change gets. It touches the live path that sends real orders to the market. The correct treatment of such a change is heavyweight: a documented impact assessment, a named owner, a test plan that exercises the new behaviour against the venue, a staged or canary rollout, a dress rehearsal, independent review of the deployment, and a tested rollback if it goes wrong. Instead the RLP update was pushed to eight servers by hand in the days before go-live, with no verification that it had landed everywhere and no rehearsal of what would happen at the open.
The scramble, and the bet behind it
Why would a sophisticated firm treat a material change so lightly? Part of the answer is timing pressure, and part is a dynamic familiar to anyone who has watched firms prepare for regulatory or market-structure change. New venue programs arrive through a public approval process, their final form and their go-live dates can shift, and there is genuine uncertainty about whether and exactly when they will happen. Firms respond to that uncertainty by rationing effort. A firm that quietly doubts a program will launch on schedule, or in its proposed form, underinvests in readiness, and then, when approval lands and the date holds, compresses weeks of careful preparation into a few days of scramble.
Compressed timelines are precisely where disciplined change management breaks down. The rehearsal is skipped because there is no time. The deployment is done by hand because automating it is a project of its own. The second reviewer is not pulled in because everyone is busy. The rollback plan is "we will figure it out." Each shortcut is individually defensible under deadline pressure and collectively fatal. Treating a hard-dated material change as a bet that might not pay off is not a readiness strategy; it guarantees that if the change does happen, the firm meets it unprepared.
External touchpoints are material by default: the Latour lesson
The principle that a change can be technically small and operationally enormous was underlined a few years after Knight, by a case that mirrors it almost uncannily. In July 2011, a software engineer at the parent of Latour Trading, a high-frequency market maker owned by Tower Research Capital, made what was treated internally as a routine coding change to a piece of trading infrastructure shared with Latour. The engineer did not understand Latour's internal messaging protocol well enough to realise that his change would affect the directed Intermarket Sweep Orders, or ISOs, that Latour's algorithms generated, and so he did not tell Latour he had made it.3
The change removed routing information from certain of those directed ISOs. Instead of being swept to the exchanges they were meant to reach, the orders were executed or cancelled elsewhere, which quietly rendered critical parts of Latour's Reg NMS order-protection controls ineffective and caused its orders to trade through protected quotations in breach of the rules. Nobody at the firm noticed until an October 2012 inquiry from FINRA, by which point Latour had sent roughly 9.3 million non-compliant ISOs over fifteen months from this one issue, part of some 12.6 million non-compliant ISOs across the wider period. The SEC charged violations of Regulation NMS and the Market Access Rule, and Latour paid about $8 million.3
Two features of the Latour order make it the ideal companion to Knight. The first is that the SEC faulted Latour specifically under the provision of Rule 15c3-5 requiring a firm to keep its risk controls under its own "direct and exclusive control": the shared code could be, and was, changed without Latour's knowledge or approval, so its regulatory controls were not truly its own. That is the organisational failure of the next section, written in code. The second is that the change looked entirely routine to the engineer who made it, yet it touched the messaging protocol itself, the agreed language by which the firm's orders are expressed to venues. A change to how a message is built does not stay inside the building. It alters how the firm appears to the market, at machine speed, and here it did so, undetected, for over a year.
The changes that carry this risk look entirely ordinary from inside an engineering team: adjust how messages are formatted or sequenced, tweak the logic that talks to a venue, update how an order type is handled, modify a connectivity component, change a default parameter. But each of those touches an external touchpoint, the boundary where the firm's systems speak to the rest of the market. The practical rule that falls out of Knight and Latour together is therefore simple and conservative: treat any change that touches an external touchpoint as material by default. Messaging protocols, venue connectivity, order-handling and order-type logic, market-data ingestion, anything that crosses the boundary between the firm and the market, should carry the heavyweight process, the impact assessment, the conformance testing, the staged rollout, the independent review, unless there is a clear and documented reason it is safe to do otherwise. The cost of over-classifying a change as material is a few hours of process. The cost of under-classifying one, as both firms learned, runs from eight figures of loss to the existence of the firm itself.
Market-structure and regulatory change management is a discipline in its own right, distinct from ordinary software delivery. A material, externally-dated change needs an owner, an impact assessment, a conformance and test plan, a go or no-go gate, and a rollback, regardless of whether the firm welcomes the change or privately bets against it. The planning cannot be contingent on the firm's enthusiasm for the change.
The framing of RLP readiness as a half-made bet is analysis of a common industry dynamic, not a documented account of Knight's internal deliberations.
Forty-five minutes, step by step
The failure was set in the week before, announced in the pre-market, and executed at the open. Every stage had a point where a control should have intervened.
The incident, step by step
The incomplete deployment was followed by warnings, erroneous orders, and attempts to diagnose the failure.
Source: SEC orders on Knight Capital and Goldman Sachs; see sources and notes.
Nineteen points where it could have been stopped
No single mistake caused this. A catastrophe of this kind is always a chain, and the lesson is in the length of the chain: nineteen separate controls, spread across five disciplines, were absent, misdesigned, or ignored. Any one of them, working, would likely have reduced a near-fatal event to a footnote. The sections after this one take the most important of these gaps and examine why they existed and how AI changes them.
The chain: how nineteen gaps became one event
The nineteen gaps are easier to feel as what they really were: links in a single chain. Each link below is an independent failure, and the catastrophe required every one of them to be present and to hold. Cut any single link, let one of these controls do its job, and the chain breaks before the loss. That is the uncomfortable gift of a disaster like this: it was over-determined on the way down, and it would have been stopped by almost anything on the way up.
The chain of failures
The chain runs from dormant code through deployment, missing controls and delayed incident response.
Source: SEC orders on Knight Capital and Goldman Sachs; see sources and notes.
Lay the chain beside the Swiss-cheese model of accidents and the point is the same: each control is a slice with a hole, and disaster happens only when the holes line up. Thirteen slices lined up that morning, and the nineteen distinct gaps behind them meant the holes were wide. The engineering task is never to build one perfect slice. It is to make sure that on the worst day, at least one slice is solid.
Correct code, deployed wrong, is still a disaster
One of the most important and least understood lessons of Knight is that the new RLP code may well have been correct. It could have been written to specification, reviewed, and passed every test the firm had, and the catastrophe would still have happened, because the failure did not live in the logic of the new code. It lived in how that code was configured and deployed. Knight is not a story about a bug. It is a story about the gap between a correct artifact and a correct system.
It helps to separate three distinct surfaces, each of which can fail independently:
- Code correctness. Does the logic do what it is supposed to do. This is what unit and functional tests check, and it is the surface most teams invest in.
- Configuration. Are the flags, parameters, feature switches and environment settings correct. The reused Power Peg flag was a configuration failure: the code was told to do one thing and, through a stale mapping, did another.
- Deployment. Is the right version of the right artifact present and consistent on every node in the real production topology. The missed eighth server was a pure deployment failure.
Quality assurance almost always validates the first surface, sometimes the second, and very rarely the third in anything resembling the real production environment. A QA sign-off is a statement about behaviour in a test environment. It says nothing about whether the artifact reached all eight production servers, whether those servers were already carrying a decade of other code, or whether a flag meant one thing in the test harness and another in production. "It passed QA" and "it is deployed correctly" are different claims, and Knight failed on the second while quite possibly satisfying the first.
The quiet power of a configuration flag
Knight's trigger was, at bottom, a flag. A single switch, reused, meant one thing to the new code and another to the old, and that reuse is what reached back and woke Power Peg. This is worth dwelling on, because configuration flags are one of the most powerful and least respected constructs in production software, and they fail in ways that testing is structurally bad at catching.
A flag changes what a system does without changing its code. That is the whole point of it, and also the whole danger. Feature flags, environment switches, routing parameters and threshold defaults let a firm alter behaviour quickly, turn capabilities on and off, and configure the same binary differently across environments. But that flexibility means the artifact that passed testing and the system running in production can behave completely differently, purely because a flag is set differently, and nothing in the code review or the unit tests will reveal it. The behaviour lives in the configuration, and the configuration is often not tested with the same rigour as the code, if it is version-controlled and reviewed at all.
Flags are also where combinatorial complexity hides. A handful of independent flags produces dozens of possible states; a realistic system has far more, and no test suite exercises every combination. The specific combination that matters, this flag set this way, on a server still carrying that old code, under these market conditions, is exactly the kind of state that never appears in the test environment and only materialises in production. Worse, flags accumulate. Switches meant to be temporary are never removed, their original meaning is forgotten, and a flag someone reuses years later can still be wired, invisibly, to logic everyone assumed was gone. Power Peg was that story told in a single switch.
The discipline this demands is to treat configuration as code: version it, review it, test the flag states that actually ship, attest to the production flag configuration before trading, and decommission flags as deliberately as any other dead path. A firm that governs its code carefully and its flags casually has bolted the front door and left the configuration window open.
The practices that close this gap are deployment controls, not test controls: immutable, automated, and verifiable deployment so that a human cannot miss a node; configuration managed as code and reviewed like code; version attestation that confirms every server is running the identical artifact before trading begins; canary releases and automated rollback; and a hard pre-open gate that refuses to let the system trade unless the fleet is provably consistent. None of these test whether the code is correct. They test whether the system you actually have is the system you think you have.
You do not trade the code you wrote and tested. You trade the code that is running, on every machine, as configured. Those are not the same thing, and only one of them can hurt you.
Controls that watched, but could not stop
Knight was not a firm with no controls. It had monitoring. It had desk-level oversight and real-time views of its activity. What it did not have was a control that could act. This is the distinction at the heart of the case, and it is the distinction that most firms get wrong: the difference between a control that tells you something is happening and a control that stops it from happening. A detective control raises its hand. A preventative control blocks the door. Almost everything Knight had was the former.
Capital controls that were bells, not blocks
Knight is often described as having lacked capital controls. The more precise and more useful truth is that it had capital and credit thresholds, but they were not configured as hard, pre-trade, aggregate blocks sitting in the order path. They functioned as monitoring values and account-level checks, the kind of limit that surfaces on a screen or generates a message for a human to notice, rather than a firm-wide circuit breaker that rejects or halts order flow the instant exposure crosses the line. A threshold that emails a person is a detective control wearing the costume of a preventative one. When orders are leaving at a rate of thousands per second, the costume does not help.
The Market Access Rule is unusually explicit on this point. It calls for controls reasonably designed to prevent the entry of orders that exceed pre-set credit or capital thresholds, by rejecting those orders. Rejecting is a preventative act performed by a machine in the order path. Monitoring, however attentive, is not rejecting, and no amount of it would have stopped Knight, because there was no human on earth who could watch four million trades form in forty-five minutes and intervene in time.
Human-in-the-loop monitoring is a legitimate and necessary control, but it is a detective control operating at human speed. Placing it as the last line of defence against a system that acts at machine speed is a category error. At machine speed, the only control that can save you is another machine, sitting in the path, authorised to say no.
The practical discipline this suggests is almost embarrassingly simple, and almost never done rigorously: take every limit and control the firm believes it has, and classify each one as a block or a bell. Does it stop the action, or does it tell someone the action happened. Then count the blocks. Most firms, asked to do this honestly, discover that their defences against a runaway automated system are overwhelmingly bells, and that the number of true, automated, in-path blocks is far smaller than the risk committee believes.
A control calibrated never to fire is not a control
There is a subtler failure lurking behind the plain absence of controls, and it is worth stating because it is far more common than having no controls at all. Suppose Knight had built erroneous-order controls into SMARS: a cap on order size, a limit on messages per second, a ceiling on cumulative shares in a name. Those controls could still have been useless if they were calibrated so loosely that they would never realistically trigger. A maximum order size set absurdly high, a rate limit set well above any plausible runaway, a notional cap set beyond anything the desk would ever reach: each of these is a control on the org chart and a control in the code, and no control at all in practice. The firm would have passed an audit that asked "do you have a size limit?" and still died, because the honest question is not whether the limit exists but whether it is set at a level that would actually catch the event you are afraid of.
This is its own distinct problem, and a treacherous one, because a miscalibrated control is in some ways worse than a missing one. A missing control is at least visible as a gap. A control that exists but is set never to fire manufactures false confidence: the risk committee ticks the box, the regulator sees the control documented, and everyone believes the firm is protected by something that will sleep soundly through the disaster. Calibration, not existence, determines whether a control works, and calibration is exactly what gets quietly loosened over time, because the path of least resistance when an alert proves annoying is not to investigate it but to widen the threshold until it stops firing.
Controls belong where the risk is
If calibration is the first subtlety, placement is the second, and arguably the more important. A control is only meaningful in relation to the specific risks of the system it guards, which means controls cannot be generic. They have to be tailored to the software, process or application they cover, because different systems fail in different ways. A smart order router carries risks around how it slices and routes child orders, how it reacts to venue latency, and how it handles rejects and re-routes, and it needs controls shaped to exactly those failure modes. A portfolio management strategy carries entirely different risks, around position construction, concentration, and rebalancing logic. An order management system and a traditional execution management system each carry their own distinct risks again. A control that is correct and vital for one of these can be irrelevant, or actively misleading, when bolted onto another.
Knight's failure was, in part, a placement failure. To the extent it thought about controls at all, it did so at the level of individual systems and specific past errors, rather than asking whether the right controls, designed for the right risks, sat at the right points across the entire order path, no matter which system might be the one to misbehave. The discipline that prevents this is to map the risks of each component first, place controls designed for those risks at that component, and then confirm that the path taken as a whole has no gap through which a runaway can slip.
This becomes dramatically harder, and dramatically more important, in the age of AI, because an AI system does not confine itself to a neat, enumerable set of components with well-understood interfaces. It reaches across whatever it is connected to, and it can use those connections in ways no designer anticipated. A widely-discussed example from the AI ecosystem is the discovery that components never intended for communication could be repurposed as one: an artifact registry built to store models and packages was, as reported, turned into an improvised message board, a coordination channel that no one designing the registry imagined a system would ever treat it as. Whatever the precise details, the lesson for control placement is stark. When a system can creatively repurpose any component it can reach, you cannot secure it by guarding only the handful of pathways you expected it to use. You have to reason about the full surface of what it can touch, and place controls accordingly, because a sufficiently capable system will find the pathway you did not think to cover.
Where was compliance?
The nineteen failures did not happen because no one at Knight was clever enough to see them. They happened because of how the firm was organised, and specifically because the people responsible for supervision and compliance had little reach into the technology that carried the firm's largest operational risk. The deployment of SMARS, the configuration of its flags, the decision to leave Power Peg in the code base, the design of the capital checks: these were engineering matters, handled inside a technology function, largely out of the sightline of compliance and supervision.
This is not a Knight peculiarity. It is the default shape of many trading firms, then and now. Trading and technology engineering form one world, with its own language, deadlines and incentives. Compliance and supervision form another, often without the technical fluency to read a deployment process or the organisational standing to gate a code change. The result is that the single largest source of operational risk in an automated firm, the behaviour of its trading systems, sits in the one area that the firm's control functions are least equipped to supervise. The three lines of defence stop at the edge of the engineering stack.
The Market Access Rule was written partly to force these two worlds together. It requires the broker-dealer to maintain direct and exclusive control over its risk-management controls and to make them part of the firm's supervisory system. That is a deliberate statement that market-access controls cannot be a purely technical artifact owned by engineering and invisible to supervision. They must be owned, understood, reviewed and, when necessary, overridden by the firm's control functions. At Knight, the SEC found the supervisory system around the technology inadequate, which is the regulatory way of saying that supervision and the stack had come apart.
The lesson generalises directly to every firm now deploying models and automated agents. Controls over automated decision-making are a shared responsibility that only works when compliance and risk can read the control architecture, must sign off on material changes to it, and have the standing and the mechanism to halt it. A control function that cannot reach into the stack is not a second line of defence against automation risk. It is a spectator to it.
The same gap, now in AI product development
If this sounds like a solved problem of the past, it is not. It is being rebuilt, right now, in the way firms stand up artificial intelligence. In most organisations, model development, data science and machine-learning operations sit in their own function, with their own tooling and cadence, and compliance and risk are brought in late, if at all, to review a finished thing they had no hand in shaping. The people deciding what data trains a model, how an agent is permitted to act, what its guardrails are and when it ships are engineers and data scientists, and the control functions are once again on the outside of the room where the risk is created.
That is precisely the Knight organisational failure, recast for a new technology. The firm's largest emerging source of conduct and operational risk, the behaviour of its AI systems, is being built in a function the second line cannot read and does not govern, repeating the exact structural blind spot that left SMARS unsupervised. The fix is the same as it was then, and it has to be designed in deliberately: compliance and risk embedded in AI product development from the start, able to read the model and agent architecture, required to sign off on material changes to data, capabilities and guardrails, and holding the authority to halt. A control function that only sees the AI system after it is built is not supervising it. It is, once again, a spectator.
Zombie code, and why AI makes it worse
Power Peg was zombie code: functionality that Knight stopped using around 2003, never removed, and left to decay in the live code base for roughly nine years until a reused flag brought it back to life. It is tempting to read this as carelessness. It is more honest to read it as the normal, predictable end state of technical debt in a long-lived trading system, and as a warning that gets sharper, not softer, in the age of AI.
Dead code persists for reasons that are entirely rational at the level of each decision. Removing old functionality is risky: no one is quite sure what still depends on it, the engineers who wrote it have left, there are no tests covering it, and there is no owner who benefits from its deletion. Meanwhile the reward structure favours shipping new features, not quietly removing old ones. So the debt is never paid down. It accumulates, layer on layer, until the code base contains paths that no living person fully understands and that no one dares touch. Power Peg was one such path, sitting loaded in the system for nearly a decade, waiting for a flag.
The scale of the problem is larger than Knight
The most sophisticated trading and quantitative firms run on code environments that are twenty years old or more. Two decades of a live trading platform means hundreds of thousands of changes layered over an original architecture that no current employee designed. Every one of those changes interacted with assumptions that are now undocumented, made by people who have moved on. The platform works, in the sense that it processes orders every day, but "works" and "is understood" diverged long ago. Inside such an environment, a Power Peg is not an aberration. It is a near certainty. The only questions are how many there are and what flag will wake them.
How AI amplifies the risk
Artificial intelligence does not solve this problem. It accelerates it, in several reinforcing ways.
- It multiplies the rate of debt creation. AI code generation makes producing code dramatically cheaper and faster. The volume of code a firm ships rises, and with it the rate at which untested, unowned, imperfectly understood paths accumulate. Generation is cheap; comprehension and safe deletion are not. That asymmetry is the engine of technical debt, and AI leans on the accelerator.
- It patches what it does not understand. When AI is used to maintain a twenty-year-old platform, it is modifying code it cannot truly comprehend, built on assumptions that are nowhere written down. A model confidently editing a legacy system can entangle or reactivate exactly the kind of dormant path that Power Peg was, and do it across far more of the code base than any human would touch.
- It adds a semantic form of zombie behaviour. In a model, the dead code has no file to delete. Latent learned behaviours and retained capabilities sit inside the weights, invisible, surfacing only under inputs no one anticipated. You cannot grep for them. The Power Peg failure mode, a capability you thought was retired reactivating under the right trigger, becomes a property of the model itself.
- It removes the last human reader. As the engineers who understood a legacy system retire and the documentation goes stale, AI increasingly becomes the only thing that reads the old code at all, and it reads probabilistically, not reliably. A firm can end up with a code base that neither any human nor any dependable process fully understands, governed by a tool that approximates comprehension. That is Knight's root condition, generalised and deepened.
Knight's loss came from one piece of dead code and one reused flag. The modern version is a system no one fully understands, maintained by a tool that does not understand it either, generating more of it every day.
Unit tests pass; the system still fails
Knight's components could each have been correct in isolation and the firm would still have collapsed, because the failure was emergent. It arose from the interaction of a reused flag, a piece of dead code, an incomplete deployment, and live market conditions at the open. No unit test, which checks a single function against expected inputs and outputs, can catch a failure that only exists in the space between components. That is the job of integration and system testing, and it is the kind of testing that is hardest to do and easiest to skip.
The reason firms skip it is not laziness but difficulty. A faithful integration test of a trading stack has to reproduce the real production topology: multiple servers, live exchange connectivity, real-time market data, the downstream risk and position systems, and the behaviour of all of it under load and at the chaotic moment of the open. Building and maintaining an environment that genuinely mirrors production, rather than a simplified staging system that passes tests production would fail, is an enormous and unglamorous investment. Many firms do not have one. They have a staging environment that resembles production the way a map resembles a city.
What the regulation already expects
This is not a gap regulators have ignored. In the European Union, MiFID II's Regulatory Technical Standard 6 (RTS 6), the organisational requirements for firms engaged in algorithmic trading, effectively codifies the Knight lessons into law. Among its requirements:
- Testing before deployment. Firms must test algorithms and changes in a non-live environment that is separate from production, and demonstrate the algorithm behaves as intended, before any live use.
- Conformance testing. Firms must conformance-test their systems against the trading venue's own systems, confirming that order entry, amendment, cancellation and connectivity behave correctly against the real venue specification.
- Controlled deployment and change management. A documented, controlled process for deploying and materially changing algorithms, with sign-off and clear responsibility, not a hand-copy to eight servers.
- Kill functionality and real-time monitoring. The ability to cancel unexecuted orders and halt trading immediately, plus real-time monitoring for disorderly trading, as standing requirements.
- Annual self-assessment and validation. A yearly, documented self-assessment of the firm's algorithmic trading systems and controls, validated and reviewed, which is the post-mortem and assurance loop made mandatory.
RTS 6 is, in effect, Knight written into European law. But the existence of the requirement does not conjure the environment. Even under RTS 6, conformance testing validates the firm's connectivity against the venue's specification; it does not necessarily test the firm's own internal cross-system interactions under load, which is where Knight actually failed. A firm can pass conformance testing and still lack the full-stack integration environment that would have surfaced the Power Peg interaction. The regulatory expectation is clear and correct. Meeting it fully, with an environment that mirrors the entire stack including its failure modes and its deployment process, remains one of the hardest and most under-resourced problems in the industry.
The question is never whether each component passed in isolation. It is whether you tested the system as deployed, under real conditions, including the way you deploy it. Knight tested the parts and shipped the whole.
Designing a kill switch, and finding the will to use it
It is tempting to say Knight had no kill switch, and it is probably unfair. A firm of its scale almost certainly had ways to pull a system offline. The deeper and more useful truth is that a kill switch is not one thing you either have or lack. It is a design problem at one end and a human decision at the other, and Knight failed at both. The current debate about AI safety fixates on whether a stop button exists. Knight shows the button is the easy part. What is hard is building it with the right granularity, and being willing to press it when it counts.
Granularity: the scalpel and the guillotine
A serious kill capability is a hierarchy, not a single lever. At one end sits the scalpel: the ability to halt a single process, strategy, symbol, session or component, surgically, so that one misbehaving part can be stopped without taking the entire firm dark. At the other end sits the guillotine: the ability to terminate the whole system at once, for the moment when you cannot tell which part is wrong and the only safe action is to stop everything. A firm needs both, and needs to have decided in advance which situations call for which. Part of Knight's tragedy is that there was no clean way to isolate the one runaway behaviour. The practical choices were to let it run or to take a drastic, poorly-understood action, and the drastic action, uninstalling code from the healthy servers, spread the fault rather than containing it. A scalpel would have let them excise the bad server. Instead they swung at the whole machine and missed.
This granularity becomes far more important, not less, as trading moves toward continuous operation and as the systems become autonomous. Markets are increasingly a 23/5 activity, and AI agents can run overnight and unattended, taking actions while no human is watching the screen. A stop capability that quietly assumes a person is at a desk to invoke it is no capability at all at three in the morning. Autonomous systems need automated, granular kill logic that can halt one agent or one behaviour without halting the book, backed by a reliable full-system stop, precisely because the human who would otherwise make the judgement call may be asleep when the agent goes wrong.
The hardest part is deciding to pull it
Even a well-designed switch is worthless if no one will use it, and for a firm like Knight the decision to halt was genuinely hard, not merely slow. A major market maker is not a passive participant. It quotes continuously, it is a meaningful share of the liquidity in the names it makes, and stopping abruptly has real consequences for the market and for clients. There are also regulatory obligations that can pull against the instinct to simply stop, including duties connected to best execution and, for registered market makers, obligations to maintain quotes. In the first confused minutes of an incident, the person with a hand over the switch is weighing a problem that might still be containable against the certain costs of going dark, while not yet understanding what is wrong. That is why hesitation is the default, and why forty-five minutes can pass. The lesson is not "install a button." It is that the decision to invoke must be pre-made: objective, pre-defined triggers and clear, named authority, so that when the triggers are met the system stops without anyone having to summon the nerve in the moment.
And the decision to turn it back on
Halting is only half the problem, and the resumption half is where Knight actually compounded the damage. Once a live system is stopped, everything is in an uncertain state: partial fills, orphaned orders resting on venues, positions that no longer match the books, risk numbers that may be fiction. Resuming is not flipping the switch back. It requires understanding the root cause, reconciling every position and open order, verifying the fix, confirming the integrity of data and state across systems, and only then a controlled, staged restart. A premature resume re-triggers the very failure that caused the halt, which is essentially what Knight did in its scramble to recover, when its staff uninstalled the new code from the healthy servers and spread the fault instead of containing it. Procedures for lifting a halt matter as much as procedures for calling one, and they are far more often neglected.
An autonomous agent stopped mid-task leaves work half-finished and state ambiguous in ways that are harder to reconcile than a stopped order router. And overnight autonomy means both the halt and the resume may have to happen with no human in the loop, which raises the bar on the mechanism and the runbook enormously. Regulators and venues mandate kill functionality; they say very little about resumption discipline. The firm has to own that, and for AI systems it is largely unsolved.
This exact lesson arrived again a year later, and the SEC documented it. In Goldman's 2013 options event the firm's circuit breakers tripped as the erroneous flow hit, but its personnel repeatedly lifted those blocks without the required authorisation and before the cause had been investigated, the resumption failure in its purest form.2 And the problem is not confined to headline catastrophes. Its everyday form lives inside the Market Access Rule itself. Orders hit a soft, pre-set limit, and instead of being hard-blocked and properly evaluated, a trader waves them through, raising or overriding the limit to keep trading without a genuine assessment of why it tripped. Every one of those overrides is a kill-switch decision made badly: a stop ignored because stopping is inconvenient. The discipline Knight lacked at firm scale is the same discipline a desk lacks every time it clears a soft limit by reflex.
A kill switch is not a button. It is a decision, made in advance, about when to stop, how much to stop, and how to start again, enforced so that no one has to be brave at the worst possible moment.
Why this was a Market Access Rule case
The SEC did not charge Knight with manipulation or fraud. It charged Knight under Rule 15c3-5, the Market Access Rule, which since 2011 has required broker-dealers with market access to maintain risk controls reasonably designed to manage the financial and regulatory risks of that access. The rule is, in effect, a legal requirement to have the controls Knight lacked.1
The Market Access Rule findings
The SEC order identifies failures in market-access controls and supervisory procedures.
Source: SEC orders on Knight Capital and Goldman Sachs; see sources and notes.
The Market Access Rule treats the absence of a control as the violation. Knight was not punished for the loss. It was punished for building a system that could produce the loss, and having no way to stop it.
Goldman Sachs and the 2013 options knightmare
The most uncomfortable epilogue to Knight is that almost exactly one year later, a far larger and more sophisticated firm did much the same thing, and the SEC charged it under the very same rule. On 20 August 2013, a configuration error in Goldman Sachs's options order router sent thousands of erroneous orders into the US options market before the open. The SEC's 2015 order, settling the matter for a $7 million penalty, found that Goldman had violated the Market Access Rule, the identical rule Knight had broken, and it reads like a second draft of the Knight story told in options.2
Knight and Goldman compared
Knight lost approximately $460 million in 2012; Goldman lost about $38 million after trade busts in 2013.
Source: SEC orders on Knight Capital and Goldman Sachs; see sources and notes.
What Goldman's system actually did
The detail is worth drawing out, because it rhymes with Knight so precisely, and because the SEC order sets it all down. Goldman ran an automated options system that generated and routed orders across the US options exchanges. In connection with a software change, a configuration error caused the system to send a flood of its internal placeholder orders, orders carrying a default price of $1.00 that were never meant to be executable, to the exchanges as live, marketable orders before the open on 20 August 2013.2
Because the orders carried a nonsensical $1.00 price, they were wildly inconsistent with the real value of the options, yet they poured into the market and executed. By the time Goldman stopped the system and the exchanges began reviewing trades, roughly 1.5 million options contracts had been executed. The exchanges busted a large share of them under their obvious-error rules, which is why the realised loss came in near $38 million rather than the hundreds of millions first feared. In 2015 the SEC settled charges that Goldman had violated the Market Access Rule, imposing a $7 million penalty.2
Three controls failed, and you have already met all three
What makes the Goldman order so valuable is that the specific controls the SEC found wanting are the exact failure modes this study has already named. Read against the earlier sections, Goldman is less a new story than a confirmation that these are the failures that genuinely recur.
First, the price control was present, and miscalibrated. Goldman's pre-market system did check order prices, but the collar accepted anything above one cent and below roughly $3,090. A $1.00 order sailed straight through, because for these options a limit that wide was no limit at all. This is precisely the trap from the section on controls that watch but cannot stop: a control that exists, passes the audit, and is calibrated so loosely it never fires on the event you actually fear.2
Second, the circuit breakers were overridden by hand. Goldman had electronic circuit breakers that tripped as the erroneous flow hit, but the SEC found that personnel repeatedly lifted those blocks without the required authorisation and before the cause of the trips had been investigated, letting still more orders through. That is the kill-switch problem in its everyday and most dangerous form: a stop that fires correctly, and a human who clears it by reflex, under pressure, without first understanding why it tripped. It is the same failure as a trader waving an order through a soft limit, and it is exactly the resumption discipline the kill-switch section argued firms almost never build.2
Third, the capital control was a bell, not a block, and a slow one. Goldman's check against its capital thresholds ran only every thirty minutes, did not automatically reject further orders once a threshold was breached, and omitted parts of the order flow. A control that reconciles twice an hour and cannot say no is monitoring dressed as prevention, which is the precise distinction the whole of this study turns on.2
The parallels with Knight run deep
The first and most important parallel is that, exactly as at Knight, the loss had nothing to do with a trading view. No strategy was wrong, no market call went bad. A change to an automated market-access system was mishandled at the configuration and deployment layer, and the system then did precisely what its flawed configuration told it to, at machine speed, in the first minutes of the day. The cause lived in the gap between a correct intention and a correct running system, the very gap that swallowed Knight.
The second parallel is more specific and more striking. In both cases, an internal, non-live construct escaped into live trading. At Knight it was Power Peg, dormant functionality woken by a reused flag. At Goldman it was a set of placeholder orders that were never meant to leave the building. The boundary between "internal or test" and "live or production", the boundary a firm most needs to hold, failed in both firms, and in both it failed quietly, through a change that looked routine to whoever made it.
The third parallel is speed and the absence of a human brake. Both events were effectively over before anyone could understand them. No trader, no risk officer, no supervisor could read what was happening, diagnose it, and intervene inside the few minutes the systems needed to do their damage. In both firms the only thing fast enough to stop the machine was another machine, and in both firms that machine was either not there or not configured to act.
Where the two stories diverge is entirely in the aftermath, not the cause. Goldman survived with a bruise for two reasons, and neither of them is that it prevented the error better. First, US options markets have well-developed "obvious error" rules that let the exchanges review and cancel clearly erroneous trades, and most of Goldman's errant trades were busted, so its realised loss was a fraction of the initial fear and trivial relative to its capital.2 Second, Goldman had the capital and the standing to absorb whatever remained without any threat to its existence. Knight's equities trades, by contrast, largely stood, and Knight did not have the capital to carry them. The difference between a bruise and a death was containment and balance sheet, not prevention.
Why this should unsettle every firm, not reassure them
Here is the fact that ought to end any firm's complacency. These were not two obscure or careless shops. Knight Capital was the largest retail market maker in US equities, a firm whose entire business was high-speed automated trading. Goldman Sachs is one of the largest, oldest, most sophisticated, best-capitalised and most reputable financial institutions in the world, with engineering and risk-management resources almost no one can match. One year apart, both were brought to their knees, or to the brink, by the same class of failure. If it can happen to those two, the comforting thought that your firm is too sophisticated, too well-resourced, too experienced, or too careful for this is not a safeguard. It is the exact belief that precedes the event.
Size, longevity and reputation are not controls. They do not sit in the order path and reject an erroneous order; they do not verify that a deployment reached every server; they do not test whether a system is relying on stale or placeholder data. If anything they are a liability, because they breed the confidence that lets discipline slip. The only things that actually protect a firm are the controls, the calibration, the placement, the kill switch, and the containment capacity that this case study has been describing, and all of those have to be built and maintained deliberately, by firms of every size.
The regulators read it the same way. Both events were understood through the lens of market-access controls, because the lesson is structural rather than personal. The combination of automation, legacy complexity, and change produces this standing risk at every firm that touches the market through software, which is now every firm. The only variables that differ from one firm to the next are how well they prevent the error and, when prevention inevitably fails, how well they contain it. Knight and Goldman are the two ends of that second variable: identical disease, opposite outcomes, and a warning that belongs to everyone. No one is immune.
The Goldman details here are the SEC's own findings, from its settled order of 30 June 2015: the $1.00 default orders, the roughly 1.5 million contracts executed, the near-$38 million loss, the over-wide pre-market price collar, the circuit breakers lifted without authorisation, the thirty-minute capital check, and the $7 million penalty. Goldman consented without admitting or denying them.
The calendar is a risk factor: the August problem
There is a detail in the two dates that is easy to pass over and worth stopping on. Knight's disaster was 1 August. Goldman's was 20 August. Both of the defining automated-trading failures of the decade happened in the same month, and the month is not incidental.
August is the deepest trough of the vacation calendar across US and European finance. Desks run thin. The people most likely to be away are the senior ones: the heads of desk, the experienced risk officers, the engineers who know where the bodies are buried in a twenty-year-old code base, and the executives with the standing to make a firm-level call. What is left on many desks in August is a lighter, more junior, more stretched version of the team that would be present in October, covering more than usual and knowing less about the systems they are covering.
That thinning strikes at precisely the three capabilities Knight and Goldman most needed and most lacked. Monitoring suffers first: fewer eyes, less experienced eyes, and a higher chance that an unusual signal is missed or misread. Escalation suffers next: the protocol says to call a named person, but that person is unreachable, the backup is unsure whether this is really their call, and minutes bleed away in the one situation where minutes are everything. And the hardest decision of all, invoking a kill switch, suffers most. A junior trader covering a market-making book in August is the least likely person in the building to halt the firm's quoting, and the most likely to clear an alert or lift a circuit breaker to avoid being the one who "caused a problem" on someone else's desk. Goldman's own event bears this out: the SEC found its circuit breakers were lifted without the required authorisation and before the cause was investigated, which is exactly the failure mode that thin, pressured coverage produces.2
There is a deployment dimension too, and it runs against intuition. Firms often schedule system changes for quiet periods, reasoning that low volume means low risk. The logic is backwards. A quiet period is also a thin-coverage period, and a change made in August is a change made when the firm is least able to catch it going wrong and least able to contain it if it does. When a hard external deadline forces the change anyway, as the NYSE Retail Liquidity Program forced Knight's on 1 August, the firm is made to execute its most material change of the season at the exact moment its ability to respond to failure is at its lowest.
The lesson is that staffing and coverage are not background conditions; they are controls, and they have to be managed like controls. Escalation protocols must name backups who hold real, rehearsed authority, not placeholders. Kill-switch authority must be delegated down and practised, so that the person actually at the desk at seven in the morning on a quiet August day can and will pull it. Heightened-readiness regimes, or outright change freezes, belong on the calendar for thin-coverage periods, and any material change that must go in during one should carry extra oversight, not less.
For AI, this seasonal problem becomes a permanent one. An autonomous system that trades overnight, or a market that runs close to around the clock, has no October in which the desk is fully staffed and watching. The thin coverage of an August morning is simply the normal operating condition of a system that acts while everyone is asleep. The answer is the same in both cases, which is why it matters: the authority to stop must be pre-delegated and rehearsed, and containment must be automated, because you cannot assume a capable, senior human will be watching at the moment it counts. In August, or at three in the morning, they will not be.
Which of these failures get worse with AI
Knight is often filed away as a cautionary tale about legacy code and sloppy deployment, as if better DevOps would have fixed it. That reading is comfortable and wrong. Every failure mode in the Knight chain has a direct descendant in AI-driven systems, and most of them are harder to control when the system at the centre is a model rather than deterministic code. The table below pairs each Knight-era failure with how the same risk persists, and usually intensifies, under AI.
Knight and AI: a cross-comparison
The comparison maps Knight’s failures to risks in AI systems.
Source: SEC orders on Knight Capital and Goldman Sachs; see sources and notes.
Knight's system did exactly what it was configured to do. An AI system does exactly what it was trained and rewarded to do. In both cases the danger is the same: the machine has no concept of "too much", and only the firm can give it one.
The deepest continuity is the one that has nothing to do with technology. Knight's defining failure was not the dead code or the missed server. It was that a system was allowed to run, at scale and at speed, without a real-time understanding of what it was doing and without anyone positioned to stop it the moment it went wrong. That is precisely the governance gap that AI widens, because AI systems are faster, more opaque, more autonomous, and more trusted than the deterministic router that nearly ended Knight. The controls that would have saved Knight are the same controls an AI deployment needs. They are simply harder to build, and far more important.
The engineering lessons, carried into AI
Knight is, in the end, a software-engineering story with regulatory consequences, and its engineering lessons translate almost one for one into the discipline that artificial intelligence now demands, usually with the difficulty turned up. Gathered in one place, these are the takeaways a firm deploying AI should carry forward from a deterministic disaster into a probabilistic world.
Reproducibility is a control, not a nicety
Deterministic code can at least be reproduced and reasoned about after the fact. In principle, Knight's engineers could read what SMARS would do with a given input. Model behaviour depends on weights, data, context and sometimes randomness, so the same input may not produce the same output twice. If you cannot reproduce what your system did, you cannot root-cause it, you cannot prove you fixed it, and you cannot show a regulator either. Pin versions, log inputs and outputs, capture seeds and context, and treat reproducibility as a first-class requirement rather than a debugging convenience.
Observability has to lead autonomy, not trail it
Knight ran blind. There was no real-time, actionable view of what the system was doing. Granting a system more autonomy without first giving yourself the ability to see what it is doing, in real time and in terms a human can act on, is how you build a faster Knight. For AI the order of operations is non-negotiable: instrumentation, explainability and behavioural monitoring come before you widen the agent's latitude, not after the first incident.
Config-as-code now includes prompts, models and thresholds
The flag that woke Power Peg was ungoverned configuration. In AI systems the configuration surface explodes: prompts, system instructions, tool permissions, model versions, sampling settings, evaluation thresholds, retrieval sources. Each of those changes behaviour without changing application code, and each deserves version control, review and testing exactly as code does. The behaviour that hurts you increasingly lives in the configuration, which is precisely where governance is weakest.
Gate changes with evaluations, and canary everything
Knight shipped to production in one manual push to eight servers. The modern equivalent of "it compiled" is "the eval passed," and the modern equivalent of a staged rollout is a canary release measured against a held-back baseline. Models and prompts should ship behind an evaluation gate and roll out gradually with automated rollback, because a change that looks fine on average can be catastrophic on the tail, and the tail is where the Knight-class events live.
Decommission deliberately, in code and in weights
Power Peg was debt no one retired. The AI version is abandoned models, stale prompts, unused tools and latent capabilities that linger because deletion feels risky and generation is cheap. Build decommissioning into the lifecycle, and accept that retiring a behaviour in a model may mean retraining or constraining it rather than deleting a file. What you do not remove, you still own, and it can still be reactivated by the wrong input.
Least privilege, and bounded blast radius, for every agent
SMARS could send unlimited orders because nothing bounded what it was permitted to do. An AI agent should be granted the narrowest permissions and the smallest action space that lets it do its job, so that when it misbehaves, and it will, the damage is bounded by design rather than by hope. Scope the tools, cap the actions, segment the access, and assume every agent will eventually try to do the most expensive thing its permissions allow.
A human in the loop is a control only if the human can act
Knight's 97 unread emails and the everyday soft-limit override are the same failure: a human nominally in the loop who cannot, or will not, meaningfully intervene. Automation bias deepens it, because people defer to confident machine output. A human control works only when the person has the information, the time, the authority and a genuine, unpunished option to say no. A reviewer who is expected to approve, and penalised for the friction of refusing, is not a control. They are a rubber stamp with a pulse.
Guard the boundary between non-live and live
Power Peg and Goldman's placeholder orders tell the same story: an internal or test construct crossed into live trading. The line between sandbox and production, test data and real data, indicative and executable, is one of the most important safety boundaries a firm has, and it is routinely treated as an implementation detail. AI blurs it further, because a model is trained and evaluated in one context and deployed in another, and an agent that behaves in a sandbox may behave differently against real tools and real data. Make the boundary explicit, enforce it in the system, and verify on every change that nothing internal can act as though it were live.
Calibration is a control; review it like one
A threshold set never to fire is not protection, it is theatre, and thresholds drift loose over time because loosening them is the easy way to silence a nuisance alert. Treat every limit's calibration as a control in its own right: set it against the event you actually fear, record why it sits where it does, and challenge every loosening. For AI the analogues are everywhere, in guardrail sensitivity, evaluation thresholds and confidence cutoffs, and they drift exactly the same way.
Place controls by risk, not by convenience
Controls have to be designed for the specific risks of the component they guard, and an order router, an OMS, an execution system and a strategy engine do not share a risk profile. With AI the problem explodes, because a model can reach and repurpose components no one scoped as part of its surface. Map the risks per component, place tailored controls there, and reason about the full surface of what the system can touch, not just the paths you expected it to use.
Design alerts for the responder, not the logger
An alert exists to produce an action, not to create a record. If it does not tell the responder what went wrong, where, how to investigate it and ideally what to do next, it is noise, and a flood of noise trains people to ignore the one signal that matters. Rank alerts by severity, suppress the chatter, and never ship a reject message a human cannot act on. AI systems can emit telemetry without limit, which turns signal-to-noise discipline from a nicety into a survival skill.
Containment is a capability you build, not luck you hope for
Goldman survived on bust rules and balance sheet; Knight died for lack of both. Prevention will sometimes fail, so design explicitly for the failure: bounded position and loss limits, reversibility where possible, circuit breakers, capital buffers, and a blast radius you have sized on purpose. For autonomous AI, containment means constraining what a single agent can do irreversibly before a human confirms it.
Assume creative misuse of every connection
A capable automated system will use whatever it can reach, in ways its designers did not foresee, as the repurposing of ordinary infrastructure into improvised channels has shown. Threat-model the full surface rather than the intended happy path, apply least privilege to every connection, and monitor for a component being used for something it was never built to do.
No firm is too good for this; test as though it will happen
The clearest lesson of Knight beside Goldman is that competence, scale and reputation confer no immunity. The only honest posture is to assume the failure will reach you and to rehearse it: red-team your own stack, run the runaway, and measure whether you would detect, contain and recover. A firm that has never tried to break its own system does not know whether it can survive the day something else does.
The thread through all of these is the lesson Knight has been teaching for more than a decade. Automated systems do exactly what they are built and configured to do, at a speed and scale no human can match, and the only real protection is engineering and governance discipline applied before the system runs, not after. Artificial intelligence does not retire that lesson. It raises the stakes on every clause of it.
What a well-run automated desk proves today
The Market Access Rule turned Knight's missing controls into legal requirements, and the standard applies with equal force to AI-driven systems. The test is not whether you have a policy. It is whether you can demonstrate these, live.
How we would test a system against the Knight chain
- Classify every limit as a block or a bell, then count the blocks. Confirm that financial exposure, order size, price and message-rate controls reject in the path, automatically, rather than emailing a human after the fact.
- Prove the kill switch at both ends. Objective triggers and named authority for the halt, and a rehearsed recovery and restart runbook for the resume, including position reconciliation and state verification before trading resumes.
- Gate deployment, not just code. Automated, verified deployment, a pre-open version-consistency check across the fleet, configuration managed as code, and a tested rollback, so a correct artifact cannot become an incorrect system.
- Hunt the zombie code. Inventory and decommission dormant paths, reused flags, and retired functionality still resident in production, and extend the same discipline to latent model behaviours and shadow models.
- Test the system, not the parts. An integration and conformance environment that mirrors production topology under load, aligned to RTS 6-style expectations, and a yearly validated self-assessment that actually changes the architecture.
- Put supervision inside the stack. Confirm that compliance and risk can read the control architecture, must sign off on material changes, and hold the authority to halt, so the second line reaches the firm's largest operational risk.
- Replay the incident response. Measure detection, diagnosis and halt time, and confirm the response contains rather than spreads. Knight's 45 minutes is the benchmark to beat.
Turn these failures into continuous, automated assurance
Knight and Goldman show the failure is structural and the controls are known. RegLabs turns that knowledge into continuous, automated coverage across every domain this case touches, so the review that should have happened happens all the time, not after the loss.
References
- In the Matter of Knight Capital Americas LLC, SEC Administrative Proceeding, Securities Exchange Act Release No. 70694 (16 October 2013). Facts, figures, the ~$460 million loss, the SMARS and Power Peg account, the 97 pre-market emails, and the $12 million penalty are as set out in the SEC order; Knight consented without admitting or denying the findings. SEC order (34-70694) .
- In the Matter of Goldman, Sachs & Co., SEC Administrative Proceeding, Securities Exchange Act Release No. 75331 (30 June 2015). A configuration error in Goldman's options order router sent thousands of erroneous $1.00 orders to the options exchanges before the open on 20 August 2013; roughly 1.5 million contracts executed, with a loss of about $38 million after exchange trade busts. The SEC found violations of the Market Access Rule (Rule 15c3-5), citing an over-wide pre-market price collar, circuit breakers lifted without authorisation, and capital-threshold checks that ran only every thirty minutes and did not auto-reject; Goldman settled for a $7 million penalty without admitting or denying the findings. RegLabs case record .
- In the Matter of Latour Trading LLC, SEC Administrative Proceeding, Securities Exchange Act Release No. 76029 (30 September 2015). A July 2011 coding change made by Latour's parent to shared infrastructure, without Latour's knowledge, removed routing information from directed Intermarket Sweep Orders and rendered critical Reg NMS order-protection controls ineffective; Latour sent roughly 12.6 million non-compliant ISOs between 2010 and 2014 and settled for about $8 million for violations of Rule 15c3-5 and Regulation NMS. RegLabs case record .
- MiFID II Commission Delegated Regulation (EU) 2017/589 (RTS 6) sets organisational requirements for investment firms engaged in algorithmic trading, including testing and conformance, controlled deployment, kill functionality, real-time monitoring and annual self-assessment.
- The October 2011 test-data loss and the SEC's related findings are documented in the Knight order at paragraph 33. The characterisation of RLP readiness as a half-made bet is analysis of a common industry dynamic, clearly flagged in-text, rather than a documented finding. The Knight SEC order is linked to its official primary source above and is recorded in RegLabs. Related later FINRA matters against the successor entities KCG Americas and Virtu Americas are also recorded. The firm later became KCG Americas LLC and subsequently Virtu Americas LLC. The AI-ecosystem example of an artifact registry being repurposed as an improvised message channel is given as reported and used illustratively; the control-placement lesson does not depend on its specifics. Analysis by RegLabs; commentary on public enforcement actions, not legal advice.
- RegLabs case record
