CerbyFi
Stock & fund scoring — 100-point framework
← Back to app
← Back to CerbyFi

Help & Documentation

Learn how CerbyFi scores stocks and ETFs, how to use the watchlist and portfolios, and how the portfolio optimizer works.

📊 How scoring works

CerbyFi scores every stock or ETF on a 100-point scale. The score is split across multiple categories. Each category contains individual metrics. Every metric is evaluated against thresholds and assigned a score from 0 to its maximum. Category scores are summed to produce the total.

Stock categories

Stocks are evaluated across five categories worth 20 points each:

Stock scoring categories
CategoryPointsWhat it measures
Valuation20P/E, P/B, P/S, EV/EBITDA — is the stock priced reasonably?
Profitability20Net margin, ROE, ROA, FCF margin — how efficiently does the company make money?
Growth20Revenue growth, EPS growth — is the business expanding?
Financial Health20Debt/equity, current ratio, interest coverage — is the balance sheet solid?
Momentum2052-week price performance, beta — how has the stock behaved recently?

ETF / Fund categories

ETFs and funds are evaluated across four categories worth 25 points each:

ETF scoring categories
CategoryPointsWhat it measures
Valuation25P/E ratio, P/B ratio — how is the fund priced vs its holdings?
Performance251-year and 3-year returns — historical track record
Risk25Beta, standard deviation — how volatile is the fund?
Cost25Expense ratio — how much does it cost to hold?

Rating scale

70–100 ★★★★★ Excellent — strong across most categories
55–69 ★★★★☆ Good — solid fundamentals with some weaknesses
40–54 ★★★☆☆ Fair — mixed signals, investigate further
25–39 ★★☆☆☆ Weak — notable concerns in multiple areas
0–24 ★☆☆☆☆ Poor — significant red flags
Note: CerbyFi scores are for informational purposes only. A high score does not mean a stock will go up; a low score does not mean it will go down. Always do your own research.

🔍 Searching a ticker

Type any US stock or ETF ticker symbol into the search box and press Analyze. CerbyFi automatically detects whether it is a stock or an ETF — you do not need to choose.

  • 1Type the ticker in the search box (e.g. AAPL, NVDA, SPY, QQQ).
  • 2Press Analyze or hit Enter.
  • 3Results appear on the right. Click Show metrics on any category to see the individual metric breakdown.
  • 4Press + Watchlist to save the result for quick re-access later.
Tip: Results are cached for 24 hours. If you see a Cached badge next to the ticker, the data is from a recent lookup and no new API call was made.

Watchlist

The watchlist appears in the left sidebar. It holds up to 10 items. Each card shows the ticker, asset type, score, and a color-coded bar. Click any card to re-run the analysis.

A free account is required to use the watchlist. Your watchlist is saved to the server and synced across all your devices — sign in on any browser and your watchlist will be there.

If you click + Watchlist while not signed in, the sign-in prompt will open automatically.

👤 Creating an account

