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
- Searching a ticker
- Watchlist
- Creating an account
- Portfolios — holdings, performance tracking, risk metrics
- Portfolio Optimizer — how it works
- AI Analysis (Premium)
- Frequently asked questions
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:
| Category | Points | What it measures |
|---|---|---|
| Valuation | 20 | P/E, P/B, P/S, EV/EBITDA — is the stock priced reasonably? |
| Profitability | 20 | Net margin, ROE, ROA, FCF margin — how efficiently does the company make money? |
| Growth | 20 | Revenue growth, EPS growth — is the business expanding? |
| Financial Health | 20 | Debt/equity, current ratio, interest coverage — is the balance sheet solid? |
| Momentum | 20 | 52-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:
| Category | Points | What it measures |
|---|---|---|
| Valuation | 25 | P/E ratio, P/B ratio — how is the fund priced vs its holdings? |
| Performance | 25 | 1-year and 3-year returns — historical track record |
| Risk | 25 | Beta, standard deviation — how volatile is the fund? |
| Cost | 25 | Expense ratio — how much does it cost to hold? |
Rating scale
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.
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.
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.
Aggregate score formula
The portfolio aggregate score is the sum of each holding's score, weighted by its allocation percentage:
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.
Risk tab — automatic risk metrics
The Risk tab fetches live risk data for every holding automatically — no manual input required.
| Metric | What it means |
|---|---|
| Beta | How much the stock moves relative to the market (1.0 = in line with market) |
| Annualized Volatility | Standard deviation of daily returns over the past year, annualized |
| Max Drawdown (1yr) | Largest peak-to-trough decline over the past year |
| 52-Week Range | Current price relative to 52-week low and high |
| 1-Year Return | Price 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.
| Rule | Value | Why |
|---|---|---|
| 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 choice | Set 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.
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:
| Holding's beta | Risk penalty multiplier | Effect |
|---|---|---|
| ≤ 1.0 (low-risk) | 1.0 (no penalty) | Full weight from category score |
| 1.5 | ~0.82 | Slightly reduced allocation |
| 2.0 | ~0.71 | Meaningfully 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.
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:
| Stock | Growth | Valuation | Fin. Strength | Profitability | Momentum | Overall |
|---|---|---|---|---|---|---|
| AAPL | 85% | 45% | 80% | 88% | 72% | 74% |
| MSFT | 80% | 52% | 88% | 85% | 68% | 75% |
| BRK.B | 42% | 78% | 90% | 75% | 55% | 68% |
| TSLA | 75% | 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:
| Stock | Overall score | Old (greedy) | New (category) |
|---|---|---|---|
| AAPL | 74% | 35% | 26% |
| MSFT | 75% | 50% | 27% |
| BRK.B | 68% | 10% | 26% |
| TSLA | 58% | 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.
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.
| Situation | What you see |
|---|---|
| Not signed in | AI Analysis section is hidden |
| Signed in, cached report exists | Report 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 reached | Error 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.
Frequently asked questions
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.