The heart of ChartsBay is a small language for describing what you are looking for. Instead of clicking through preset filters, you write the condition the way you would say it.
A screen for companies keeping their operating margin above 15% is exactly that:
opm(0) > 15
The (0) means "the most recent reported quarter". Counting back from there
lets a condition talk about change rather than a snapshot. Sales higher than the
same quarter a year ago — four quarters back — is:
sales(0) > sales(4)
Fundamentals and price in one sentence
The usual workflow splits screening in two: a fundamentals screener over reported figures, a technical screener over price, and a spreadsheet where you intersect the results by hand. ChartsBay's conditions don't make that distinction. This is one screen:
eps(0) > eps(4) and sales(0) > sales(4) and opm(0) > opm(4) and close(0) > sma(200)
Earnings, sales and margin all improving on a year ago, in a stock trading above
its 200-day average — quality, growth and trend in a single readable line. For
price series, (0) is the latest completed daily candle and (1) the one
before it, so patterns are conditions too: close(0) > high(1) is a close above
the previous day's high.
Screens run themselves
A saved screen isn't something you re-type. It runs on a schedule after the close, against a market universe the platform maintains — index constituents or whole listing segments, kept in step with the published membership lists, so a screen over "the broad market" still means the broad market a year from now.
Everything runs on end-of-day data — daily candles and the weekly and monthly series derived from them. That is a deliberate choice, not a temporary limitation, and it fits how conditions like these are actually used: settled data, evaluated after the session, ready before the next one.
ChartsBay ships with a library of screens written in this language, each one a working example to copy and bend. More on those as the platform opens up.