Rillor

Full research reportMethods note

From rule text to a checkable model

A worked example on SEC Rule 201: fields extracted by an LLM and tied to exact phrases, reviewed by a person, then checked against a stated property.

Published by
Rillor (Rillor Corporation)
Published
Pillar
AI
Web version
rillor.com/insights/from-rule-text-to-checkable-model

Summary

  • Rule 201(b) of SEC Regulation SHO reduces to eight operative fields: trigger, baseline, restriction, duration, a condition on the national best bid, the listing market's determination and two exceptions. Each maps to a phrase in the current eCFR text, read as of 7 October 2026 [1].
  • Several fields depend on definitions outside paragraph (b). Paragraph (a) defines them by pointing into § 242.600, the Regulation NMS definitions [1, 2].
  • The text has moved since adoption in 2010 [5]. Amendments published in 2018, 2021 and 2024 renumbered every cross-reference into § 242.600, and the 2021 Market Data Infrastructure amendments also changed the wording of (a)(3), (b)(1)(ii) and (b)(3) [4, 7, 8, 9].
  • The SEC staff's Rule 201 FAQ, whose latest dated entry is marked 4 June 2019, answers questions the text leaves open in ways that change a model. It quotes the pre-2021 wording and older paragraph numbers [6]. The model keeps it as a separate evidence class with its own date.
  • The property the rule should guarantee fits in one short block in which every term names its source. Three counterexamples, constructed against deliberately flawed models, each trace to one field and one span of text.
  • Two questions stay with the reviewer: how a 10% threshold that falls between price increments is compared, and how the current definition of "national best bid" in § 242.600(b)(60) fits the condition in (b)(1)(ii). The model records each as an open interpretation.

Background

The problem

Rules that govern order handling are written in prose and enforced in software. The translation between the two is a set of readings: what counts as "the price", when a day ends, what happens when the same event occurs twice. Those readings are often recorded informally, if at all, and they drift as rules are amended and staff guidance accumulates.

Three lines of published work bear on the problem. The OECD's Observatory of Public Sector Innovation describes Rules as Code as a proposal "to create a machine-consumable version of some types of government rules" that exists alongside the natural-language text [14]. Catala, a language for statutory law, aims at "a straightforward and systematic translation of statutory law into an executable implementation", and its authors report finding a bug in an official implementation of French family benefits [10]. In industry, engineers at Amazon Web Services reported using the TLA+ specification language on large, complex real-world systems; in one case the model checker found a bug that could lose data, whose shortest error trace "contained 35 high-level steps", and which "had passed unnoticed through extensive design reviews, code reviews, and testing" [11]. Property-based testing adds the idea that a property is stated once and then checked against many generated inputs: QuickCheck describes properties written as functions that "can be automatically tested on random input", with custom test data generators where needed [12].

A fourth line explains why the method keeps a person in the loop. A 2024 study of commercial AI legal research tools found that they "hallucinate between 17% and 33% of the time" [13]. An LLM is useful for proposing structure from text. It is not a reliable final reader of that text.

The rule

The Commission adopted Rule 201 on 26 February 2010 [6]. The adopting release set an effective date of 10 May 2010 [5], and the compliance date was later set at 28 February 2011 [6]. The Commission said the rule, when triggered, "will prevent short selling, including potentially manipulative or abusive short selling, from driving down further the price of a security that has already experienced a significant intra-day price decline, and will facilitate the ability of long sellers to sell first upon such a decline" [5].

The adopting release also explains choices that matter to a model. The proposal measured the decline from the last price reported in the consolidated system on the prior day; the adopted rule measures it from the closing price determined by the listing market [5]. The proposal would not have triggered within thirty minutes of the end of regular trading hours; the Commission dropped that carve-out because the adopted restriction runs through the following day [5]. Commission staff estimated that, from 9 April 2001 to 30 September 2009, the restriction would have been triggered on an average day for approximately 4% of covered securities, and for approximately 1.3% in a low-volatility period from 1 January 2004 to 31 December 2006 [5].

Method

Source capture

