Skip to main content

Revenue growth screen

This recipe ranks every company in one sector by year-over-year revenue growth in its latest fiscal year. It uses only the filings accepted by an as-of date, then reads each company's total return since that date. It uses the financials cross-section and the daily bars cross-section.

python
import os

import httpx

api = httpx.Client(base_url="https://api.tauric.ai",
headers={"Authorization": f"Bearer {os.environ['TAURIC_API_KEY']}"}, timeout=30)
SECTOR = "information-technology"
KNOWN_AT = "2026-03-31T16:00:00-04:00" # the close, New York time


def read_all(path, **params):
rows = []
while True:
page = api.get(path, params=params).raise_for_status().json()
rows += page["data"]
if page["next_cursor"] is None:
return rows
params["after"] = page["next_cursor"]


def bars(date):
return {row["instrument"]["key"].removeprefix("security:"): row["bar"]
for row in read_all("/v1/securities/history", date=date, sector=SECTOR)}


revenue = {}
for year in (2024, 2025, 2026):
for row in read_all("/v1/securities/financials", line="Revenue", fiscal_year=year,
sector=SECTOR, known_at=KNOWN_AT):
if row["value"] is not None:
revenue.setdefault(row["symbols"][0], {})[year] = row

growth = {}
for symbol, years in revenue.items():
latest = max(years)
if latest - 1 in years:
growth[symbol] = years[latest]["value"] / years[latest - 1]["value"] - 1
top = sorted(growth, key=growth.get, reverse=True)[:10]

start, end = bars("2026-03-31"), bars("2026-10-30")
for symbol in top:
row = revenue[symbol][max(revenue[symbol])]
total_return = end[symbol]["close"] / start[symbol]["close"] - 1
print(f"{symbol:6} revenue {growth[symbol]:7.1%} return {total_return:7.1%} {row['period_end']} "
f"{row['sources'][0]['accession']}")

A cross-section returns its rows in pages; the script sends each page's next_cursor as after until it is null (cross-sections).

known_at returns each company's value as of that instant, so a filing accepted later is left out. fiscal_year is the calendar year in which a company's fiscal year ends. Companies end their years in different months, so on one date some have filed a later year than others: the script reads three fiscal years and keeps each company's latest two. Each row's period_end shows the fiscal year compared, and its sources cite the filings behind the value.

The closes are adjusted closes (split_dividend_adjusted, price history), so the ratio of two is a total return. The end date's bar is settled; a bar whose status is unsettled can still change. The universe is today's listed companies, so the screen has survivorship bias: a company delisted after the as-of date is not ranked.