Section 04

The design

Every subsequent stage of the project traces to a written rule that predates it.

Claim tested

That a research process can be specified before it is built, rather than emerging from whatever the tooling happened to make easy.

Result

The specification held. Two of its rules turned out to be load-bearing in ways I had not anticipated.

Consequence

The anti-scope became the more useful half of the document.

Why write a specification at all

Because the alternative is that the process quietly becomes whatever the software can do. A screener with a scoring feature produces scores. A tool with a backtesting engine produces backtests. The design decisions then happen by default, made by whoever built the tool, for reasons that have nothing to do with the problem.

Writing the specification first meant the decisions were made deliberately, in advance, and could be pointed at afterwards when something went wrong. That last part turned out to matter more than the first.


Four founding premises

If a later change contradicted one of these, the premise had to be revisited explicitly rather than eroded quietly.

1. Edge is structural, not analytical. Analytical capability is commoditising. What persists is access to places institutional capital cannot go: too small, too illiquid, too foreign, too unaggregated.
2. Numbers from a database, reasoning from the model, judgment and decision from the human. Numeric data is never sourced from a language model. Judgment is never outsourced entirely. The final call is never automated.
3. The forward decision record replaces backtesting. A concentrated, judgment-driven strategy produces too few independent decisions for historical validation. The journal is the validation mechanism.
4. Approximately right beats precisely wrong. If a thesis requires a model to work out, it is too complicated. Coarse ranges, decomposed scores, no composite ranking.

Seven components

Specified in process order. Components 1 to 4 narrow the universe, 5 and 6 verify and decide, 7 records and reviews. Each has a proof-of-concept substitute, because the point of this summer was to run the process manually before writing a line of application code.

Seven-component process, left to right, with no loops: Market and Data Source Registry, Philosophy and KPI Directory, Investment Compass, and Screener narrow the universe; Knowledge Base and Review Cockpit verify and decide; Decision Journal and Watchlist records and reviews
#ComponentNatureProof-of-concept substitute
1Market & Data Source RegistryReference data, human-curatedMarkdown document
2Philosophy & KPI DirectoryVersioned rulesExcel and markdown
3Investment CompassScored filter, two levelsExcel worksheet
4ScreenerMechanical, deterministicExcel plus scripted data pulls
5Knowledge BaseDocument store and extractionFolder of filings plus conversation context
6Review CockpitHuman and model, structured workflowA long research thread
7Decision Journal & WatchlistAppend-only recordExcel, one row per entry

The anti-scope, which is the interesting half

Most specifications list what will be built. The more useful half of this one lists what will not be, and why. Each of these was tempting.

No composite scoring

Two names with an identical composite can be cheap-and-fragile and expensive-and-durable. The composite is precisely the field that hides this.

No backtesting engine

Too few independent decisions, and inputs that cannot be reconstructed point-in-time even in principle. Backtesting this would be theatre.

No numeric data from a language model

A plausible number and a correct number are indistinguishable on the page.

No technical signals

The most heavily mined dataset in existence. No structural reason a student finds something a systematic fund has not.

No automated decisions

The final synthesis is exactly the step where the tooling is least reliable.

The rules that earned their keep

No composite scoring killed the obvious first-pass valuation model. I had intended to produce a low, central and high value per company from screener data and rank by the gap to price. It does not work, for arithmetic rather than aesthetic reasons. The rule caught it before I built it.

Approximately right beats precisely wrong is why the screening stage disqualifies and orders but does not value. Precision at the wrong stage is not conservatism, it is a way of manufacturing confidence out of a dataset that cannot support it.

Full functional specification: functionalspec_portfolio.pdf ↗