We read the rule from the eCFR, which on 9 October 2026 reported Title 17 as up to date as of 7 October 2026. We stored the current text of § 242.201, § 242.600 and § 242.603 [1, 2, 15], the eCFR's list of point-in-time versions of § 242.201 [4] and the text as it stood on 1 January 2021 [3]. Each stored text carries its retrieval date and the eCFR version date. We also stored the Commission's adopting release [5], the staff FAQ [6] and the Federal Register releases that amended the section [7, 8, 9].

Extraction

An LLM reads paragraph (b) and proposes one field for each operative phrase. A field record holds:

field:          duration
value:          remainder of trigger day, plus the next trading day
source:
  citation:     17 CFR 242.201(b)(1)(ii)
  text_version: eCFR, up to date as of 2026-10-07
  span:         "for the remainder of the day and the following day"
interpretation:
  reading:      "following day" means the next trading day
  source:       SEC staff Rule 201 FAQ, Question 2.1 (retrieved 2026-10-09)
  evidence:     staff guidance
depends_on:     [determination, condition]
proposed_by:    { model: <pinned version>, prompt: <id> }
review:         { decision: accepted with edit, reviewer: <id>, at: <UTC time> }

The span must be an exact substring of the stored text, checked by machine, so a field cannot cite words that are not there. Definitions that a field relies on are separate records with their own spans, joined through depends_on.

Evidence classes for text

Sources of meaning carry different weight, so each reading names its class:

Evidence class Example in this note Weight
Rule text, current eCFR § 242.201 as of 7 October 2026 [1] Operative
Rule text, earlier version eCFR § 242.201 as of 1 January 2021 [3] Historical; explains older guidance
Commission release Adopting release, 75 FR 11232 [5] The Commission's own explanation
Staff guidance Rule 201 FAQ [6] Staff views; "not rules, regulations, or statements" of the Commission
Reviewer interpretation Threshold arithmetic between price increments Our reading, marked as such

Review

A person reviews every proposed field beside the highlighted span and accepts, edits or rejects it. The decision is logged with the reviewer, the time and the text version. No field enters the model without a decision. Corrections go into the test set for the next extraction run.

Property and check

With the fields reviewed, we state what the rule should guarantee, first in plain words and then in the model's terms, before any check runs. The check runs the model against generated sequences of trades, quotes, orders and halts, with weight on the places where the text draws lines: a decline of exactly 10%, a trigger in the last minute of regular trading hours, a trigger on a Friday, a second decline on the following day, a halt, a first day of trading. A sequence that breaks the property comes back as a counterexample, and each step names the fields it touched.

Recorded history is another source of cases. Rillor's market data warehouse holds U.S. equity trade and quote history from 2018, so trigger and duration logic can be run over recorded prices as well as generated ones. This note reports no results from such runs.

Findings

1. Eight fields, each with a span

Field Value in the model Span in 17 CFR 242.201 [1]
trigger price at or below 0.90 × baseline (b)(1)(i): "decreases by 10% or more"
baseline listing market's closing price, prior day (b)(1)(i): "closing price as determined by the listing market for the covered security as of the end of regular trading hours on the prior day"
restriction no short sale order executed or displayed at or below the national best bid (b)(1)(i): "at a price that is less than or equal to the current national best bid"
duration rest of the trigger day and the following day (b)(1)(ii): "for the remainder of the day and the following day"
condition applies while a national best bid is disseminated under an NMS plan (b)(1)(ii): "calculated and disseminated on a current and continuing basis pursuant to an effective national market system plan"
determination made by the listing market, then made available (b)(3): "shall be made by the listing market for the covered security"
exception A a displayed order priced above the national best bid when first displayed may execute (b)(1)(iii)(A): "at the time of initial display of the short sale order, the order was at a price above the current national best bid"
exception B an order marked "short exempt" (b)(1)(iii)(B): "without regard to whether the order is at a price that is less than or equal to the current national best bid"

Paragraphs (c) and (d), which set when a broker-dealer may mark an order "short exempt", are modeled as the source of exception B's input. This note does not extract their conditions field by field.

2. Cross-references move

