---
title: "Reading a Trading Firm’s Accounts"
book: "The Industry: Firms, Roles and Careers"
subject: quant
language: en
chapter: 11
exercises: 8
source: https://one-course.com/books/quant/17/en/chapter/11-reading-a-trading-firms-accounts
---

# Chapter 11 — Reading a Trading Firm’s Accounts

For nothing but a download, the UK register gives years of a trading firm’s accounts, many of them machine-readable: turnover, operating profit, the average number of employees, [staff costs](#def-in-reading-a-trading-firms-accounts-staff), and for a partnership the profit shared among its members. In the year to 31 January 2025 one London investment manager, Quadrature Capital Limited, reported [staff costs](#def-in-reading-a-trading-firms-accounts-staff) of £556 million for an average of 173 employees: £3.2 million a head. [Staff costs](#def-in-reading-a-trading-firms-accounts-staff) over average employees is the most honest pay figure the industry publishes, because the law defines both halves of the fraction. It is also easy to misread. It is a mean, not what a typical employee earns; it counts employees but not partners; it belongs to one legal entity, which may not be where the firm’s people or profits sit; and one year of a trading firm is not the next. This chapter shows where the filings are, what they contain, how to read the machine-readable ones with code, and the pitfalls that turn a correct number into a wrong conclusion. Chapter 12 then puts the whole industry’s filed numbers side by side, and Book 16, chapter 1, is the reference for the economics the lines describe.

## 11.1 Where the filings are: registries, EDGAR, annual reports, prospectuses, divisional and Pillar 3 reports

**Definition 11.1 (Company registry, statutory accounts).**

A *company registry* is the public register with which a country’s companies and partnerships file their constitution, their officers and owners, and their annual accounts. *Statutory accounts* are the annual financial statements that the law requires an entity to prepare, have audited unless it is exempt, and file: a balance sheet, a profit and loss account, notes, and the reports of the directors (or members) and of the auditor.

A trading firm is rarely one entity. It is a group: a parent, often in the country where it was founded, with operating subsidiaries and branches wherever it trades or employs people, each of which files where it is registered. Five sources between them cover most of what is public.

- **Company registries.** The UK register is the most useful to this book’s readers because it is free and complete: every UK company and limited liability partnership files accounts, and anyone can download them. Registries elsewhere differ in what they publish and whether they charge.
- **SEC EDGAR.** US issuers file annual reports (Form 10-K) with audited statements; US broker-dealers file an annual audited statement of financial condition, which is public, and periodic reports, which are not (below). Chapter 1 used EDGAR’s registration data to classify employers; this chapter reads the numbers.
- **Annual reports of listed firms** elsewhere, which in the European Union are filed in a machine-readable format (section 3).
- **Prospectuses and offering documents** , when a firm lists or raises public debt. Private placements under the US Rule 144A are offered to institutions only; what the press reports of their offering memoranda is context, not a source.
- **Divisional and Pillar 3 reports** of banks, which disclose a markets division’s revenue (chapter 7) and, uniquely in the industry, how many staff were paid more than a million euros.

**As of September 2026 — The UK register’s bulk accounts data.**

Companies House publishes a free Accounts Data Product: daily and monthly ZIP files of the accounts filed electronically, in [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl), XBRL or zipped [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl). It states that electronically filed accounts are “about 75% of the 2.2 million accounts we expect to be filed each year”; the rest, including many large companies’ accounts, are filed as paper or image documents, which the register also serves free, one filing at a time, but which carry no tags.

**Definition 11.2 (FOCUS report).**

A *FOCUS report* (Financial and Operational Combined Uniform Single report) is the periodic report of a US broker-dealer’s financial condition, income and net capital that it files with its regulators on Form X-17A-5, Part II or Part IIA, within 17 business days of each quarter end (monthly for some firms). The reports are confidential; the annual audited statement of financial condition is filed as a separate, public document.

The split matters for a reader. A US market maker’s broker-dealer publishes a balance sheet once a year and nothing about its revenue or its staff: chapter 2 read one, Citadel Securities LLC’s, for its assets and member’s capital, and that is as far as the public document goes. Its income, and the net-capital computation behind the rule Book 16, chapter 2, describes, stay in the confidential FOCUS filings. For a private US trading firm, then, the UK accounts of its London entity are often the only public income statement there is.

**Definition 11.3 (Pillar 3 disclosure).**

A *Pillar 3 disclosure* is the public report that prudential rules require of banks and large investment firms on their capital, risks and remuneration. Its remuneration tables give, for the staff whose work has a material impact on the firm’s risk, the fixed and variable pay awarded, split by business area, and the number of individuals paid one million euros or more, in bands of half a million euros up to five million and of one million above.

**As of December 2025 — One bank’s high earners.**

Barclays PLC, Pillar 3 Report 2025, Appendix C: 717 identified staff were paid € 1 million or more in 2025 (UK REM4), 312 of them between € 1 million and € 1.5 million and 150 between € 1.5 million and € 2 million; 39 were paid € 5 million or more. Its investment bank’s identified staff, 812.3 on the report’s count, were awarded £1 263.3 million, of which £732.8 million variable (UK REM5).

These are the only public pay distributions in the industry that name an employer. Of the bank’s 717 high earners, 64.4% were paid less than € 2 million; the investment bank’s identified staff averaged £1.56 million, 58.0% of it variable. They describe the best-paid few hundred people of one bank, selected by the rules for their risk, not its markets division as a whole; chapter 14 uses such tables with the care that selection needs.

## 11.2 What statutory accounts contain

A set of full UK accounts has the same parts whatever the business: a strategic report, a directors’ report (for a partnership, a members’ report), the auditor’s report, the primary statements and the notes. For a reader interested in a firm as an employer, four things are in the primary statements and the notes by law.

**Definition 11.4 (Staff costs, average headcount).**

*Staff costs* are the costs of all persons employed by the entity during the year, broken down into wages and salaries, social security costs, and other pension costs. *Average headcount* is the average number of persons employed under contracts of service during the year: the sum over the year’s months of the number employed in each month, divided by the number of months.

Both come from the Companies Act 2006, section 411, which requires a company that is not small to give the average number by category (the directors choose the categories) and the total [staff costs](#def-in-reading-a-trading-firms-accounts-staff) in the three parts. Each word does work. “Employed under contracts of service” excludes contractors, secondees from another group company and partners. “Average” means that a firm that doubled its staff during the year reports a figure between the two ends. [Staff costs](#def-in-reading-a-trading-firms-accounts-staff) are what the year’s profit and loss account is charged, which for deferred pay is the part expensed this year, not the awards made this year (chapter 13). And a group’s accounts count the group as one company.

**Definition 11.5 (Consolidated accounts).**

*Consolidated accounts* (group accounts) present a parent and its subsidiaries as a single economic entity: their revenues, costs, assets and liabilities are added line by line, and transactions and balances between members of the group are removed. The parent’s own accounts, often printed beside them, show the parent alone.

A partnership’s accounts add a fourth item. A limited liability partnership (Book 16, chapter 2) has members, not shareholders; its profit is theirs.

**Definition 11.6 (Members’ remuneration).**

*Members’ remuneration* is what the members of a limited liability partnership receive for the year: salaried amounts and profit shares that the partnership agreement allocates automatically, which the accounts charge as an expense, and any profit left for the members to divide at their discretion. The accounts show the profit before members’ remuneration and profit shares, the average number of members, and, when that profit exceeds £200 000, the profit attributable to the member with the largest entitlement.

Two consequences follow for per-head arithmetic. First, the people who are members are not in the [staff costs](#def-in-reading-a-trading-firms-accounts-staff) or the [average headcount](#def-in-reading-a-trading-firms-accounts-staff): an LLP whose senior people are members understates the pay of its best-paid people by construction. Second, members may be companies. A member that is itself a group company receives profit on behalf of the group, and dividing the [members’ remuneration](#def-in-reading-a-trading-firms-accounts-members) by the number of members then describes nothing (section 4).

## 11.3 Machine-readable filings: inline XBRL and XBRL

**Definition 11.7 (Inline XBRL).**

*Inline XBRL* is a format for filed accounts in which one XHTML document is both the page that a person reads and the data that a program reads: each reported number is wrapped in a tag that names a concept from a published taxonomy, a context (the entity, the period, and any dimension such as a segment or category), a unit, a scale (a power of ten), a sign and the display format of the number.

XBRL itself, the older form, is a separate machine-readable file beside the human-readable document. The US has required it of issuers since 2009 and now receives it inline in 10-K and 10-Q filings; the European Union’s single electronic format requires issuers on its regulated markets to tag their consolidated IFRS statements in [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl), and the accounts filed electronically at the UK register arrive as [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl) or XBRL. [Listing 11.1](#lst-in-reading-a-trading-firms-accounts-tag) shows a tagged fact from Quadrature Capital’s accounts, stripped of its styling.

```html
<ix:nonFraction contextRef="c2" decimals="-3" format="ixt:numcommadot"
    name="e:TurnoverRevenue" scale="3" unitRef="u1">1,224,817</ix:nonFraction>
```

***Listing 11.1.** One tagged number from filed accounts: the concept, context, unit, scale, decimals and format are attributes of the tag. code/firm/filings/tests/excerpt_quadrature_turnover.xhtml*

It says: the concept turnover in the UK taxonomy, for the period that context `c2` defines (1 February 2024 to 31 January 2025), in the unit that `u1` defines (pounds sterling), displayed with commas as thousands separators, to be multiplied by $10^3$ ([Figure 11.1](#fig-in-reading-a-trading-firms-accounts-ixbrl)).

![Anatomy of one inline-XBRL fact. The tag on the page points to a context (entity, period, dimensions) and a unit defined once in the document’s hidden header; scale, sign and format turn the shown text into the value. The brackets a statement prints around an expense are presentation, not sign. Example: Quadrature Capital Limited’s turnover for the year to 31 January 2025, read with firm.filings.parse_ixbrl.](https://one-course.com/images/onecourse/chapters/quant-17/in-reading-a-trading-firms-accounts/fig-ca35a81fbef5.svg)

***Figure 11.1.** Anatomy of one inline-XBRL fact. The tag on the page points to a context (entity, period, dimensions) and a unit defined once in the document’s hidden header; scale, sign and format turn the shown text into the value. The brackets a statement prints around an expense are presentation, not sign. Example: Quadrature Capital Limited’s turnover for the year to 31 January 2025, read with `firm.filings.parse_ixbrl`.*

The parser this chapter builds collects the contexts and units first, then turns every tagged number into a fact ([Listing 11.2](#lst-in-reading-a-trading-firms-accounts-number)). Four details catch a first attempt. The format attribute decides which character is the decimal mark: a continental filing writes 1.234,5. A dash tagged with the zero-dash format is zero, not missing. The sign attribute, not the brackets around the displayed number, gives the fact’s sign; expenses are usually tagged positive although they print in brackets. And a number may be tagged twice, once on the face of the statement and once in a note, which the parser keeps once.

```python
def number(text: str, fmt: str = "", scale: int = 0, sign: str = "") -> float:
    """The value of one displayed number: format decides the separators, scale the power of ten, sign the sign."""
    t = re.sub(r"\s+", "", text or "")
    f = fmt.split(":")[-1].lower()
    if f in ("zerodash", "fixed-zero", "fixedzero") or t in ("-", "\u2013", "\u2014"):
        v = 0.0
    else:
        if f in ("numdotcomma", "num-comma-decimal", "numcommadecimal"):
            t = t.replace(".", "").replace(" ", "").replace(",", ".")
        else:  # numcommadot, num-dot-decimal, numspacedot and the default
            t = t.replace(",", "").replace(" ", "")
        t = t.strip("()")
        v = float(t) if t else 0.0
    v *= 10.0 ** int(scale or 0)
    return -v if sign == "-" else v
```

***Listing 11.2.** One displayed number to its value: format, scale and sign. code/firm/filings/firm_filings.py*

Tags are only as good as the filer’s tagging. Quadrature’s 2025 accounts tag other operating income of £17.751 million with a minus sign, although the statement shows it as income that raises operating profit. A parser reports what the tag says; a reconciliation catches what the tag gets wrong. Turnover less administrative expenses plus other income, with the tagged sign, gives £521.1 million against the stated operating profit of £556.6 million, a gap of £35.5 million, twice the mistagged amount. With the sign reversed the three lines add up. Every snapshot in this chapter is checked this way before it is used.

US filings reach a reader pre-parsed. The SEC’s company-facts interface returns, for one issuer, every XBRL fact it has ever filed, as JSON, with no key needed; it asks only that a script declare who it is in its user agent and stay under ten requests a second. Each period recurs in every later filing that reports it as a comparative: Virtu Financial’s revenue concept holds 147 facts for its handful of annual periods. The reader keeps annual 10-K periods only and, for each, the latest filing’s value, because a later filing may restate ([Listing 11.3](#lst-in-reading-a-trading-firms-accounts-companyfacts)).

```python
def companyfacts(doc: dict, concepts, entity: str = "", source: str = "") -> list:
    """Annual 10-K values (periods of 350 to 380 days) of the given concepts; for each period the latest filing wins."""
    out = []
    for taxonomy in doc.get("facts", {}).values():
        for concept in concepts:
            if concept not in taxonomy:
                continue
            for unit, vals in taxonomy[concept]["units"].items():
                best = {}
                for v in vals:
                    if v.get("form") != "10-K" or not v.get("start") or not 350 <= _days(v["start"], v["end"]) <= 380:
                        continue
                    k = (v["start"], v["end"])
                    if k not in best or v["filed"] > best[k]["filed"]:
                        best[k] = v
                for (s, e), v in sorted(best.items()):
                    out.append(Fact(entity or doc.get("entityName", ""), ALIASES.get(concept, concept), float(v["val"]),
                                    unit, s, e, source, v["accn"], concept))
    return out
```

***Listing 11.3.** Annual values from SEC company facts: the latest filing wins for each period. code/firm/filings/firm_filings.py*

## 11.4 Pitfalls: entity against group, members against employees, currencies and one-offs

A correct fact read from the wrong entity, or divided by the wrong people, is a wrong answer. Jane Street’s UK entities show most of the pitfalls in six years.

**As of December 2025 — One firm’s two UK entities.**

|  | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 |
| --- | --- | --- | --- | --- | --- | --- |
| *Jane Street Europe Limited, group ($m; [average headcount](#def-in-reading-a-trading-firms-accounts-staff))* |
| revenues | 1 567.0 | 222.5 | 435.0 | 383.4 | 995.8 | 643.0 |
| profit for the year | 979.1 | $-69.1$ | 324.2 | 286.5 | 654.9 | 437.4 |
| [average headcount](#def-in-reading-a-trading-firms-accounts-staff) | 274 | 335 | 2 | 3 | 4 | 5 |
| *Jane Street UK Partnership LLP ($m; 2022 is the 14 months from 25 October 2021)* |
| revenues |  |  | 1 230.8 | 1 286.1 | 2 271.1 | 3 875.9 |
| [staff costs](#def-in-reading-a-trading-firms-accounts-staff) |  |  | 434.9 | 494.2 | 860.1 | 1 664.5 |
| profit before members’ shares |  |  | 667.5 | 583.5 | 1 171.0 | 1 855.4 |
| [average headcount](#def-in-reading-a-trading-firms-accounts-staff) |  |  | 483 | 636 | 688 | 790 |
| average members |  |  | 4 | 7 | 6 | 8 |

From the two entities’ accounts at Companies House, 2021 to 2025, each figure with its page in `data/industry/filings_snapshot/jane_street_uk.csv`. On 1 August 2022 the company’s employee contracts were transferred to the partnership; from 1 January 2022 the company no longer received an allocation of employee costs.

**Entity against group, and transfer pricing.** The company’s revenue is what the group’s transfer-pricing arrangements (Book 16, chapter 15) assign to it for the trading it does, not what its traders earn in markets. In 2021 its [staff costs](#def-in-reading-a-trading-firms-accounts-staff), $302.4 million, exceeded its revenue of $222.5 million, and it made a loss; in 2020 the same entity had earned $1 567.0 million. The partnership’s revenue is a charge to the group: in 2025 it billed $2 206.6 million to its parent and $1 669.3 million to other affiliates, for activities performed on behalf of the group. Neither entity’s revenue is the London business’s trading revenue, and the two cannot be added, because what one charges another group company is, in the group’s [consolidated accounts](#def-in-reading-a-trading-firms-accounts-consolidated), removed. The [consolidated accounts](#def-in-reading-a-trading-firms-accounts-consolidated) that would settle the question are those of the ultimate parent, Jane Street Group, LLC, in the United States, and are not among the UK filings.

**Where the people went.** [Average headcount](#def-in-reading-a-trading-firms-accounts-staff) fell from 335 to 2 in the company and appeared as 483 in the partnership ([Figure 11.2](#fig-in-reading-a-trading-firms-accounts-jsheadcount)). The company’s note counts the individuals whose cost was allocated to it, and from 1 January 2022 almost none was. A reader with only the company’s 2022 accounts would conclude that the London business had closed. With both, the staff cost per head is $1.29 million in 2020 and $0.90 million in 2021 (the company), then $0.78 million, $1.25 million and $2.11 million in 2023–2025 (the partnership).

![One firm’s London headcount moves between its two UK entities. The partnership’s first accounts cover the 14 months from 25 October 2021 to 31 December 2022 and are shown at 2022. Data: the entities’ accounts at Companies House, through in_accounts.jane_street.](https://one-course.com/images/onecourse/chapters/quant-17/in-reading-a-trading-firms-accounts/fig-27c7970f891c.svg)

***Figure 11.2.** One firm’s London headcount moves between its two UK entities. The partnership’s first accounts cover the 14 months from 25 October 2021 to 31 December 2022 and are shown at 2022. Data: the entities’ accounts at Companies House, through `in_accounts.jane_street`.*

**Periods.** The partnership’s first accounts run 14 months. Its 2022 staff cost per head, $0.90 million, is over 14 months; over twelve it is $0.77 million. Annualise before comparing, and note that the first period of a new entity also has a partial workforce.

**Members against employees.** In 2025 the partnership’s profit before members’ shares, $1 855.4 million, was 1.11 times its [staff costs](#def-in-reading-a-trading-firms-accounts-staff) and $2.35 million per employee; it had eight members on average, “a mix of corporate entities and natural persons”. Dividing by eight gives $232 million a member, a meaningless number: the member with the largest entitlement, a corporate member, received 84.3% of the profit (90.8% in 2024). The profit leaves the partnership for the group, not for eight people.

**An entity with no employees.** Squarepoint Capital LLP, a London sub-investment manager for its group’s funds, has corporate members only and no employees: the people who perform its regulated functions, 55 on average in 2025, are seconded from an affiliate, and it pays a service charge for them, £36.2 million in 2025. That is £659 000 per secondee (£738 000 in 2024), but it is a charge between group companies, not pay, and nothing in the accounts says what it contains. Its revenue halved from £106.8 million to £50.6 million in 2025 and its profit before [members’ remuneration](#def-in-reading-a-trading-firms-accounts-members) fell from £33.6 million to £1.2 million; the members’ report attributes the fall in revenue to lower operating expenses and lower group income, which is what a service entity’s revenue follows.

**Currencies.** The two Jane Street entities report in dollars, Quadrature and Squarepoint in pounds. A comparison converts at the average rate of the period (chapter 7’s ECB rates), and for a year that ends in January, the calendar year that holds eleven of its months.

**One-offs and what sits below operating profit.** For its fiscal years 2020 to 2023 Quadrature’s profit before tax exceeded its operating profit by £234 million, £250 million, £351 million and £179 million, mostly fair-value gains on investments. Its revenue comes from managing funds: “A portion of revenue is based on a fixed fee structure, and the rest is calculated by reference to the performance of the funds under management.” A margin computed on operating profit and one computed on profit before tax describe different businesses. Distributions have the same trap: in fiscal 2024 the statement of changes in equity records dividends of £1 329.4 million, while the cash-flow statement records £82.9 million of dividends paid in cash.

## 11.5 Per-head measures and their caveats

With the pitfalls in mind, six years of one entity whose employees, costs and revenue sit in the same accounts read cleanly. Quadrature Capital Limited is such an entity: a company, not a partnership, filing full accounts with the average number of employees and [staff costs](#def-in-reading-a-trading-firms-accounts-staff) in its notes.

**As of January 2025 — Six years of one London investment manager.**

| fiscal year | turnover | staff | employ- | staff cost | turnover | staff/ | profit | dividends |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| to January | £m | costs £m | ees | per head | per head | turnover | after tax | £m |
| 2020 | 140.6 | 116.7 | 68 | 1.72 | 2.07 | 83.0% | 244.2 | 4.0 |
| 2021 | 269.8 | 182.9 | 83 | 2.20 | 3.25 | 67.8% | 262.7 | 1.0 |
| 2022 | 778.6 | 409.0 | 98 | 4.17 | 7.94 | 52.5% | 525.6 | 0.0 |
| 2023 | 664.2 | 394.7 | 113 | 3.49 | 5.88 | 59.4% | 225.6 | 0.0 |
| 2024 | 588.2 | 408.0 | 143 | 2.85 | 4.11 | 69.4% | 49.6 | 1 329.4 |
| 2025 | 1 224.8 | 556.1 | 173 | 3.21 | 7.08 | 45.4% | 410.7 | 360.0 |

Per-head figures in £m. Fiscal 2024 and 2025 from the inline-XBRL accounts for the year to January 2025; 2020–2023 transcribed from the image accounts for the years to January 2021 and 2023. Every figure with its filing and page in `data/industry/filings_snapshot/`.

Staff cost per head ranged from £1.72 million to £4.17 million over the six years, and turnover per head from £2.07 million to £7.94 million (Figures [11.3](#fig-in-reading-a-trading-firms-accounts-quadrature) and [11.4](#fig-in-reading-a-trading-firms-accounts-perhead)). [Staff costs](#def-in-reading-a-trading-firms-accounts-staff) took between 45.4% and 83.0% of turnover: in the lean years they took most of it, and in the best years less than half. The pattern is Book 16, chapter 1’s compensation ratio at work, with variable pay absorbing part of the swing in revenue; that it does so here is visible, how it does so is not.

![Six fiscal years of one London investment manager: turnover, staff costs and profit after tax. Profit after tax exceeds turnover less costs in 2020–2023 because of fair-value gains on investments below operating profit. Data: the company’s accounts at Companies House, through in_accounts.quadrature.](https://one-course.com/images/onecourse/chapters/quant-17/in-reading-a-trading-firms-accounts/fig-eebf38e7f9ef.svg)

***Figure 11.3.** Six fiscal years of one London investment manager: turnover, [staff costs](#def-in-reading-a-trading-firms-accounts-staff) and profit after tax. Profit after tax exceeds turnover less costs in 2020–2023 because of fair-value gains on investments below operating profit. Data: the company’s accounts at Companies House, through `in_accounts.quadrature`.*

![The same entity per average employee. Staff cost per head moves with turnover per head but by less: from £1.72 million to £4.17 million while turnover per head moved from £2.07 million to £7.94 million. Data: as .](https://one-course.com/images/onecourse/chapters/quant-17/in-reading-a-trading-firms-accounts/fig-ea79197aaad2.svg)

***Figure 11.4.** The same entity per average employee. Staff cost per head moves with turnover per head but by less: from £1.72 million to £4.17 million while turnover per head moved from £2.07 million to £7.94 million. Data: as [Figure 11.3](#fig-in-reading-a-trading-firms-accounts-quadrature).*

Six caveats go with every per-head figure read from accounts.

1. **A mean over a skewed distribution.** In a firm whose pay is mostly variable, a few people take a large share; the typical employee earns less than the mean, and chapter 14 gives the medians that other sources allow.
2. **The numerator includes the employer’s costs.** [Staff costs](#def-in-reading-a-trading-firms-accounts-staff) include the employer’s social security costs (in Quadrature’s 2025 accounts, £74.4 million of £556.1 million) and pension contributions, which the employee never sees as pay.
3. **The denominator is an average.** A firm growing from 143 to 173 employees in a year spreads the year’s costs over people who were there for part of it.
4. **Timing.** Deferred awards reach the profit and loss account over their vesting period, so a year’s [staff costs](#def-in-reading-a-trading-firms-accounts-staff) mix this year’s pay with earlier years’ awards (chapter 13).
5. **Who is missing.** Partners and members, contractors and secondees are outside both halves of the fraction.
6. **Denominators of ratios.** Virtu Financial’s employee compensation took 12.1% to 17.2% of its reported revenues in 2020–2025, and 15.8% to 30.3% of its trading income alone. A market maker’s reported revenues are before its volume-driven costs (Book 16, chapter 1), a fund manager’s turnover is fees; a ratio built on one line is not comparable with a ratio built on another. Divided by the roughly 1 027 employees its 10-K reports at the start of 2026, its 2025 compensation was about $0.51 million a head, from a count at a date rather than an average.

Converted at 2024’s average rate of $1.2785 to the pound, Quadrature’s staff cost per head for the year to January 2025 is $4.11 million, against $1.25 million and $2.11 million in Jane Street’s partnership in 2024 and 2025. The comparison is legitimate as arithmetic and weak as evidence: a small investment manager’s employees against a large market maker’s London operation, whose members’ profit shares, larger than its [staff costs](#def-in-reading-a-trading-firms-accounts-staff), are outside the fraction.

## 11.6 Tutorial: five years at Companies House

**Goal.** Build a six-year table of one firm’s accounts from its filings, check it, and compute its per-head measures. **End state:** the table in the dated box above and Figures [11.3](#fig-in-reading-a-trading-firms-accounts-quadrature) and [11.4](#fig-in-reading-a-trading-firms-accounts-perhead).

1. **Fetch.** The chapter’s script `in_fetch.py` , run with a scratch directory as its argument, downloads the inline-XBRL accounts and SEC company facts into a scratch directory, which is never committed, and writes `quadrature_ixbrl.csv` and `virtu.csv` in `data/industry/filings_snapshot/` . The tests never touch the network: they read the snapshot, and a synthetic inline-XBRL document in `code/firm/filings/tests/` .
2. **Parse.** `firm.filings.parse_ixbrl(text, entity, source)` returns the facts, with the taxonomy concept kept in each fact’s note and the book’s short name ( `Revenue` , `StaffCosts` , `AverageEmployees` ) as its concept; concepts about a named director are dropped.
3. **Transcribe.** The older accounts are images. Their lines go by hand into `quadrature_pdf.csv` , one row per fact with its filing’s URL and page; a second reading checks every row.
4. **Check.** `Snapshot.load(…).problems()` lists facts without provenance and periods stated twice with different values; `reconcile` tests that operating profit equals its parts ([Listing 11.4](#lst-in-reading-a-trading-firms-accounts-reconcile)) and finds the mistagged sign of fiscal 2025. `def reconcile (self , entity, total, parts, tol=0.5 ): """Periods where total != sum(sign * part) beyond tol: [(end, stated, computed)].""" bad = [] for end, stated in self .series(entity, total): vals = [self .get(entity, c, end) for c, _ in parts] if any (v is None for v in vals): continue comp = sum (s * v for (_, s), v in zip (parts, vals, strict=True )) if abs (comp - stated) > tol: bad.append((end, stated, comp)) return bad` **Listing 11.4.** The snapshot checks its own arithmetic: a stated total against the sum of its parts. code/firm/filings/firm_filings.py
5. **Measure.** `in_accounts.quadrature()` computes the table; `firm.filings.to_statement` maps each year onto Book 16’s `Statement` for the ratios and the cost structure of `firm.firmecon` .

**What to change next.** Add the two missing Quadrature years’ own filings (fiscal 2022 and 2024) and check that their figures equal the comparatives used here; add a firm whose accounts are filed as [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl) for all five years and write a snapshot without transcription.

## 11.7 Build: the filings reader

**Purpose.** Read filed accounts into facts with provenance, for this chapter’s firm, chapter 12’s industry table and chapter 14’s pay sources.

**Interface.** `firm.filings`: `Fact`; `number(text, fmt, scale, sign)`; `parse_ixbrl(text, entity, source, keep_private)`; `companyfacts(doc, concepts, entity, source)`; `Snapshot` with `load`, `save`, `get`, `series`, `ends`, `problems`, `reconcile`; `months`; `per_head`; `to_statement(snap, entity, end, mapping, headcount)`. Python standard library only (the mapping reuses `firm.firmecon`).

**Rules.** Every fact carries a source and a locator (page, context or accession); the tag’s sign is the value’s sign; identical repeats are kept once; dimensional facts are kept but ignored by lookups; for company facts, annual 10-K periods only and the latest filing per period; concepts about named individuals are dropped unless explicitly requested.

**Acceptance tests.** `code/firm/filings/tests/`: on a synthetic document, formats, scales and signs give the right values, the duplicate and the nil fact are dropped, the dimensional fact keeps its member, the private concept is dropped, and the reconciliation flags the mistagged sign; on synthetic company facts, the restated value and not the first one is kept and quarterly periods are ignored.

**Stretch.** Read ESEF packages (a ZIP with the report and its taxonomy extension); resolve concepts through the taxonomy’s labels instead of a fixed alias table; parse the Companies House bulk files in a stream.

Sources and further reading

- Companies Act 2006, section 411; The Large and Medium-sized Limited Liability Partnerships (Accounts) Regulations 2008, Schedule 1.
- Companies House, Free Accounts Data Product; the accounts of Quadrature Capital Limited (years to January 2021, 2023 and 2025), Jane Street Europe Limited (2021, 2022, 2023 and 2025), Jane Street UK Partnership LLP (2023 and 2025) and Squarepoint Capital LLP (2025).
- SEC, Accessing EDGAR Data and EDGAR Application Programming Interfaces; XBRL company facts of Virtu Financial, Inc.; 17 CFR 240.17a-5; FINRA, eFOCUS.
- ESMA, Electronic Reporting (ESEF).
- Regulation (EU) No 575/2013, Article 450; Barclays PLC, Pillar 3 Report 2025.

## 11.8 Exercises

**Exercise 11.1 ★.**

From the facts of Quadrature’s accounts for the year to January 2025 (turnover £1 224.8 million, [staff costs](#def-in-reading-a-trading-firms-accounts-staff) £556.1 million, 173 average employees), compute staff cost per head, turnover per head and [staff costs](#def-in-reading-a-trading-firms-accounts-staff) as a share of turnover.

**Solution of Exercise 11.1.**

Staff cost per head $556.1/173=\pounds3.21$ million; turnover per head $1\,224.8/173=\pounds7.08$ million; [staff costs](#def-in-reading-a-trading-firms-accounts-staff) 45.4% of turnover.

**Exercise 11.2 ★.**

Jane Street’s partnership reported [staff costs](#def-in-reading-a-trading-firms-accounts-staff) of $434.9 million and an average of 483 employees for its first period, 25 October 2021 to 31 December 2022. Compute staff cost per head for the period and for a twelve-month year.

**Solution of Exercise 11.2.**

$434.9/483=\$0.90$ million for the 14-month period; over twelve months $0.90\times12/14=\$0.77$ million. The first period of a new entity also starts with a partial workforce, so even the annualised figure is only indicative.

**Exercise 11.3 ★.**

From the bank’s Pillar 3 bands in the dated box, how many of its staff were paid € 1 million or more, and what share of them less than € 2 million?

**Solution of Exercise 11.3.**

The bands sum to 717 people; $312+150=462$ of them, 64.4%, were paid less than € 2 million.

**Exercise 11.4 ★★.**

Quadrature’s 2025 facts give turnover £1 224.817 million, administrative expenses £686.012 million, other operating income tagged at $-$£17.751 million and operating profit £556.556 million. Reconcile, find the error, and say how a program should report it.

**Solution of Exercise 11.4.**

With the tagged sign, $1\,224.817-686.012-17.751=\pounds521.054$ million against the stated £556.556 million: a gap of £35.502 million, exactly twice the other income. With $+17.751$ the lines add up, so the tag’s sign is wrong, not the statement. A program should store the fact as tagged, report the failed reconciliation with both values, and apply a correction only as a documented override that keeps the original.

**Exercise 11.5 ★★.**

Convert Quadrature’s staff cost per head for the year to January 2025 to dollars at 2024’s average rate and compare it with Jane Street’s partnership in 2024 and 2025. Give two reasons the comparison is weak.

**Solution of Exercise 11.5.**

At $1.2785 to the pound, $3.21\times1.2785=\$4.11$ million, against $1.25 million (2024) and $2.11 million (2025) in the partnership. Weak because: the firms differ in business and size; the partnership’s members’ profit shares, larger than its [staff costs](#def-in-reading-a-trading-firms-accounts-staff), are outside its fraction; the fiscal years do not coincide; and both are means over skewed pay.

**Exercise 11.6 ★★.**

Why does dividing Jane Street’s partnership’s 2025 profit before members’ shares by its average number of members mislead? What share went to the largest member?

**Solution of Exercise 11.6.**

$1\,855.4/8=\$232$ million a member describes no one: the members include corporate entities, and the member with the largest entitlement, a corporate member, received 84.3% of the profit. That share leaves for the group; what individual members receive is not in the accounts.

**Exercise 11.7 ★★★.**

*Coding.* Load `virtu.csv` with `firm.filings` and compute employee compensation as a share of revenues and of trading income for 2020–2025. Which denominator moves more, and why?

**Solution of Exercise 11.7.**

Compensation over revenues: 12.1%, 13.4%, 16.5%, 17.2%, 15.1%, 14.5% (2020–2025); over trading income: 15.8%, 17.9%, 24.0%, 30.3%, 23.9%, 21.7%. The ratio on trading income moves more, because trading income fell by almost half from 2020 to 2023 while compensation stayed near $0.39 billion; revenues, which include other lines besides trading income, fell less.

**Exercise 11.8 ★★★.**

*Find the flaw.* “Jane Street Europe Limited earned $643 million of revenue in 2025 with five employees: $129 million per employee, the most productive trading staff in London.”

**Solution of Exercise 11.8.**

The company’s revenue is the share of group trading income that transfer pricing assigns to it, and its five employees are not the traders: since 2022 the London staff, 790 on average in 2025, are employed by the partnership and seconded as needed. Revenue per employee of an entity that does not employ the people who earn its revenue measures nothing. The group’s [consolidated accounts](#def-in-reading-a-trading-firms-accounts-consolidated), which would, are not among the UK filings.

## 11.9 Problem: Five Years at Companies House

**Problem 11.1.**

Weekend problem — five years at Companies House

A candidate with an offer from a London firm wants to know what its accounts say about pay, and how far to trust it. She chooses a company that files full accounts and has six years on the register.

**Part I — Finding the filings.**

1. Define a [company registry](#def-in-reading-a-trading-firms-accounts-registry) and [statutory accounts](#def-in-reading-a-trading-firms-accounts-registry) .
2. Name five kinds of public source for a trading firm’s finances.
3. What share of UK accounts does the register receive in machine-readable form, and what are the others?
4. Define a [FOCUS report](#def-in-reading-a-trading-firms-accounts-focus) . Which parts of a US broker-dealer’s filings are public?
5. Define a [Pillar 3 disclosure](#def-in-reading-a-trading-firms-accounts-pillar3) . What does it say about pay that no other filing does?

**Part II — Reading them.**

6. Define [staff costs](#def-in-reading-a-trading-firms-accounts-staff) and [average headcount](#def-in-reading-a-trading-firms-accounts-staff) , and give the law’s three parts of [staff costs](#def-in-reading-a-trading-firms-accounts-staff) .
7. Who is not in the [average headcount](#def-in-reading-a-trading-firms-accounts-staff) ?
8. Define [consolidated accounts](#def-in-reading-a-trading-firms-accounts-consolidated) and [members’ remuneration](#def-in-reading-a-trading-firms-accounts-members) .
9. Define [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl) . What do the context, unit, scale, sign and format of a tag give?
10. Why does the company-facts reader keep only the latest filing for each period?

**Part III — The six years.**

11. Give the firm’s turnover, [staff costs](#def-in-reading-a-trading-firms-accounts-staff) and average employees for fiscal 2020 to 2025.
12. Compute staff cost per head and turnover per head for each year.
13. Compute [staff costs](#def-in-reading-a-trading-firms-accounts-staff) as a share of turnover. When is it highest, and why?
14. Reconcile fiscal 2025’s operating profit and explain the discrepancy.
15. Why did profit after tax exceed operating profit in fiscal 2020 to 2023?

**Part IV — The verdict.**

16. Over six years, what share of profit after tax was paid out as dividends?
17. State the *named result* : the ranges of staff cost per head and turnover per head over the six years, and the share of profit after tax distributed.
18. Give three reasons the mean staff cost per head overstates what she will be paid.
19. Name two pitfalls that would have misled her had she chosen a partnership or a group entity instead.
20. In two sentences, what do the accounts tell her, and what do they not?

**Solution of Problem 11.1.**

1. A public register with which companies and partnerships file their constitution, officers, owners and accounts; the annual statements the law requires an entity to prepare, have audited unless exempt, and file.
2. Company registries; SEC EDGAR; listed firms’ annual reports; prospectuses and offering documents; banks’ divisional and Pillar 3 reports.
3. About 75% of about 2.2 million a year arrive electronically ( [inline XBRL](#def-in-reading-a-trading-firms-accounts-ixbrl) or XBRL); the rest are paper or image documents without tags.
4. The periodic Form X-17A-5 report of a broker-dealer’s financial condition, income and net capital, confidential; the annual audited statement of financial condition, filed as a separate document, is public.
5. A bank’s or large investment firm’s public report on capital, risk and remuneration; it counts the individuals paid € 1 million or more, in bands.
6. The costs of all persons employed in the year; the monthly average of persons employed under contracts of service; wages and salaries, social security costs, other pension costs.
7. Contractors, secondees from other group companies, and partners or members.
8. A parent and its subsidiaries presented as one entity, with intra-group transactions removed; what an LLP’s members receive: salaried amounts and automatic profit shares charged as an expense, plus profit divided at their discretion.
9. Human-readable XHTML whose numbers are tagged with taxonomy concepts; the context gives entity, period and dimensions, the unit the currency or measure, the scale the power of ten, the sign the sign, the format the separators.
10. Each period recurs in every later filing as a comparative, and a later filing may restate it.
11. Turnover £140.6, 269.8, 778.6, 664.2, 588.2, 1 224.8 million; [staff costs](#def-in-reading-a-trading-firms-accounts-staff) £116.7, 182.9, 409.0, 394.7, 408.0, 556.1 million; employees 68, 83, 98, 113, 143, 173.
12. Staff cost per head £1.72, 2.20, 4.17, 3.49, 2.85, 3.21 million; turnover per head £2.07, 3.25, 7.94, 5.88, 4.11, 7.08 million.
13. 83.0%, 67.8%, 52.5%, 59.4%, 69.4%, 45.4%: highest in fiscal 2020, when turnover was smallest, and lowest in fiscal 2025, when it was largest; part of pay does not scale with turnover.
14. Turnover less administrative expenses plus other income with the tagged sign gives £521.1 million against the stated £556.6 million; the other income is tagged negative although it is income.
15. Fair-value gains on investments below operating profit: £233.9, 249.7, 350.7 and 178.3 million.
16. Dividends of £1 694.4 million against profit after tax of £1 718.4 million: 98.6%.
17. Staff cost per head £1.72–4.17 million and turnover per head £2.07–7.94 million over fiscal 2020–2025; 98.6% of six years’ profit after tax distributed.
18. It is a mean over a skewed distribution; it includes the employer’s social security and pension costs; it mixes earlier years’ deferred awards into this year’s cost.
19. A partnership keeps its members’ profit outside [staff costs](#def-in-reading-a-trading-firms-accounts-staff) and may have corporate members; a group entity’s revenue is set by transfer pricing and its staff may be employed elsewhere in the group.
20. They tell her the firm’s scale, how its costs and pay move with its revenue, and that it pays out almost all its profit; they do not tell her what she, or a typical employee in her role, will be paid.

## 11.10 Interview questions

**Interview question 11.1 ★ researcher, developer.**

A filing shows an expense as (900). What value should a parser store, and where does the sign come from?

**Solution of Interview question 11.1.**

The value as tagged: 900 with no minus sign if the tag has none; the brackets are presentation. The sign attribute of the tag, and the concept’s balance (debit or credit) in the taxonomy, give the meaning.

*What the interviewer is looking for: separating presentation from data; knowing that expenses are usually tagged positive.*

**Interview question 11.2 ★ bank, risk.**

What is the difference between a bank’s [consolidated accounts](#def-in-reading-a-trading-firms-accounts-consolidated) and its parent company’s accounts, and which would you use to compare it with another bank?

**Solution of Interview question 11.2.**

[Consolidated accounts](#def-in-reading-a-trading-firms-accounts-consolidated) add the parent and its subsidiaries line by line and remove intra-group items; the parent’s accounts show the parent alone, with subsidiaries as investments. Compare consolidated with consolidated, at the same date and in one currency.

*What the interviewer is looking for: elimination of intra-group items; like with like.*

**Interview question 11.3 ★★ developer, mle.**

Design a pipeline that keeps a table of every UK trading firm’s [staff costs](#def-in-reading-a-trading-firms-accounts-staff) and headcount up to date from the register’s daily files. What do you store, and how do you handle restatements?

**Solution of Interview question 11.3.**

Download each daily file, stream its documents, keep those of companies in a list of trading firms (by SIC code and a curated list), parse the facts, and store each with company, period, concept, value, source file and filing date. Keep every version: a later filing that restates a period is a new row, and queries take the latest. Reconcile totals and flag failures rather than fixing them silently.

*What the interviewer is looking for: provenance, versioning of restatements, streaming, reconciliation.*

**Interview question 11.4 ★★ researcher.**

A firm’s revenue per employee doubled in a year. List the explanations that are not “the staff became more productive”.

**Solution of Interview question 11.4.**

A good year for the market or the strategy; a change of entity or of transfer pricing; staff moved to another group company or reclassified as contractors or members; a change of fiscal period; a currency move; a one-off gain in revenue; an acquisition consolidated late in the year.

*What the interviewer is looking for: entity and period effects before productivity.*

**Interview question 11.5 ★★ trader, bank.**

Why might a trading firm book its London revenue in one UK entity and its London staff in another?

**Solution of Interview question 11.5.**

Regulation (one entity holds the trading permissions and capital), legal form (a partnership suits profit sharing with members), tax and transfer pricing across the group, and the ability to second staff to several group entities.

*What the interviewer is looking for: regulatory capital, partnership economics, transfer pricing.*

**Interview question 11.6 ★★★ researcher, risk.**

Given six years of a firm’s revenue and [staff costs](#def-in-reading-a-trading-firms-accounts-staff), how would you estimate how much of its pay is variable, and what would make the estimate wrong?

**Solution of Interview question 11.6.**

Regress [staff costs](#def-in-reading-a-trading-firms-accounts-staff) on revenue across years (Book 16, chapter 1): the slope estimates the variable share per unit of revenue, the intercept the fixed part. Six points give a wide interval; headcount growth, deferred awards expensed over several years, and one-off costs all bias it.

*What the interviewer is looking for: the regression, its uncertainty with few points, and the timing of deferred pay.*