An account gives you a persistent watchlist, access to the portfolio feature, and the ability to view AI Analysis reports.

  • 1Click Register in the top-right corner.
  • 2Enter your name, email address, and a password that meets all four requirements: at least 8 characters, one uppercase letter, one number, and one special character (e.g. !, @, #).
  • 3Click Create account. You are logged in immediately and a verification email is sent to your address.

To sign back in later, click Sign in and enter your email and password. You stay signed in for 24 hours; after that you will be prompted to sign in again.

Tip: Your password is stored securely using bcrypt hashing. CerbyFi never stores your plain-text password.

💼 Portfolios

Portfolios let you group stocks and ETFs with a percentage allocation for each holding. CerbyFi calculates a weighted aggregate score across your entire portfolio — a single number that reflects how well the portfolio scores overall, weighted by how much of it each holding represents.

You must be signed in to use portfolios.

Creating a portfolio

  • 1Sign in to your account.
  • 2Click + New in the Portfolios section of the sidebar.
  • 3Enter a name (e.g. "Tech watchlist", "Retirement", "Speculative").
  • 4Your new portfolio appears in the sidebar. Click it to open the detail view.

Adding holdings

There are two ways to add a holding:

  • AVia search: Search for a stock or ETF using the main search box. With a portfolio open, click + Add [TICKER] to this portfolio. The button appears automatically when the analyzed ticker is not already in the portfolio.
  • BDirect add: Open the portfolio, type the ticker into the "Add ticker directly" input field, and press Add. This adds the ticker to the portfolio immediately — no analysis required beforehand. The holding will show N/A for score until you analyze it.

Editing allocations

Allocations represent what percentage of the portfolio each holding makes up. They must always add up to exactly 100%.

  • 1Open a portfolio and click Edit allocations.
  • 2Adjust the number inputs. A live total shows whether your allocations sum to 100%.
  • 3When the total shows ✓, click Save.
Note: The aggregate score only appears once all holdings have a score and all allocations are set. If any holding shows N/A for score, re-analyze that ticker first.

Aggregate score formula

The portfolio aggregate score is the sum of each holding's score, weighted by its allocation percentage:

Formula

Aggregate Score = Σ ( allocationi / 100 ) × scorei

For example, if you hold two stocks — AAPL at 60% allocation with a score of 80, and TSLA at 40% allocation with a score of 50 — your aggregate score would be: (0.60 × 80) + (0.40 × 50) = 48 + 20 = 68.

Performance tab — money tracking

The Performance tab tracks the actual dollar return of your portfolio, including price gains and dividends.

  • 1Open a portfolio and click the Performance tab.
  • 2For each holding, enter the number of shares, your average cost per share, and the original purchase date.
  • 3Click Save & Calculate Return. CerbyFi fetches the current price for each holding and looks up historical dividends since your purchase date.
  • 4A summary card shows total amount invested, current market value, dividends received, and total return (price gain + dividends).

Each holding shows a breakdown of its price gain, dividend income, and combined return. Clicking a ticker opens its full analysis.

Tip: After saving performance data, the Sync Allocations button appears. Click it to update your portfolio allocation percentages to match the actual current market value of each holding — so your allocations always reflect what you truly own today.

Risk tab — automatic risk metrics

The Risk tab fetches live risk data for every holding automatically — no manual input required.

Metrics fetched automatically
MetricWhat it means
BetaHow much the stock moves relative to the market (1.0 = in line with market)
Annualized VolatilityStandard deviation of daily returns over the past year, annualized
Max Drawdown (1yr)Largest peak-to-trough decline over the past year
52-Week RangeCurrent price relative to 52-week low and high
1-Year ReturnPrice change over the past 12 months

The tab also shows a portfolio-level summary: weighted beta and weighted volatility across all holdings, so you can see overall portfolio risk at a glance. Color-coding highlights holdings with high beta (>1.5) or high volatility (>40%) in amber or red.

Portfolio Optimizer — how it works

The optimizer recommends a new allocation across your current holdings that creates a balanced, real portfolio — one where every holding is given weight based on the unique strengths it contributes, not just its overall score.

It does not suggest new stocks to add or remove. It works only with the holdings you already have.

How to use it

  • 1Open a portfolio that has at least 2 holdings with scores. For best results, make sure each holding has been individually analyzed (so its full category breakdown is available).
  • 2Click Optimize for the standard category-complementarity run, or Optimize + Risk to additionally penalize high-beta (volatile) holdings.
  • 3A panel shows your current aggregate score, the optimized score, and the suggested allocation for each holding — including badges showing each holding's primary category driver.
  • 4Review the suggestions and click Apply Allocation to save, or dismiss without applying.

The algorithm — category complementarity

Each stock or ETF is scored across multiple categories (e.g. Growth, Valuation, Financial Strength, Profitability, Momentum). The optimizer uses all of these individual category scores — not just the overall total — to assign weight.

The core idea: a holding that is uniquely strong in a category where others are weak deserves more of your portfolio. Two holdings that are both excellent at Growth but mediocre at Valuation are redundant in that dimension — the portfolio should find the holding that covers Valuation better and give it appropriate weight.

Optimizer constraints
RuleValueWhy
Minimum per holding (floor)5%Every holding you added stays represented — nothing drops to zero
Default maximum per holding (cap)50%Prevents extreme concentration — no single stock dominates the portfolio
Per-holding custom cap (Max%)Your choiceSet a lower cap for any individual holding in the Edit Allocations panel

Here is what happens step by step:

  • 1Load category data. The optimizer looks up the full category breakdown for each holding from the score cache (e.g. AAPL's Growth score, Valuation score, Financial Strength score, etc.).
  • 2Compute fractional share per category. For each category, the optimizer divides each holding's score by the sum of all holdings' scores in that category. This gives each holding a fractional share — how much of the portfolio's "coverage" of that category it provides.
  • 3Sum across all categories. Each holding's fractional shares are added up across every category. A holding that tops Growth AND covers Valuation well earns more total credit than one that is simply average across the board.
  • 4Track the primary driver. The category in which each holding contributed the most credit is recorded as its driver. The optimizer result shows a badge (e.g. "Driver: Growth") so you understand why a holding received its suggested weight.
  • 5Apply per-holding caps. If you have set a custom Max% for any holding in the Edit Allocations panel, the optimizer honours that cap. Holdings that hit their cap are flagged with a "capped" badge.
  • 6Allocate proportionally. Every holding gets the 5% floor. The remaining allocation is distributed proportionally to the summed contributions, respecting the 50% global cap and any custom per-holding caps.
Key insight: A holding earns full credit in a category where it alone scores high. It shares credit proportionally when multiple holdings score similarly. This naturally rewards complementary holdings — stocks that cover different strengths — and prevents concentration in the top 1–2 scorers.

Optimize + Risk mode (beta-weighted)

Clicking Optimize + Risk runs the same category-complementarity algorithm but additionally applies a risk penalty to high-beta holdings. Beta measures how much a stock moves relative to the broader market:

How the risk penalty works
Holding's betaRisk penalty multiplierEffect
≤ 1.0 (low-risk)1.0 (no penalty)Full weight from category score
1.5~0.82Slightly reduced allocation
2.0~0.71Meaningfully reduced allocation
3.0+min 0.40 (floor)Maximum penalty applied

The penalty is 1 / √beta, floored at 0.40. This means a stock with a beta of 2.0 contributes only ~71% of the category-derived weight it would otherwise receive. The result badge shows the beta value used so you can see exactly what penalty was applied.

When to use it: Use Optimize for a pure fundamentals-based allocation. Use Optimize + Risk if you want to tilt the portfolio toward lower-volatility holdings while still respecting each stock's unique category strengths.

Per-holding maximum cap (Max%)

In the Edit Allocations panel, each holding has a Max% input alongside the regular Alloc%. Setting Max% to, say, 20% tells the optimizer: "never allocate more than 20% to this holding, no matter how strongly it scores." This is useful for speculative or high-risk positions you want to keep small.

If you leave Max% blank, the default 50% global cap applies. Holdings that are capped by their Max% show a capped badge in the optimizer results.

Worked example

Suppose you have a 4-stock portfolio. Their individual category scores (as %) are:

Per-category scores
StockGrowthValuationFin. StrengthProfitabilityMomentumOverall
AAPL85%45%80%88%72%74%
MSFT80%52%88%85%68%75%
BRK.B42%78%90%75%55%68%
TSLA75%28%55%48%82%58%

For each category, the optimizer computes each holding's fractional share. For example, in Valuation (total = 45+52+78+28 = 203):

  • ·AAPL: 45/203 = 22% · MSFT: 52/203 = 26% · BRK.B: 78/203 = 38% · TSLA: 28/203 = 14%

BRK.B earns by far the most Valuation credit because it is uniquely strong there while others are weak. This credit accumulates across all five categories to determine the final allocation:

Old vs. new optimizer result
StockOverall scoreOld (greedy)New (category)
AAPL74%35%26%
MSFT75%50%27%
BRK.B68%10%26%
TSLA58%5%21%

The old greedy approach concentrated 85% of the portfolio in the top two scorers (AAPL and MSFT) and left BRK.B and TSLA at near-zero despite their real contributions. The new algorithm recognises that BRK.B provides unique Valuation and Financial Strength coverage, and TSLA uniquely leads Momentum — giving both meaningful weight and producing a genuinely diversified portfolio.

What the optimizer does NOT do

  • It does not predict future performance. A high score today does not guarantee future returns.
  • It does not account for sector overlap, correlation, or macroeconomic risk.
  • It does not consider your personal risk tolerance or investment horizon.
  • It does not suggest adding or removing holdings — only rebalancing what is already there.
In short: The optimizer is a mathematical tool for finding a well-diversified allocation based on fundamental scores. Use it as one input among many, not as investment advice.

🤖 AI Analysis

An AI Analysis section appears below the score breakdown for any signed-in user. Whether you see a report, a generate button, or an upgrade prompt depends on your account tier and whether a cached report exists for that ticker.

Access levels
SituationWhat you see
Not signed inAI Analysis section is hidden
Signed in, cached report existsReport displayed immediately for free
Signed in (free), no cached report"No report available yet" — upgrade prompt
Premium, no cached report"Get AI Analysis" button to generate one
Premium, monthly limit reachedError shown — limit resets at the start of next month

Monthly generation limit

Premium users can generate up to 10 new AI reports per month by default (the limit is configurable by the site administrator). Reading a cached report that was already generated by someone else does not count toward your limit. The counter resets on the 1st of each month.

What the report includes

Each AI Analysis report is structured into 8 sections:

  • 1The Company & Its Story — background on the business and what it does
  • 2What the Score Reveals — interpretation of the CerbyFi score in context
  • 3Recent News & Developments — latest headlines and events affecting the company
  • 4What Analysts Are Saying — summary of analyst ratings and price targets
  • 5Public & Retail Sentiment — how everyday investors and the public are talking about the stock
  • 6Opportunities & Risks — key upside potential and downside risks
  • 75 Questions to Guide Your Research — curated questions to help you dig deeper
  • 8Where to Research Further — suggested sources and next steps

How it's generated

Reports are generated using Claude AI with live web search — up to 5 searches are performed to pull real-time news, analyst opinions, and public sentiment at the moment of generation. Because of this, generating a new report takes 30–90 seconds.

Caching

Reports are cached for 30 days. Once any premium user generates a report for a ticker, all signed-in users can read that cached report for free. A "Cached · Generated [date]" badge indicates a cached report. Reading a cached report does not count toward the monthly limit for anyone.

PDF download

A "↓ Download PDF" button is available on every report. Clicking it opens a new tab with a print-friendly version. Use your browser's print dialog (Cmd+P on Mac, Ctrl+P on Windows) and select "Save as PDF".

Refresh

If an administrator has enabled the Refresh flag for your account, a "↺ Refresh" button appears alongside the report. This forces a new report to be generated for that ticker, bypassing the 10-day cache. Refresh does not count toward your monthly limit.

Note: Premium access and the Refresh flag are granted by an administrator. Contact the site owner to request an upgrade.

Frequently asked questions

Why does a metric show N/A?
Some metrics are not available for all companies. For example, very small companies may not report all financials, or the data provider may not have that data point. N/A metrics score 0 for that metric.
Why does the same ticker sometimes return different scores on different days?
Scores are cached for 24 hours. After the cache expires, the next lookup fetches fresh data from the financial data providers. Company fundamentals update quarterly, so large swings between daily lookups are uncommon.
The optimizer shows the same score before and after. Why?
Your current allocations may already closely match what the category-complementarity algorithm recommends. This can happen if you manually built a balanced portfolio, or if your holdings have very similar per-category scores so no rebalancing produces a meaningful change.
What is the difference between Optimize and Optimize + Risk?
Optimize uses only each holding's category scores to find the most complementary allocation. Optimize + Risk does the same but then applies a penalty of 1/√beta to high-beta holdings, tilting the result toward lower-volatility stocks. Use Optimize + Risk when you want fundamentals-based diversification with an added preference for stability.
What does the "Driver" badge on an optimizer result mean?
The Driver badge shows the single category that contributed the most to a holding's recommended allocation. For example, if BRK.B shows "Driver: Valuation", it means BRK.B's unusually strong Valuation score is the main reason it received its suggested weight. This helps you understand why each holding is sized the way it is.
Why does a holding show "capped" in the optimizer results?
A holding is capped when the optimizer would have allocated more than its allowed maximum to it, but the cap limited it. The default cap is 50%. If you set a custom Max% for a holding in the Edit Allocations panel, that tighter cap is enforced instead. The excess weight is redistributed to other holdings.
Why does the Risk tab show an error for some tickers?
Risk metrics (beta, volatility, drawdown, 52-week range) are fetched live from Yahoo Finance. Occasionally this can fail if the ticker has limited trading history or if Yahoo Finance temporarily blocks the request. Try refreshing the Risk tab again — it often resolves on a retry.
Why does the optimizer give roughly equal weight to all my holdings?
Equal weights are the natural result when holdings have complementary strengths — each covers different categories well. If AAPL leads Growth, BRK.B leads Valuation, and MSFT leads Financial Strength, the optimizer gives all three similar weight because each is uniquely valuable in different dimensions. This is the intended behavior for a real, diversified portfolio.
Can I have more than one portfolio?
Yes. Click + New in the Portfolios sidebar to create as many portfolios as you like. Each is independent with its own holdings and allocations.
What happens to my watchlist if I sign out?
Your watchlist is saved server-side and is available whenever you sign back in. The watchlist requires an account — it is not available while signed out.
Does CerbyFi work for non-US stocks?
Not currently. CerbyFi only supports US-listed stocks and ETFs. International markets may be added in a future release.
Is this financial advice?
No. CerbyFi is an informational tool only. Scores are based on publicly available financial data and a fixed scoring framework. Nothing on CerbyFi constitutes investment advice. Always consult a qualified financial professional before making investment decisions.