Paragraph (a) defines its terms by reference to § 242.600(b). The eCFR version history for § 242.201 shows the referenced paragraph numbers changing three times [4]. The source note on the current eCFR text lists the amendments at 83 FR 58427 (19 November 2018), 86 FR 18809 (9 April 2021) and 89 FR 26608 (15 April 2024) [1]. Those pages fall within the Commission's releases on order handling disclosure [7], market data infrastructure [8] and order execution disclosure [9].

Term defined in 242.201(a) Before 2018 amendment After 2018 [7] After 2021 [8] After 2024 [9], current
covered security (NMS stock) 600(b)(47) 600(b)(48) 600(b)(55) 600(b)(65)
effective transaction reporting plan 600(b)(22) 600(b)(23) 600(b)(30) 600(b)(35)
listing market "listing market" in the transaction reporting plan same "primary listing exchange", 600(b)(68) 600(b)(79)
national best bid 600(b)(42) 600(b)(43) 600(b)(50) 600(b)(60)
odd lot 600(b)(49) 600(b)(51) 600(b)(58) 600(b)(68)
plan processor 600(b)(55) 600(b)(59) 600(b)(67) 600(b)(78)
regular trading hours 600(b)(64) 600(b)(68) 600(b)(77) 600(b)(88)
trading center 600(b)(78) 600(b)(82) 600(b)(95) 600(b)(106)

Sources: eCFR point-in-time versions of § 242.201 [4], the text as of 1 January 2021 [3] and the current text [1].

A model that stores a cross-reference as a paragraph number breaks silently at each renumbering. Ours stores the defined term, the paragraph number in force for each text version and the span of the definition itself.

3. The 2021 amendments changed the words

Provision Text before the 2021 amendments [3] Current text [1]
(a)(3) listing market same meaning as "listing market" as defined in the effective transaction reporting plan for the covered security same meaning as "primary listing exchange" as defined in § 242.600(b)(79)
(b)(1)(ii) condition "disseminated on a current and continuing basis by a plan processor pursuant to an effective national market system plan" "disseminated on a current and continuing basis pursuant to an effective national market system plan"
(b)(3) dissemination the listing market "shall immediately notify the single plan processor responsible for consolidation of information for the covered security pursuant to § 242.603(b). The single plan processor must then disseminate this information." the listing market "shall immediately make such information available as provided in § 242.603(b)"

The Federal Register lists the Market Data Infrastructure release as effective 8 June 2021. Its stated aim was to change how NMS information is collected, calculated and disseminated "by fostering a competitive environment for the dissemination of NMS information via a decentralized consolidation model with competing consolidators" [8].

The current (b)(3) points to § 242.603(b), which itself holds two regimes with dates set by Commission orders. Paragraph (b)(3) of that section, dissemination through a single plan processor, applies until the date the Commission sets for the plan processors to cease operations. Paragraph (b)(2), data made available to competing consolidators and self-aggregators, applies 180 calendar days after the Commission approves the required plan amendments [15]. The model therefore treats the dissemination path as a dependency whose state is set by facts outside the rule text. Which regime applies on a given date is a review task, recorded with its source.

4. Guidance fills gaps, on an older text

The staff FAQ answers questions that the rule text leaves open. The answers change the model, so each is stored as a dated reading with its source.

Question the text leaves open Reading used in the model Source and class
Which price is compared with the baseline? Trades reported in the consolidated system during regular trading hours; the listing market uses last-sale eligible trade prices; the national best bid does not factor in FAQ 1.1, staff guidance [6]
Can the trigger occur outside regular trading hours? No FAQ 1.2, staff guidance [6]
When does the restriction start? Once the listing market's determination is made available Rule text (b)(3) [1]; FAQ 1.3 describes the pre-2021 mechanism [6]
What is "the following day"? The next trading day; a Friday trigger carries into Monday FAQ 2.1, staff guidance [6]
Does the restriction apply outside regular trading hours? Yes, whenever a national best bid is disseminated under an NMS plan FAQ 2.1, staff guidance [6]
What does a second 10% decline on a restricted day do? It re-triggers the restriction for the rest of that day and the following day; there is no limit on re-triggers Adopting release, 75 FR 11253 n.290 [5]; FAQ 2.2 [6]
What is the baseline after a halt? The close, or the last sale if there was no close, on the last day the security traded FAQ 3.1, staff guidance [6]
What happens on a first day of trading? No prior close exists, so the rule applies from the second day FAQ 3.2, staff guidance [6]
Can an un-displayed order execute at the bid? No; it executes only above the national best bid at the time of execution FAQ 4.1 and 4.2, quoting the adopting release [6]
What if the national best bid and offer are crossed? A short sale may be displayed or executed at or below the national best bid while the market is crossed FAQ 6.1, staff guidance [6]
How is a threshold between price increments compared? Exact decimal comparison, price ≤ 0.90 × baseline, marked as our reading; the listing market's determination governs Reviewer interpretation

The FAQ was written against older text. Its answer 2.1 quotes (b)(1)(ii) with the words "by a plan processor" [6]. Its answer 1.2 cites regular trading hours as "Rule 600(b)(64)" with procedures under "Rule 605(a)(2)" [6]; the current text points to § 242.600(b)(88), which refers to § 242.605(a)(3) [1, 2]. Its answer 5.3 refers to "Rule 201(b)(1)(ii)(B)" for the "short exempt" provision, which sits at (b)(1)(iii)(B) in the current text [1, 6]. None of this makes the guidance wrong. It means every reading taken from it carries the guidance's date and the text version it was written against, so a reviewer can see where they diverge.

The FAQ's description of when the restriction starts shows the gap plainly. Answer 1.3 says the restriction is not in effect until the listing market "has notified the applicable single plan processor and the information has been disseminated by the applicable single plan processor" [6]. That matches the pre-2021 wording of (b)(3) [3]. The current wording says the listing market "shall immediately make such information available as provided in § 242.603(b)" [1]. The model takes the start of the window as the time the determination is made available, and links that field to both passages.

5. The property in model terms

For a covered security s:
  close(s, d)     listing market close for trading day d      (a)(3), (b)(1)(i); FAQ 3.1, 3.2
  avail(s, d, τ)  determination for day d made available at τ  (b)(3); FAQ 1.3
  next(d)         next trading day after d                     (b)(1)(ii); FAQ 2.1
  window(s)       union, over every avail(s, d, τ),
                  of the interval [τ, end of next(d)]          (b)(1)(ii); 75 FR 11253 n.290; FAQ 2.2
  nbb_live(s, t)  a national best bid for s is disseminated
                  under an NMS plan at time t                  (b)(1)(ii); FAQ 2.1

P1. For every execution or display e of a short sale order in s at time t:
    if t is in window(s) and nbb_live(s, t)
    then price(e) > NBB(s, t)
      or exception_A(e)   displayed order priced above the NBB at first display   (b)(1)(iii)(A)
      or exception_B(e)   order marked "short exempt"                             (b)(1)(iii)(B)
      or crossed(s, t)    NBB and NBO crossed at t                                FAQ 6.1
    For an un-displayed order, price(e) is compared with NBB at execution.        FAQ 4.1, 4.2

Every term names its source. A reviewer can strike out the guidance terms and see exactly which parts of the property rest on the rule text alone.

6. Three traced counterexamples

The sequences below were constructed against deliberately flawed models to show how a counterexample traces to the text. Prices are illustrative. They are not results from any trading system.

Calendar-day duration. The flawed model encodes "the following day" as the next calendar day. Sequence: on a Friday, XYZ trades at 18.00 against a Thursday close of 20.00, and the determination is made available; on Monday, a short sale order executes at the national best bid. The flawed model permits the execution; P1 forbids it. Trace: duration to the span "the following day" in (b)(1)(ii), then to the reading from FAQ 2.1, "the next trading day" [6]. Fix: next(d) uses the trading calendar.

No re-trigger. The flawed model sets the end of the window once, at the first trigger. Sequence: on Monday, XYZ falls from a Friday close of 20.00 to 18.00 and triggers; Monday closes at 18.50; on Tuesday, XYZ trades at 16.65, which is 0.90 × 18.50; on Wednesday, a short sale executes at the bid. The flawed model ends the window at Tuesday's close; P1 forbids the Wednesday execution. Trace: duration and trigger to their spans in (b)(1)(i) and (ii), then to the adopting release's statement that the restriction "will be re-triggered and, therefore, will continue in effect for the remainder of that day and the following day" [5]. Fix: window(s) is a union over every determination.

Halt without a prior-day close. The flawed model looks up the baseline for the prior calendar day, finds none after a two-day halt and never triggers. Sequence: XYZ closes at 40.00 on a Tuesday, is halted Wednesday and Thursday, resumes Friday and trades at 36.00; a short sale then executes at the bid. P1, read with FAQ 3.1, requires the restriction. Trace: baseline to the span "closing price ... on the prior day", then to FAQ 3.1, the close or last sale "on the last day it traded" [6]. Fix: close(s, d) looks back to the last day the security traded.

Each fix changes one field, cites the passage it relies on and passes review before the next check.

7. Questions that stay open

Two questions are recorded as open interpretations.

The first is arithmetic. The text says "decreases by 10% or more". When 0.90 × baseline falls between price increments, the text does not say how the comparison is made. The model uses an exact decimal comparison and marks it as our reading. Under (b)(3), the listing market makes the determination, so the field's practical role is to predict that determination, and the check treats the published determination as the authoritative input.

The second is definitional. Paragraph (a)(4) gives "national best bid" the meaning in § 242.600(b)(60) [1]. For NMS stocks, that definition refers to the best bid and offer "calculated and disseminated on a current and continuing basis by a competing consolidator or calculated by a self-aggregator" [2]. Paragraph (b)(1)(ii) conditions the restriction on a national best bid "calculated and disseminated on a current and continuing basis pursuant to an effective national market system plan" [1]. How the two fit depends on which dissemination regime in § 242.603(b) is in force [15]. The model links both spans to the condition field and leaves the reading to counsel.

Implications

For engineers who implement trading rules. Store the reading next to the code that acts on it. A field record with a span, a text version and an evidence class costs little to keep and answers many audit questions directly. Store cross-references by defined term as well as by paragraph number.

For compliance and legal teams. Separate rule text from guidance, and date both. The Rule 201 FAQ remains the place where the staff answers practical questions, and its latest dated entry, from June 2019, predates the 2021 amendments that changed the text [6, 8]. Knowing which readings rest on it, and on which version of the text, lets a team respond quickly when the text or the guidance moves.

For buyers of AI document tools. Ask three questions. Does every extracted field link to an exact span in a stored version of the source? Does the tool mark which readings come from the text and which from guidance or interpretation? Does a person decide before a field is used? The error rates reported for commercial legal research tools make the third question decisive [13].

For researchers. Rule text with a dated version history, staff guidance written against older text and Commission releases with worked examples form a useful benchmark for extraction systems. The adopting release's re-trigger example [5] and the FAQ's Friday example [6] are concrete test cases with published answers.

Limits of this analysis

This note describes a method and applies it to one rule. It is not legal advice and states no view on how any trading center complies with Rule 201.

The staff FAQ represents the views of Commission staff. In the staff's words, the answers "are not rules, regulations, or statements" of the Commission, and the Commission "has neither approved nor disapproved these interpretive answers" [6]. Readings taken from it carry that status.

The model covers paragraph (b) of § 242.201. It treats the broker-dealer marking provisions in paragraphs (c) and (d) as the source of an input, without extracting their conditions. It does not model the marking requirements of § 242.200(g) or the locate requirements of Rule 203.

The counterexamples in Finding 6 were constructed against deliberately flawed models to illustrate tracing. They are not findings about any production system. This note reports no measured extraction accuracy, no review statistics and no results from runs over recorded market data.

We did not determine which dissemination regime in § 242.603(b) is in force on any date, and we did not resolve the definitional question in Finding 7. Both are recorded as open.

We used the eCFR for its point-in-time versions and recorded the version date of every passage. We did not compare its text with the annual edition of the Code of Federal Regulations.

Sources

  1. 17 CFR 242.201, Circuit breaker. Electronic Code of Federal Regulations (eCFR), Office of the Federal Register and U.S. Government Publishing Office; Title 17 up to date as of 7 October 2026, retrieved 9 October 2026. https://www.ecfr.gov/current/title-17/section-242.201
  2. 17 CFR 242.600, NMS security designation and definitions. eCFR; Title 17 up to date as of 7 October 2026, retrieved 9 October 2026. https://www.ecfr.gov/current/title-17/section-242.600
  3. 17 CFR 242.201, Circuit breaker, as in effect on 1 January 2021. eCFR point-in-time version, retrieved 9 October 2026. https://www.ecfr.gov/on/2021-01-01/title-17/section-242.201
  4. Version history of 17 CFR 242.201, with point-in-time versions dated 31 December 2016, 19 November 2018, 15 January 2019, 9 April 2021, 8 June 2021, 15 April 2024 and 14 June 2024. eCFR versioner service, retrieved 9 October 2026. https://www.ecfr.gov/api/versioner/v1/versions/title-17.json?section=242.201
  5. Amendments to Regulation SHO, Release No. 34-61595, 75 FR 11232. U.S. Securities and Exchange Commission, Federal Register, 10 March 2010. https://www.sec.gov/files/rules/final/2010/34-61595fr.pdf
  6. Division of Trading and Markets: Responses to Frequently Asked Questions Concerning Rule 201 of Regulation SHO. U.S. Securities and Exchange Commission; page footer dated 29 July 2013, entries marked new or modified as late as 4 June 2019; retrieved 9 October 2026. https://www.sec.gov/files/divisions/marketreg/rule201faq.htm
  7. Disclosure of Order Handling Information, Release No. 34-84528, 83 FR 58338. U.S. Securities and Exchange Commission, Federal Register, 19 November 2018. https://www.federalregister.gov/documents/2018/11/19/2018-24423/disclosure-of-order-handling-information
  8. Market Data Infrastructure, Release No. 34-90610, 86 FR 18596. U.S. Securities and Exchange Commission, Federal Register, 9 April 2021. https://www.federalregister.gov/documents/2021/04/09/2020-28370/market-data-infrastructure
  9. Disclosure of Order Execution Information, Release No. 34-99679, 89 FR 26428. U.S. Securities and Exchange Commission, Federal Register, 15 April 2024. https://www.federalregister.gov/documents/2024/04/15/2024-05556/disclosure-of-order-execution-information
  10. Denis Merigoux, Nicolas Chataing and Jonathan Protzenko, "Catala: A Programming Language for the Law". Proceedings of the ACM on Programming Languages, Vol. 5, ICFP, August 2021. https://doi.org/10.1145/3473582 (preprint: https://arxiv.org/abs/2103.03198)
  11. Chris Newcombe, Tim Rath, Fan Zhang, Bogdan Munteanu, Marc Brooker and Michael Deardeuff, "How Amazon Web Services Uses Formal Methods". Communications of the ACM, Vol. 58, No. 4, April 2015. https://doi.org/10.1145/2699417 (quotations taken from Leslie Lamport's abridged version, which reproduces the paper's words: https://lamport.azurewebsites.net/tla/amazon-excerpt.html)
  12. Koen Claessen and John Hughes, "QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs". Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming (ICFP '00), September 2000. https://doi.org/10.1145/351240.351266
  13. Varun Magesh, Faiz Surani, Matthew Dahl, Mirac Suzgun, Christopher D. Manning and Daniel E. Ho, "Hallucination-Free? Assessing the Reliability of Leading AI Legal Research Tools". arXiv:2405.20362, 30 May 2024. https://arxiv.org/abs/2405.20362
  14. "Cracking the Code: Rulemaking for humans and machines". OECD Observatory of Public Sector Innovation, OECD Working Papers on Public Governance, 12 October 2020. https://oecd-opsi.org/publications/cracking-the-code/
  15. 17 CFR 242.603, Distribution, consolidation, dissemination, and display of information with respect to quotations for and transactions in NMS stocks. eCFR; Title 17 up to date as of 7 October 2026, retrieved 9 October 2026. https://www.ecfr.gov/current/title-17/section-242.603

About this report

Published by Rillor on 9 October 2026. AI tools assist research and drafting, and every figure cites its source. Rillor builds agentic AI systems, datasets, market research and compute services.

Cite as: Rillor. From rule text to a checkable model. 9 October 2026. https://rillor.com/insights/from-rule-text-to-checkable-model

Notices

AI outputs can be wrong. Important decisions should include human review.