{{ searchSuggestLabel }}
Type any company or ticker to add one from the wider market.
{{ r.head }}
Notifications
Loading notifications…

Could not load notifications.

You have no notifications yet.
This account is scheduled for deletion on {{ delDateLabel }}. Nothing has been deleted yet.
Equity research taught in full

Learn how to reason about a company, one layer at a time.

The Aperto framework is a structured research methodology built to teach. A layered analysis from economic moat to thesis invalidation is conducted so you can uncover the end-to-end reasoning behind a great business. No emotion, no market noise – just process.

NVIDIA NVIDIA Corporation NASDAQ: NVDA · as of 10 Jul 2026
What the layers found
An exceptional-quality business with a wide moat. Price sits at a 31% discount to its estimated value; timing indicators are still developing.
Why · quality
82.4/100
Wide moat
What · value
$293
range $218–$423
When · timing
Developing
one of two RS legs fired
How · thesis
Noise
1 of 8 tests on watch
Synthesis Patient

Four questions, asked in order. The framework is the product.

WHY01
Why invest in this business?

A core quality rating built from five structural pillars across Bear, Base, and Bull scenarios.

WHAT02
What is the business actually worth?

An intrinsic value range modeled through multiple valuation lenses, weighted against today's price.

WHEN03
When is the right time to buy?

Two admissibility gates and one measured relative-strength read, built purely for entry-timing discipline.

HOW04
How do you know if your thesis is broken?

An invalidation diagnostic checking the latest filings against eight key stress tests.

The teaching, not the tip

Analysis seamlessly integrated with education. Showing the work is the entire point.

01

Clarity over Clutter

Read the high-level investment thesis first, then unfold the deep dive to inspect the underlying quantitative models.

02

Context over Jargon

Hover over any unfamiliar financial metric to view an instant, plain-English definition without losing your place in the analysis.

03

Confluence over Precision

View corporate valuations through multiple distinct analytical lenses rather than a single price target, mapping out clear structural ranges of uncertainty.

Pricing

Scale your coverage, not your education.

Your plan
Basic
S$0
Free, forever
3 companies at a time
Full-depth reports on library tickers
Beginner / Deep-Dive disclosure
Methodology & in-text definitions
Priority in the coverage queue
Watchlist cross-compare
Your plan
Student ProBest value
{{ lpPlusPrice }}/mo
{{ lpPlusYear }}
{{ lpPlusHeadline }}
Everything in Basic
Priority in the coverage queue

When more companies qualify for generation than a single night allows, the ones requested by paying members are built first.

Socratic thesis coach
Agentic Debate chamber
Requires a verified school email
Your plan
Pro
{{ lpProPrice }}/mo
{{ lpProYear }}
Unlimited reports
Everything in Student Pro, no school email needed
Weekly digest & auto-refresh
Candidate Discovery & Theme Explorer
The teaching desk

Read a company the way a professional does — why, what, when and how.

{{ authTitle }}

{{ authSub }}

{{ authNoticeTitle }}
{{ authNotice }}
or

Aperto never uses your email for marketing, nor shares it with third parties.

Two-step verification

Your positions and locked theses live here.

Check your email

We sent a six-digit code to {{ otpEmailMasked }}. It expires in 10 minutes.

We sent a six-digit code to the email address on your account. It expires in 10 minutes.

{{ otpErrorText }}

Generating · {{ activeTicker }}

Producing a fresh report for {{ activeName }}.

This ticker is cold, so the engine is reading the filings and running all four layers. It's added to the shared library once complete — usually a few minutes. You'll see each layer land below as it finishes.

{{ genStage }} {{ genPctStr }}%
{{ g.mark }} {{ g.k }}
While you wait · how to read this

{{ genLessonT }}

{{ genLessonB }}

Not covered yet

This company is not covered yet.

{{ activeName }} is not in the shared library. Coverage is decided by demand: request it, and it enters the queue once enough people have asked. You will be told when it is queued and again when the report is ready.

{{ gateVoteCount }}

Requests decide which reports we generate next. They don’t start one, and nothing is charged.

{{ hdrLogoEl }}

{{ hdrName }}

Live figures as of {{ headerAsOf }}{{ hdrSub }}
Scored on {{ svDate }} with the current methodology (v{{ svVersion }}).
Scored on {{ svDate }} with methodology v{{ svVersion }}. {{ svBehindNote }}
Scored on {{ svDate }}. The record does not say which methodology version scored this analysis.
Next earnings: {{ nextEarnings }}
Updated report generating

{{ structBannerText }} {{ structFilingLabel }}

This report is no longer maintained

It has been removed from the active library and will not be refreshed. It was last produced {{ withdrawnSince }}.

This report is no longer maintained

It has been removed from the active library and will not be refreshed.

Business model
{{ bm.label }}: {{ bm.text }}
{{ bm.figClaim }}
Source · {{ bm.figSource }}
Commit your thesis before you read

What do you think, before the engine tells you?

Commit to your thesis before the data does. Aperto locks and timestamps your logic, then runs the critique.

Your stance
Conviction {{ thesisConv }} / 5
In one line, why?
Pre-mortem — what would prove you wrong? (optional)
Falsification parameters

The engine read these testable conditions in your thesis. Confirm or adjust the thresholds; each one is re-checked nightly against fresh statements, and a breach lands on your Falsification Feed.

{{ tt.label }} {{ tt.dirWord }} {{ tt.unit }}
“{{ tt.condition }}” ➔ {{ tt.impact }}
Checked in filings, not automatically
“{{ tm.condition }}” ➔ {{ tm.impact }}
Thesis drift
{{ reportDriftTitle }}
{{ reportDriftDetail }}
Your locked thesis {{ committedStanceLabel }} · {{ committedConvStr }}
Locked {{ committedDateStr }}

“{{ committedText }}”

Falsified if: {{ committedPre }}

{{ thesisValLine }}

Executive summary

An exceptional-quality business with a wide moat, anchored by CUDA-driven switching costs — with the price ~31% below the framework's estimated value, while timing indicators are still developing.

The framework's intrinsic value estimate is $293 per share (range $218 to $423) against today's $202.78. Cross-model agreement is very low, a coefficient of variation of 50%, so the value is read as a range anchored on the Primary DFCF lens, not a point. The technical layer returns a Developing timing read, and the thesis-invalidation diagnostic returns Noise, with one test on watch. Together the four layers point to a patient stance while the entry develops.

{{ execHeadline }}

{{ b.text }}
Catalysts
{{ c.n }}{{ c.text }}
Key risks
{{ c.n }}{{ c.text }}
Since last quarter {{ qdSpan }} {{ qdChangedNote }}
{{ qr.label }} {{ qr.from }} {{ qr.to }} {{ qr.chip }}

Every layer reads the same as it did on the prior filing. The business reported, and nothing in the assessment moved.

Thesis-invalidation tests that flipped
{{ qf.no }} {{ qf.name }} {{ qf.from }} {{ qf.to }}

The rest of this page is still rendering the earlier filing — a refresh has not yet picked up the newer quarter. The comparison above reads the newest assessment on record.

Compared between filings, not between refreshes: the assessment is only re-read when the company reports, so this is what the new filing changed. Price and margin of safety move daily and are deliberately excluded.

Since last quarter First quarter on record ({{ qdCurrentLabel }}). The comparison appears once this company reports again.
WHY Why should I invest in this business? {{ whyScoreStr }}/100 Not scored
This report has no quality score

{{ whyRefusalReason }}

{{ whyCoverageStr }}

This is a limit of the analysis, not a judgment about the company.

Five weighted sections roll up into the composite. The strongest evidence is exceptional management quality and a wide, three-source moat; the weakest is a competitive landscape where the biggest customers are also the most credible challengers. This is a hyper-growth compounder whose central risk is customer vertical integration, not demand.

{{ np.t }}

Scenario weighting · how the score is built 40 / 40 / 20 · Bear / Base / Bull
{{ v.label }} {{ v.scoreStr }}{{ v.w }}
Score stability {{ stab.label }} Bull−Bear spread {{ stab.spread }}

The composite ({{ whyCompositeStr }}) is a probability-weighted blend, deliberately downside-heavy (40% Bear). A wide Bull−Bear spread means the number leans on which scenario plays out — read it as a range, not a point.

How the three scenarios branch
Composite
{{ whyCompositeStr }}
prob-weighted
{{ b.label }}
{{ b.w }} wt
{{ b.score }}

{{ b.line }}

{{ s.name }} {{ s.tierLabel }} wt {{ s.weightStr }} {{ s.scoreStr }}

{{ bp.t }}

{{ s.figClaim }}
Source · {{ s.figSrc }}
The checks behind the number
{{ c.caret }} {{ c.label }} {{ c.valStr }}
{{ c.bandTier }}
{{ c.awardedHead }}
{{ c.awardedTxt }}
{{ c.betweenNote }}
{{ c.nextHead }}
{{ c.nextTxt }}
{{ c.anchorTxt }}
Bulls say
+{{ b.t }}
Bears say
{{ b.t }}
{{ s.rating }}Source · {{ s.src }}
Watch variable {{ s.watchName }}
{{ wr.k }} {{ wr.v }}

{{ s.verdict }}

Earnings diagnostic {{ edQuarter }} {{ edAsOf }}
1 · Topline vs expectations
{{ fr.name }} {{ fr.actual }} {{ fr.est }} {{ fr.chip }} {{ fr.yoy }}

The market prices the deviation from consensus, not the absolute print.

2 · Core engine
{{ edCatSegment }}
{{ edCatStated }}

“{{ edCatQuote }}”

No segment figure available — the call transcript is not covered for this name, or management stated none.

3 · Operating pressure
{{ pw.k }} {{ pw.v }} {{ pw.sub }}
{{ pf.label }}
4 · Forward pipe
{{ fw.k }} {{ fw.v }}
Management guidance
{{ gd.k }}: {{ gd.v }}
{{ edBacklogK }}: {{ edBacklogV }}

{{ edFwdNote }}

Consensus figures via FMP. Segment and guidance figures as stated by management on the call.
Earnings-call review {{ earnRevTitle }} {{ earnRevDate }}
What management said
{{ eh.t }}
How it bears on the thesis
{{ th.name }} {{ th.pillar }} {{ th.verdict }}

{{ th.ev }}

Bull read

{{ th.bull }}

Bear read

{{ th.bear }}

Call verdict {{ earnRevOvVerdict }} {{ earnRevOvNote }}

{{ ep.t }}

Summarised from the public earnings call. For research and education only, not advice.

This company's latest earnings call is not covered by our current transcript source, so there is no call review to show. Covered names surface management's own figures here alongside a read on how the call bears on the thesis.

WHAT What is the fair value of the business?
Frontier Speculative · no valuation anchor
Why there is no fair-value number here

{{ frStatement }}

{{ a.input }} {{ a.blocks }}
{{ r.t }}
Cash runway · what is measurable
Runway
{{ frRunwayStr }}
Cash + ST investments
{{ frCashStr }}
Total burn
{{ frBurnTotalStr }}
Operating · CapEx
{{ frBurnStr }}
{{ frCapexStr }}
{{ frRunwaySub }}.
{{ b.lab }}
Operating cash flow by fiscal year · bar height is magnitude, colour is sign
Dilution · diluted share count, year over year
{{ d.lab }} {{ d.val }}
What today's price assumes
Enterprise value
{{ frEvStr }}
Market cap
{{ frMcapStr }}
Net debt
{{ frNetDebtStr }}

The market is already paying this enterprise value for a business with no commercial revenue. That number is what today's price assumes the milestone map below will deliver; it is not a target, and Aperto does not counter it with one.

Milestone map · the company's own words
{{ m.cat }} {{ m.title }} {{ m.tf }}

“{{ m.quote }}”

Quoted verbatim from the 10-K filed {{ frFilingDate }}. Aperto extracts, it does not editorialise.

{{ frScenarioNote }}

Published intrinsic value
$293.33
Today
$202.78
↓ 31% vs IV
price $218 IV $293 $423

Value is shown as a range, not a single false-precise number. The anchor is the Primary DFCF lens; because cross-model agreement is very low (CV 50%), the framework anchors on that lens rather than blending. Today's price sits below even the range floor — the reverse-DCF panel below shows what growth the market is actually paying for.

{{ whatOverview }}

No published value The lenses disagree too widely for one figure

{{ whatRefusalReason }}

Primary lens · one disagreeing view, not an answer
{{ whatPrimaryLensIvStr }}
{{ whatPrimaryLensName }}
Full lens range
{{ whatRangeStr }}
span across every lens in the cluster below
Valuation lenses
{{ l.mathHead }}

{{ l.mathIntro }}

Growth fade · per year
{{ g.year }} {{ g.mu }}
{{ row.label }} {{ row.note }} {{ row.value }}
{{ l.mathFormula }}
{{ anchorRowLabel }} $293.33 {{ anchorIvStr }} market-implied $294 {{ cvNote }}
Where each lens lands
{{ l.model }}{{ l.tierLabel }} · {{ l.role }} {{ l.ivStr }}
{{ ffAxis0 }} {{ ffAxis1 }} {{ ffAxis2 }} {{ ffAxis3 }} {{ ffAxis4 }}
Reverse DCF

Solved backwards from today's price, the market is implying about {{ revMarketStr }} annual free-cash-flow growth. The forward growth reference sits near {{ revBaseStr }}. The gap is the judgement you're handed — is the market too cautious, or the forward view too generous?

0% market {{ revMarketStr }} {{ revBaseShort }} {{ revBaseStr }} {{ revScaleMaxStr }}
Market-implied growth
{{ revMarketStr }}
{{ revBaseLabel }}
{{ revBaseStr }}
Custom Valuation

Pick a method, edit the inputs, and formulate your valuation. {{ valAsOfStr }}

{{ m.label }} {{ m.reason }}
{{ valMethodLabel }} Bear Base Bull
{{ r.label }} {{ r.hint }} {{ c.unit }} {{ c.loStr }}{{ c.hiStr }} {{ c.engineStr }}
{{ o.label }}
{{ o.valueStr }}
{{ o.upsideStr }}
{{ o.upsideStr }}
{{ o.badMsg }}
Fix the inputs first Lock a thesis first Use these in my thesis · Pro {{ valThesisProReason }}

{{ valThesisMsg }}

{{ e.msg }}

{{ valReadLine }}

{{ valEngineLine }}

{{ valEngineNote }}

{{ valStandingNote }} Saved to your account. Saved in this browser only. Could not save to your account, kept in this browser.

Sampling the four assumptions around your current settings across {{ mcN }} runs, today's price of {{ mcPriceStr }} sits at roughly the {{ mcPricePctileStr }} percentile of modelled intrinsic values — most simulated outcomes land above it. The spread is the uncertainty the single number hides.

{{ mcAxisLoStr }} price median {{ mcAxisHiStr }}
10th pct (bear)
{{ mcP10Str }}
Median
{{ mcP50Str }}
90th pct (bull)
{{ mcP90Str }}
Bars inside the 10th–90th percentile are highlighted. Move the sliders above, then re-run to see the distribution shift.
Simulations per run{{ mcSimsStr }}
500 · fast20,000 · smooth

More simulations smooth the distribution at the cost of speed. Adjust, then re-run.

Run a Monte Carlo simulation to see the full distribution of intrinsic values implied by your assumptions — not one number, but the whole range of outcomes and where today's price falls within it.

Simulations{{ mcSimsStr }}
500 · fast20,000 · smooth

Intrinsic value at every pairing of discount rate and terminal growth, holding growth and margin at base. Green sits above today's price, red below; the bordered cell is the published base case. Two assumptions, the whole answer space.

{{ c }} {{ r.label }} {{ c.ivStr }}
rows = WACC · cols = terminal growth below priceabove price

Macro reaches a valuation through two doors: the discount rate (Fed policy, risk appetite, credit conditions) and the cash flows (demand, margins). The first three sliders recompose WACC from the engine's own decomposition; the fourth shocks the cash-flow path. Terminal growth stays untouched: that lever is in the table above, not this dial.

{{ d.label }}{{ d.absStr }}
{{ d.valStr }}
Macro-adjusted intrinsic value
{{ macroIvStr }}
{{ macroDeltaPubStr }}
Discount rate
{{ macroWaccBaseStr }} → {{ macroWaccNewStr }}
{{ macroDWaccStr }}
vs today's price
{{ macroUpsideStr }}
{{ macroCfStr }}
Scenario arithmetic on the published model, read off the engine's own sensitivity grid. Not a forecast.

Custom valuation is a paid feature

Upgrade to run your own bear, base and bull cases across six valuation methods, with sliders seeded from the engine's own numbers, and the DCF distribution, sensitivity matrix and Macro Dial beside them.

Every figure above, as a live spreadsheet
WHEN When is the right time to invest? {{ railWhenLine }}

Price sits at a qualified support floor and a fresh MACD cross has fired, so both admissibility gates cleared. What separates a developing read from an aligned one is relative strength, and here one of its two legs fired.

Timing verdict
{{ railWhenLine }}

{{ whenVerdictRead }}

This is a flag, not a ranking. It marks a cohort; it does not order the names outside it.

Relative strength
{{ g.label }} {{ g.sub }} {{ g.value }} {{ g.note }} {{ g.ptsStr }}
What else the layer looked at
{{ w.mark }} {{ w.label }} {{ w.purpose }} {{ w.reading }} {{ w.block }}
{{ f.label }} {{ f.sub }}
{{ f.value }}
{{ f.label }} {{ f.sub }}
{{ f.value }}

{{ whenChecksLine }} The verdict above does not come from this count.

HOW How do I know if the thesis has been invalidated? {{ railHow }}

Eight structured tests against the latest filings. No test has failed — one sits in Watch: regulatory license, on a French Competition Authority inquiry plus expanding export controls. This is thesis noise, not invalidation. Next re-underwrite: 26 Aug 2026.

{{ howNarr }}

Source · each test cites the latest 10-K (FY26) & 10-Q (Q1 FY27)
{{ howReviewLine }}
{{ howReviewLine }}
{{ h.n }} {{ h.name }} {{ h.verdict }}

{{ h.note }}

Thesis triggers {{ trigAsOf }}
{{ tg.chip }}
{{ tg.label }} Current: {{ tg.now }}  |  {{ tg.thrLabel }}: {{ tg.thr }}
{{ tg.impact }}
{{ tg.t }}
Filing-review items — not statement-checkable
{{ tm.src }} {{ tm.c }} {{ tm.im }}
{{ tm.t }}

A live check against the latest financial statements. Re-checked nightly as new statements land.

Educational reference points — not advice.

Price Chart
Chart unavailable — TradingView could not be reached.

Chart data by TradingView; quotes may be delayed.

Loading price history…
Price history unavailable.

{{ historyStampV }}

Figures as reported by TradingView

{{ a.sev }} {{ a.test }}
{{ a.headline }}
{{ a.meta }}

{{ a.rationale }}

Automated news matching against this company's falsification tests. Verify against the primary source and the test's criterion yourself — this is a pointer, not advice.

Every figure in this report is traceable to a primary filing. This is sourced evidence for you to interpret — not advice.

{{ p.label }} {{ p.source }} {{ p.date }}
FORUM What are other readers saying?
Your stance
Conviction {{ discConvictionVal }} / 5

{{ discFromThesisText }}

{{ discComposerError }}

These posts are reader opinion, not Aperto's analysis. Each one is timestamped against the share price at the time it was posted.

Loading posts…

Could not load posts.

{{ discEmptyText }}

{{ post.author }} {{ post.stanceLabel }} · {{ post.convictionStr }} {{ post.createdStr }} edited {{ post.priceStr }}

{{ post.tombstoneText }}

{{ post.editError }}

{{ post.bodyText }}

Delete this post?

{{ post.replyError }}

{{ r.author }} {{ r.createdStr }} edited {{ r.priceStr }}

{{ r.tombstoneText }}

{{ r.editError }}

{{ r.bodyText }}

Delete?
Watchlist

Active Coverage

{{ systemDateStr }} · {{ utcClockStr }} · {{ marketCountdownStr }}
Hold a row to reorder. Quotes may be delayed.
{{ slotMeterLabel }} {{ tierLabel }}
{{ slotUsedNum }} / {{ slotTotalStr }}
Company Price Why Quality Value
(Published IV)
When How Synthesis
{{ r.logoEl }} {{ r.name }} {{ r.identSub }} {{ r.price }} {{ r.chg }} {{ r.why }}{{ r.whyMax }} {{ r.quality }} {{ r.iv }} {{ r.mos }} {{ r.ivRange }} {{ r.whenWord }} {{ r.how }}{{ r.how }} {{ r.synth }}
{{ r.logoEl }} {{ r.name }} {{ r.identSub }} Not filed
Funds
{{ f.logoEl }} {{ f.name }} {{ f.sub }} Not filed
Exchange-Traded Fund Price Why Quality Value When How Synthesis
{{ f.logoEl }} {{ f.name }} {{ f.sub }} {{ f.price }}{{ f.chg }} {{ f.why }}{{ f.whyMax }} {{ f.quality }} {{ f.iv }} {{ f.whenWord }} {{ f.how }}{{ f.how }} {{ f.synth }}

{{ watchUpdatedStr }}. Prices via Financial Modeling Prep.

This week in your watchlist
{{ digestWeekLabel }}
Your watchlist is empty. Follow a company to track what changes in its quality, valuation, timing and thesis checks week over week.
Re-reading your holdings…
{{ d.tag }}
{{ d.head }}
{{ d.body }}

A factual diff of what the engine re-read — evidence to interpret, not alerts to act on.

No material changes this week. The engine re-read your holdings and quality, valuation, timing and the thesis checks all held steady.
The weekly digest is a Pro feature

Pro re-reads every holding each week and shows a factual diff of what changed — layer by layer, evidence to interpret rather than alerts to act on.

{{ heatTitle }}

{{ heatUpdatedPrefix }}{{ heatCountdownBody }}{{ heatUpdatedSuffix }}

{{ heatCoverageStr }}

Economic calendar

US releases, medium & high importance. Data by TradingView.

Market regime
CONDITIONS {{ regimeRisk }} TREND {{ regimeTrend }} {{ regimeConfirmLabel }}
Reading the engine’s latest nightly snapshot…
The regime snapshot is temporarily unavailable.

{{ regimeSummary }}

{{ ln.title }} {{ ln.band }}
{{ ind.label }} {{ ind.detail }} {{ ind.valueStr }}

{{ ln.note }}

{{ w.title }}

{{ w.body }}

Where the numbers come from
Reading Indicator Source
{{ src.reading }} {{ src.indicator }} {{ src.source }}

{{ regimeSourceNote }}

{{ regimeFootnote }}

Market moves

We only surface major moves:

a) Broad market: flagged when the day move of the SPY is ≥ 1.5%. SPY's typical day is ~0.8%, and 1.5% is roughly two standard deviations from this mean. Only ~5% of days exhibit such a move.

b) A watchlist stock: flagged when the move exceeds 2× its own 20-day average daily range, with a floor of 4%. A relative approach is adopted to account for the differing volatilities of each stock.

Checking the market and your watchlist…
No major moves in the broad market or your watchlist today.
Live market data is temporarily unavailable — we couldn't reach the data source.
{{ m.label }} {{ m.name }}
{{ m.pctLabel }}
{{ drv }}
{{ m.disclaimer }}
Decision journal

Judge the decision, not the result.

Every thesis you lock before reading a report lands here. The point isn't whether the trade worked — it's whether your process was sound. Strong process with a poor outcome is just variance; thin process with a good outcome is luck you can't repeat.

Process × outcome
Weak outcome · strong outcome →
Lucky Earned Deserved loss Unlucky {{ e.ticker }}
← thin process rigorous process →
Logged
{{ journalCountStr }}
Average process score {{ journalAvgStr }}
How to read it

Your decisions sit on the horizontal axis the moment you lock them — that's process, fully in your control. They rise or fall vertically only as outcomes resolve over time.

your locked decision
illustrative example
Logged decisions
{{ e.name }} {{ e.exchange }}: {{ e.ticker }} {{ e.stanceLabel }} · {{ e.convStr }}
Locked {{ e.dateStr }}

“{{ e.text }}”

Falsified if: {{ e.pre }}

Process {{ e.procLabel }}
Outcome
mock · demo
Thesis health {{ e.healthLabel }} {{ e.healthSummary }}
Your falsification condition: {{ e.preStatus }}
Locked parameters
“{{ jp.condition }}” {{ jp.word }}
{{ jp.meta }}
Calibration · conviction vs outcome

Over time this plots how confident you were against how the decision actually resolved. Well-calibrated investors sit near the diagonal — high conviction earning strong outcomes, low conviction on the ones that didn't work. Your decisions appear on the conviction axis the moment you lock them and rise or fall as outcomes resolve.

poor outcome · strong outcome →
well-calibrated → {{ p.ticker }}
← low convictionhigh conviction →
Concepts you've met
{{ conceptsMetCount }} / {{ conceptsTotal }} framework terms encountered as you read
{{ cm.t }}

Hover any dagger-marked term in a report to add it here. This is a quiet map of the vocabulary you've built — no streaks, no points, just coverage.

No decisions logged yet.

Open any company, switch to Deep Dive, and lock your thesis before the analysis reveals. Each locked thesis becomes a journal entry here — scored on process, tracked on outcome.

Falsification feed

The evidence against you, on purpose.

Once a thesis is locked, confirmation bias does the rest. This feed inverts it: every locked parameter is re-checked nightly against fresh statements, and library watchdog headlines that press on a thesis land here too. Nothing on this page validates you.

{{ feedSummary }}

Aperto
Re-checking your locked parametersSweeping fresh statements for breachesCollecting watchdog headlines
{{ fa.sevLabel }} {{ fa.testName }}
{{ fa.dateStr }}
{{ fa.title }}
{{ fa.detail }}
Read the source ↗
{{ fa.resLabel }}

Nothing challenging your theses yet.

Lock a thesis with falsification parameters and the nightly sweep starts hunting for evidence against it. Quiet here is earned, not assumed.

Portfolio

What you actually hold.

Positions weight the loop by real exposure. Each tile is sized by market value and coloured by thesis health: your locked conviction, blended with the engine's margin of safety and timing read. A drift badge means the Falsification Feed has evidence against a position you still hold.

{{ portSummary }}

Add or update a position

A repeat entry for the same ticker replaces the holding. Averaging across lots is your arithmetic, not ours. Leave shares and cost blank to record a thesis-only holding — the heatmap will still colour it by conviction, just without a dollar value.

Import from a brokerage CSV

Paste an exported positions CSV (Fidelity, Schwab, Robinhood, IBKR — any export with a symbol, quantity and cost column). Columns are matched by header keyword, not exact name; the header row is required.

{{ portImportSummary }}

{{ portImportSkippedStr }}

Aperto
Fetching your positionsPricing each holding liveWeighing thesis health
Thesis Heatmap area = market value · colour = conviction + margin of safety + timing · ⚠ = active drift

Grey tiles have no locked thesis or library report to read health from. Positions without a live quote are sized at cost basis. Thesis-only positions (no shares recorded) get a flat placeholder area — they carry no market value to size a tile by.

PositionSharesAvg costPriceMarket valueP&L
{{ pr.entryStr }} {{ pr.sharesStr }} {{ pr.costStr }} {{ pr.priceStr }} {{ pr.valueStr }} {{ pr.pnlStr }}
Total {{ portTotalValue }} {{ portTotalPnl }}

Prices via the live quote proxy; may be delayed. Educational reference only, never advice. Positions are your own assertions and never leave your account.

No positions recorded yet.

Add what you hold and the Thesis Heatmap will weight every locked thesis, margin of safety and drift alert by your real exposure.

Candidate Discovery

Screen the market in plain language.

Describe what you are looking for. Aperto reads the request into explicit filters and shows them back to you, then runs them over the covered library where the engine has real scores, and over the wider market where it does not. No score is ever invented for a company without a report.

Discovery is a Pro tool.

Natural-language screening over the covered library and the wider market, with the parsed filters and data provenance shown on every result.

Try
Or build a screen directly — no language model involved
Cap Moat
Sector
Aperto
Reading your request into filtersScreening the covered libraryScanning the wider market
{{ discErrorMsg }}
How your request was read

{{ discExplain }}

{{ ch.label }}
In the covered library {{ discCovSummary }}
CompanySectorCapPriceMoatMOSWHENHOW
{{ cr.name }} {{ cr.sector }} {{ cr.capStr }} {{ cr.priceStr }} {{ cr.moatStr }} {{ cr.mosStr }} {{ cr.whenStr }} {{ cr.howStr }}

Margin of safety is re-derived from the live price against each report's intrinsic value. Sorted by margin of safety.

No covered company matches every filter. The engine never relaxes a filter silently. Loosen the request, or request a report for one of the candidates below.
Data trace: {{ discTraceTicker }}
{{ tg.source }}{{ tg.asOf }}

{{ tg.note }}

{{ tf.k }} {{ tf.v }}
Beyond the library
CompanySector · IndustryCapPriceBeta
{{ dr.ticker }}{{ dr.name }} {{ dr.sectorInd }} {{ dr.capStr }} {{ dr.priceStr }} {{ dr.betaStr }}

{{ discCandNote }}

Educational reference only, never advice. Screening data by FMP; quotes may be delayed.

Theme Explorer

Start from an idea, not a ticker.

Describe a trend or a structural thesis in plain language. Aperto breaks it into an upstream, midstream and downstream value chain, then grounds every company against a live profile and the scores the engine has already earned. Any name it cannot verify is dropped, never invented.

Try
Conversational dissection is a Plus feature. Browse the curated themes below, or upgrade to start from any idea you can put into words.
Aperto
Reading the thesisMapping the value chainGrounding every name against live profiles
{{ exploreErrorMsg }}
Conversational dissection is a Plus feature.
How Aperto read it

{{ exRestated }}

{{ c.t }}
Aggregate MOS
{{ exMosStr }}
Theme pure-play
{{ exPpStr }}
Quality (WHY)
{{ exWhyStr }}
Timing (WHEN)
{{ exWhenStr }}

{{ exCovStr }}

{{ ln.label }}
{{ g.role }}
Chokepoints · structural
{{ cp.title }}
{{ cp.reason }}

Flagged by arithmetic alone: a link that grounds to two or fewer verifiable public companies, or where one name carries at least 65% of the link's market value.

Harvest phase · monetizers
{{ exMonetizers }}
CapEx phase · builders
{{ exBuilders }}
Devil's advocate
{{ d.risk }}
{{ d.detail }}
Systemic risk · falsification hooks
{{ sr.head }}
{{ sr.detail }}

{{ exSystemicNote }}

{{ exDeferredNote }}

Educational reference only, never advice. The value chain is generated, then every constituent is validated against a live profile before it is shown.

Aperto
Opening the themeRanking scored constituentsPulling live market figures
The theme could not be loaded. Check the connection and try again.

{{ themeName }}

{{ themeNarrative }}

{{ themeRankNote }}

Scored by the engine
CompanySectorCapPriceMoatWHYMOSWHENHOW
{{ tc.name }} {{ tc.sector }} {{ tc.capStr }} {{ tc.priceStr }} {{ tc.moatStr }} {{ tc.whyStr }} {{ tc.mosStr }} {{ tc.whenStr }} {{ tc.howStr }}
Not yet scored
CompanySector · IndustryCapPrice
{{ tu.ticker }}{{ tu.name }} {{ tu.sectorInd }} {{ tu.capStr }} {{ tu.priceStr }}

{{ themeUncovNote }}

Educational reference only, never advice. Theme membership is curated and validated against live company profiles, not generated on the fly.

Or start from a curated theme.

Each theme is a curated narrative about where durable value might sit, with its constituents ranked by the scores the engine has already earned. Companies without a report show live market figures only; a score is never invented to make a theme look complete.

Aperto
Loading curated themesCounting engine coverageArranging the narratives
Themes could not be loaded.

ETF Research is a Pro tool.

Fund portfolios from primary SEC filings, with the engine's scores aggregated across every holding Aperto has covered and an honest account of what it has not.

Aperto
Locating the fund's SEC filingParsing reported holdingsWeighing engine coverage
{{ etfErrorMsg }}
{{ etfTicker }} {{ etfName }} {{ etfMetaStr }}
{{ etfAsOfStr }} CACHED — SEC UNREACHABLE
{{ etfCoveragePctStr }} of fund net assets scored by Aperto

{{ etfCoverageNote }}

WHY · business quality
{{ etfAggWhy }}
MOS · margin of safety
{{ etfAggMos }}
WHEN · timing
{{ etfAggWhen }}
HOW · thesis status by weight
{{ hc.label }}

Weighted by each holding's share of fund net assets, renormalised over the covered slice only.

Covered holdings
HoldingWeightWHYMOSWHENHOW
{{ ec.name }} {{ ec.weightStr }} {{ ec.whyStr }} {{ ec.mosStr }} {{ ec.whenStr }} {{ ec.howStr }}
None of this fund's holdings are in the covered library yet, so there is nothing honest to aggregate. Request reports for its largest holdings and the exposure fills in once they're covered.
Top holdings · green dot = scored
{{ et.label }} {{ et.sub }} {{ et.weightStr }}
Sector weightings (fund-reported)
{{ es.label }}

Educational reference only, never advice. Holdings per the fund's SEC N-PORT filing; fund metadata by FMP; figures may be delayed.

{{ etfrLogoEl }}

{{ etfrName }}

{{ etfrLiveMeta }} CACHED — SEC UNREACHABLE
Fund profile
{{ pr.label }}: {{ pr.text }}
{{ etfrProfileFootnote }}
Fund profile

{{ etfrOverview }}

Top Holdings Green dot = scored by Aperto
{{ th.name }} {{ th.weightStr }}
Sector weightings (fund-reported)
{{ sr.label }} {{ sr.weightStr }}
{{ etfrPortfolioAsOf }}
Commit your thesis before you read

What do you think, before the engine tells you?

Commit to your view on this fund before the data does. Aperto locks and timestamps your logic, then runs the critique.

Your stance
Conviction {{ thesisConv }} / 5
In one line, why?
Pre-mortem — what would prove you wrong? (optional)
Your locked thesis {{ committedStanceLabel }} · {{ committedConvStr }}
Locked {{ committedDateStr }}

“{{ committedText }}”

Falsified if: {{ committedPre }}

Executive summary

{{ etfrExecHeadline }}

{{ b.text }}
Catalysts
{{ c.n }}{{ c.text }}
Key risks
{{ c.n }}{{ c.text }}
WHY Why should I own this fund? {{ etfrQuality }}/100

The five-pillar business-quality read, weighted across every holding Aperto has scored. Each pillar states the share of fund assets its score is drawn from, so a thin slice never masquerades as the whole fund.

{{ pl.name }} {{ pl.covBadge }} wt {{ pl.weightStr }} {{ pl.scoreStr }}

{{ pl.analysis }}

Synthesis — the fund's core

{{ etfrSynthesis }}

Fund construction
{{ cf.k }} {{ cf.v }}
Moat mix (by weight)
{{ mc.label }}
WHAT What is the fund's margin of safety? {{ etfrSafety }}

A fund has no single intrinsic value, but it has a weighted margin of safety. {{ etfrMethodology }}

Weighted margin of safety
{{ etfrSafety }}
implied fund IV {{ etfrFundIv }} vs price {{ etfrPrice }}
Valuation coverage
{{ etfrValCov }}
of assets carry a numeric IV · {{ etfrFrontierW }} pre-revenue
Correlated stress band
{{ sb.label }}
{{ sb.valStr }}

{{ etfrStressNote }}

Switch to Deep Dive for the per-lens valuation aggregation across the covered holdings.

Valuation lensHoldingsCoverageWeighted MOS
{{ lr.name }} {{ lr.nStr }} {{ lr.covStr }} {{ lr.mosStr }}

Each lens aggregates only over the covered holdings where that model ran; lens coverage differs because the engine selects a different model set per company.

Macro Dial common shocks, re-aggregated per holding

Rate and risk shifts hit every holding at once. Aperto pushes each shock through each covered company's own WACC decomposition and engine sensitivity grid, then re-weights the result into a live fund safety score.

The interactive fund Macro Dial is a Pro tool.
{{ sl.label }} {{ sl.valStr }}
Fund safety at these settings
{{ etfrDial.safetyStr }}
{{ etfrDial.deltaStr }}
published {{ etfrDial.baseStr }}
{{ etfrDial.waccStr }}
{{ etfrDial.covStr }}
WHEN When is the right time to invest? {{ etfrWhenProfile }}

{{ etfrWhenRationale }}

{{ etfrWhenRsRead }}

{{ f.label }} {{ f.sub }}
{{ f.value }}
What else the layer looked at
{{ w.mark }} {{ w.label }} {{ w.purpose }} {{ w.reading }} {{ w.block }}
HOW How do I know if the thesis has been invalidated?

A fund has no single thesis verdict; it holds a distribution. This is the covered slice's HOW verdict by weight, then each holding's open falsification tests, heaviest position first.

Verdict by weight (covered slice)
{{ hl.label }} {{ hl.pctStr }}
{{ hn.weightStr }} {{ hn.flaggedStr }}{{ hn.testsStr }} {{ hn.verdict }}

Switch to Deep Dive for each covered holding's open falsification tests.

Price Chart
Chart unavailable — TradingView could not be reached.

Chart data by TradingView; quotes may be delayed.

Fund WHEN levels drawn on the price series
Loading price history…
Price history unavailable.

{{ historyStampV }} The implied fund IV is the price scaled by the covered-slice safety score. Educational reference, not advice.

{{ etfrProvNport }}

Constituent report runs (input freshness)
{{ pv.label }} {{ pv.weightStr }}
Sources
  • {{ ep.label }}

{{ etfrProvPriceBasis }} Educational reference only, never advice.

Account

Your Profile

Your profile picture {{ acctInitial }}
{{ acctAvatarError }}
{{ acctName }}
{{ acctUsernameLine }}
{{ acctEmail }}
Signed in
Refer a friend
Share your link. A friend has to sign up with it and then subscribe to Pro before anything is credited. A friend on a monthly plan earns you one free month, and a friend on an annual plan earns you three, up to a free year in total.
{{ referralCode }}
{{ referralLink }}
{{ referralUsageNote }}
{{ referralPendingNote }}
Current plan
{{ acctTierLabel }}
{{ acctSlotMeter }}
Decision journal
{{ acctThesisCount }}
theses locked to date
Preferences
Full name
The name shown on your account.
Username
{{ acctUsernameNote }}

3 to 20 characters: letters, numbers and underscores, at least one letter. It can't start, end, or double up on an underscore. Changeable once every 30 days.

{{ unameHintText }}
{{ unameError }}
Email address
A confirmation link will be sent to the new address.
Password
Set a new password below.
Usage analytics
{{ acctAnalyticsNote }}
Plan & billing
{{ acctPlanNote }}
Student status
{{ acctStudentNote }}
Scheduled for deletion on {{ delDateLabel }}
Your account and everything in it are still intact. Cancel any time before that date and nothing is lost.
Delete your account
Your watchlist, journal, theses, and reports are removed after 30 days. You can cancel at any point during that window.

Aperto never uses your email for marketing, nor shares it with third parties.

Moderation

Open reports

Loading…
Nothing here
This page is for the Aperto team.
{{ modError }}
Queue is clear
No open reports right now.
{{ r.ticker }} by {{ r.author }} · {{ r.createdStr }}
{{ r.countLabel }}
{{ r.body }}
Reason: {{ r.reason }}
Note: {{ r.note }}
Post already removed Remove for good?
Plans

Scale your coverage, not your education.

Every tier gets full-depth reports and the education tools. A wider watchlist, new-ticker generation and the agentic tools come with Student Pro and Pro.

BasicCurrent
Learn the framework on the library
S$0/mo
Free, forever
Student ProCurrentBest value
Verified students · the full loop at a student price
{{ plusPrice }}{{ plusCycle }}
{{ plusBilled }}
{{ plusNote }}
School email verified
ProCurrent
The full agentic research toolkit
{{ proPrice }}{{ proCycle }}
{{ proBilled }}
{{ proNote }}
What you get Basic Student Pro Pro
{{ m.label }} {{ m.b }} {{ m.p }} {{ m.r }}

{{ pricingFootnote }}

Student Pro needs a verified school email — we send a code to your university address and never use it for anything else. If your institution isn’t recognised, tell us via Feedback and we’ll add it.

Methodology

Showing the work is the whole point.

Aperto automatically extracts data from 10-K and 10-Q filings to fuel a transparent, four-layer analysis. Instead of hiding the math behind an opaque score, we provide a fully auditable trail from raw financial statements to final conclusion.

Glass-box architecture

A glass box, not a black box: every figure is reconstructible from disclosed inputs, every assumption is visible and adjustable, and every report shows its working. (Aperto is Italian for open — transparency is the posture of the tool.) You reason; the engine shows its reasoning back.

WHY

Why should I invest in this business?

Five weighted sections — economic moat (35%), business quality (25%), management (20%), competitive landscape (15%), industry & macro (5%) — each scored 0–3 across sub-categories and rolled into a 0–100 composite. Judgment-based sub-categories use Bear / Base / Bull scenarios (40/40/20) to surface conditionality. The composite plus a strength-and-durability gate set the moat rating.

Read the full WHY rationale →
WHAT

What is the fair value of the business?

Up to ten valuation lenses are screened; the structurally appropriate ones are kept and weighted by how tight their Monte Carlo distributions are. When cross-model agreement is low (CV above 35%), the framework anchors on the Primary DFCF lens rather than blending — and reports intrinsic value as a range, never a single false-precise number.

Read the full WHAT rationale →
WHEN

When is the right time to invest?

Two admissibility gates, support location and a fresh momentum turn, decide whether there is a setup to time at all. One measured read, whether a name is outperforming both the broad market and its sector, decides whether that setup is aligned. Eight further checks are displayed for context and set nothing. It is an entry-timing discipline only and is deliberately silent on exits; it never fires when the margin-of-safety criterion isn't met.

Read the full WHEN rationale →
HOW

How do I know if the thesis has been invalidated?

Eight structured tests run against the latest filings after publication — demand, moat, reinvestment runway, capital structure, regulatory licence, management response, key-person, and precedent. Verdicts are noise, watch condition, or structural invalidation. It explicitly rejects valuation overshoots, earnings misses, technical breakdowns and macro mood as sell signals.

Read the full HOW rationale →
WHY · Business Quality & Moat

Five-Pillar Business Quality Assessment

Before price ever enters the conversation, the WHY layer asks whether the company can compound. It scores five distinct pillars across their sub-categories on a tight 0–3 scale. These judgments roll into a 0–100 composite, passing the final rating through a strict strength and durability gate.

The Five Structural Pillars

The 35 / 25 / 20 / 15 / 5 weighting is not arbitrary. It ranks the five drivers by how durably each one governs long-run returns, so the things that decide a decade outweigh the things that decide a quarter.

Economic Moat35%
The width and durability of competitive advantage is the single largest determinant of whether excess returns persist. Everything else either feeds the moat or is downstream of it, so it carries the most weight.
Business Quality25%
The financial fingerprint that proves the moat is real: cash conversion, returns on invested capital, and balance-sheet resilience. A claimed moat that never shows up in the numbers is a story, not an advantage.
Management20%
Capital allocation compounds or erodes the advantage over time. It is weighted heavily, but below the moat itself, because even excellent operators cannot outrun a structurally weak business.
Competitive Landscape15%
The rate at which the moat is being attacked by entrants, substitutes, or pricing pressure. This layer measures the structural durability of an advantage, rather than just its current existence.
Industry & Macro5%
Industry conditions are the least company-specific driver, and the one most heavily reflected in price already. We deliberately keep it at 5% to stop a macro narrative from dominating a bottom-up business judgment.

Asymmetric Scenario Weighting

Judgment-based sub-categories are scored under three scenarios rather than one point estimate, and the weighting is deliberately downside-aware: the bear and base cases together carry 80%. The asymmetry encodes a simple investing truth: protecting against the downside matters more than reaching for the upside. It also surfaces conditionality, showing exactly which assumptions the thesis depends on.

Bear
40%
Base
40%
Bull
20%

The Moat Gate

The final moat rating is not the composite alone. A company must clear a strength-and-durability gate as well. A high score built on an advantage that is wide but fragile, or durable but thin, is held back. Width without durability fades, and durability without width never earned excess returns to begin with.

The Objectivity Tier System

Sub-categories are not scored arbitrarily. Each is assigned to one of three operational layers, which determines how much human judgment is even permitted to touch it:

Data-VerifiedTier 1
Fixed metrics extracted directly from financial feeds that cannot be manually overridden.
AnchoredTier 2
Hard quantitative thresholds that establish strict scoring ceilings, filled out with contextual evidence.
Judgment-BasedTier 3
Qualitative, structural assessments evaluated across multi-scenario probability weights.

Sector-Specific Adjustments

Aperto dynamically morphs its scoring criteria depending on the business model rather than treating all sectors as a generic block. It isolates the specific core metrics that actually govern each industry, whether that is ARR / NRR for Technology-SaaS, process-node cycles for Semiconductors, regulatory constraints for Banks, or statutory gearing and distribution caps for REITs, so a company is always measured against the yardstick its own sector rewards.

Composite Verdict Bands & Foundations

The 0–100 composite maps to five descriptive bands:

80–100Exceptional Business
60–79Strong Business
40–59Adequate Business
20–39Weak Business
0–19Insufficient Foundation
Analytical foundations
Morningstar Economic Moat Framework (Dorsey)
Porter's Five Forces of Competitive Strategy (Porter)
Empirical Capital Allocation Benchmarks (Buffett)
Prospect Theory & Loss Aversion Weighting (Kahneman & Tversky)
The Margin of Safety Principle (Graham)
WHAT · Intrinsic Value

Multi-Model Parallel Architecture

WHAT runs a bank of independent valuation engines in parallel, keeps only the ones structurally appropriate for the business, and synthesises what survives into a single defensible intrinsic-value range, never a false-precise point estimate.

The Quality Gate: Upstream Prerequisites

The WHAT layer is programmatically locked unless the upstream WHY layer registers a YES or WARN analytical readiness classification. Aperto enforces a strict structural sequence: a business must possess a viable, trackable data foundation before mathematical valuation models are permitted to run.

The Seven Underlying Models

Each engine is purpose-built for a different corporate architecture. The framework screens all seven, then discards the ones that don't fit the company in front of it.

Multi-Stage FCFF
Constructs unlevered Free Cash Flow to Firm profiles, discounting them via a Hamada-adjusted Weighted Average Cost of Capital that dynamically reprices the cost of equity as the company's capital structure changes over time. Base cash flow now separates maintenance capital spending from growth spending, so a heavy reinvester is not punished as though every dollar of expansion were a permanent drain.
Capitalized Earnings
Calculates normalized mid-cycle earnings capacity, systematically stripping out transient macro tailwinds to evaluate steady-state terminal value.
Multiples Monte Carlo
Runs full probabilistic distributions over last twelve months and Forward peer metrics rather than using arbitrary point estimates, capturing true sector valuation spreads.
Dividend Discount Model
Maps cash return profiles for asset-light, mature, or yield-centric corporate architectures, matching dividend payout transitions to long-run growth constraints.
Excess Returns
A residual income model that isolates true economic profit. It applies an automated Return on Equity (ROE) decay function that systematically erodes supernormal returns down to the cost of equity over a five-year horizon.
Frontier (milestone-anchored)
The honest path for pre-revenue companies: when no cash-flow or peer engine can produce a defensible anchor, the framework says so instead of faking one — and re-anchors the analysis on cash runway, dilution, what today's price assumes, and the filing's own quoted milestone map.
Sum-of-the-Parts (SOTP)
Simulates multi-segment business models using a Cholesky decomposition joint simulation matrix to capture real pairwise risk correlations across distinct operating units.
Comparable Transactions
Applies a triangular deal-vintage and control-premium filter to historical mergers and acquisitions data, automatically executing synergy stripping to isolate pure asset values.

The Valuation Operational Matrix

Each engine is routed to the architecture it fits, guarded by an institutional safeguard, and defends against a specific retail mistake.

Valuation Engine Target Architecture Institutional Backend Safeguard Retail Fallacy Avoided
Multi-Stage Free Cash Flow to FirmCash-generative compounders with an evolving capital structureHamada-adjusted Weighted Average Cost of Capital re-priced at each projection stageApplying one static discount rate to a company whose leverage is changing
Capitalized EarningsStable, mature, mid-cycle earnersTransient macro tailwinds normalized to steady-state earnings powerExtrapolating a peak-cycle year straight into perpetuity
Multiples Monte CarloPeer-rich sectors with observable comparablesFull probabilistic distributions across Last Twelve Months and Forward peer setsAnchoring on a single arbitrary price-to-earnings point estimate
Dividend Discount ModelAsset-light, mature, yield-centric architecturesDividend payout transitions matched to long-run growth constraintsValuing a yield vehicle on high-growth-stock assumptions
Excess ReturnsFinancials and book-value-driven businessesAutomated Return on Equity decay toward the cost of equity over five yearsAssuming supernormal returns on equity persist forever
Sum-of-the-PartsMulti-segment conglomeratesCholesky decomposition joint simulation across correlated unitsSumming segments as though their risks were independent
Comparable TransactionsAssets with a deep Mergers and Acquisitions historyTriangular deal-vintage and control-premium filter with synergy strippingPaying a full takeover premium for a standalone minority stake
Frontier (milestone-anchored)Pre-revenue and pre-cash-flow companiesCash runway, dilution trajectory, what today's price assumes, and the filing's own milestone map — no blended point estimateForcing a DCF onto a business with no cash flows and calling the output an anchor

Dynamic Algorithmic Synthesis

Aperto rejects naive model averaging. The engine evaluates active valuation branches through a cross-validation framework, applying data-richness penalties and a model independence check to mathematically discount redundant or data-starved models, producing a single, defensible intrinsic value range.

Dynamic Margin of Safety

The required margin of safety is an algorithmic output, not a fixed guess. The engine cross-references the volatility spread of the active valuation models against the fundamental score inherited from the WHY layer. High business quality shrinks the required buffer; high model divergence expands it.

The Rigorous Equity Bridge

The backend builds an institutional-grade Equity Bridge by stripping out net debt, adjusting for non-operating assets, isolating minority interests, and executing a full option-dilution check via the Treasury Stock Method to calculate the true, fully diluted share baseline.

Expectations Investing via Implied Reversals

Rather than relying purely on speculative future projections, Aperto runs an automated Reverse DCF loop. It reverse-engineers the current market price to isolate the exact growth rates, operating margins, and capital efficiency metrics the market is currently pricing into the stock, so you can judge for yourself whether those performance hurdles are realistic.

Optionality, Surfaced Not Hidden

When the market price sits above the entire surviving lens cluster, Aperto does not quietly stretch a model to reach it. It labels the gap for what it is: the premium the market is ascribing to optionality the cash-flow models cannot yet see, such as an unproven new business line or a call on a future market. You get to decide whether that optionality is worth paying for, rather than having it smuggled into a single point estimate.

WHEN · Technical Timing

The Fundamental-First Sequence

WHEN is the final mathematical filter in the pipeline. It never predicts. It only times execution on assets that have already earned their place through fundamentals and value.

The Non-Predictive Execution Filter

The WHEN layer represents the final mathematical filter in the WHY → WHAT → WHEN pipeline. Aperto enforces a strict fundamental-led hierarchy: long-term investment conviction rests entirely on structural business quality and intrinsic value, while technical analysis serves purely as a secondary operational filter. It runs exclusively on assets that have already cleared the fundamental quality gate (WHY) and the intrinsic value gate (WHAT) to optimize tactical execution routing when risk-to-reward parameters are most favorable.

Multi-Axis Indicators

The engine scans ten checks across seven blocks on a rigorous Monthly, Weekly then Daily structural cascade. Two of those blocks are the admissibility gates and two are the relative-strength legs that set the verdict. The checks are not added up, and nothing is ranked on a total.

Moving Average Convergence Divergence (MACD): the momentum trigger — a signal-line crossover within the last 8 trading days marks the turn (window calibrated v2.5).
Relative Strength Index (RSI): the overbought and oversold gauge that confirms momentum divergences.
Average Directional Index (ADX): the trend-conviction reading that separates a real move from drift.
Average True Range (ATR): the volatility envelope that scales support zones to current conditions.
Chicago Board Options Exchange Volatility Index (VIX): the macro regime overlay, contained versus elevated at the 20 level.

The Multi-Timeframe Structural Cascade

To eliminate short-term market noise traps, Aperto enforces structural alignment down the time horizon: Monthly charts isolate structural macro floors, Weekly charts confirm intermediate trend-reversal signatures, and Daily charts are reserved strictly for tactical execution routing.

Statistical Calibration Matrix

The four timing labels, what decides each one, and the retail mistake it prevents. None of them comes from a total, and no two of them are separated by a measured return difference except aligned against the rest.

Alignment Tier What decides it Confluence Definition Retail Fallacy Prevented
ALIGNEDBoth gates cleared, both RS legs firedPrice is at a qualified support floor, a fresh momentum turn has fired, and the name is outperforming both the broad market and its sector on the 52-week and 26-week windows. This is the one distinction confirmed on held-out time.Prevents chasing an overextended breakout near local resistance.
DEVELOPINGBoth gates cleared, RS not alignedThere is a setup to time, but relative strength is neutral, weak, or could not be measured. Those three read differently on the card and carry the same recommendation, because only the aligned boundary is measured.Prevents reading a partial relative-strength result as a graded quality tier.
AWAITING TRIGGERSupport gate cleared, momentum gate did notPrice sits at a qualified support floor but no momentum turn has fired yet. This is the absence of a setup, not a bad one.Prevents catching a falling knife before price discovery settles.
INSUFFICIENTSupport gate did not clearPrice is not at a support confluence, so the layer has nothing to time. Conditional on a fresh momentum cross this is the common case: roughly three quarters of cross bars fail the support gate.Prevents deploying capital on a signal with no structural level under it.

Empirical Calibration Constraints

Aperto's boundaries are mathematically calibrated against long-run historical equity data. A tier change requires a 95% Confidence Interval step-up above a random-entry baseline. Broader environmental conditions like the Average Directional Index (ADX) and the Volatility Index (VIX) are treated as non-scored regime overlays to isolate macro market friction.

Programmatic Risk Controls

The execution engine actively monitors data integrity. For recent corporate listings or asset spin-offs lacking deep cyclical price metrics, the backend raises a strict HISTORY-LIMITED guardrail that suppresses arbitrary technical scores until a statistically viable tracking window is established.

HOW · Thesis Invalidation

How is a structural thesis invalidated?

HOW is a fundamentals-only monitor that runs eight structured stress tests against the latest filings once a report is published. It exists to answer a single question. Has the original thesis actually broken? Everything about it is built to hold that line and to tune out the noise that so often gets mistaken for a real answer.

The Fundamentals-Only Invalidation Gate

The HOW layer executes a pure, fundamentals-only exit framework built for long-horizon compounding assets. Aperto completely rejects price-based selling mechanisms like technical stop-losses or short-term valuation overshoots, as these fluctuations routinely mean-revert without changing corporate cash-generation capacity. The platform deliberately drops traditional retail trading terminology, shifting the focus away from reactionary selling and toward disciplined thesis-invalidation checks.

The Eight Core Diagnostic Stress Tests

Each test targets one load-bearing pillar of a typical long thesis. If a pillar cracks, the thesis is in question; if the headlines are loud but every pillar holds, it isn't.

1. Demand & Market Fit: Tracks core top-line growth deviations against underlying industry addressable market velocity.
2. Moat & Competitive Degradation: Monitors structural margin compression, market share churn, and return on capital erosion.
3. Reinvestment Runway: Evaluates capital allocation shifts, scaling friction, and marginal return on invested capital decay.
4. Capital Structure Realignment: Audits leverage ratios, debt-servicing coverage thresholds, and cost of capital spikes.
5. Regulatory & Political License: Scans legislative headwinds, compliance cost escalations, and antitrust interventions.
6. Management Response Accuracy: Compares executive forward guidance track records against realized operational delivery.
7. Cultural & Key-Person Vulnerability: Tracks high-level executive turnover, governance fractures, and institutional talent loss.
8. Precedent Invalidation Signatures: Correlates current balance sheet flags against historical corporate failure patterns.

The Analytical Diagnostic Ledger

Every review resolves to one of four diagnostic states, each carrying a defined portfolio action and defending against a specific retail mistake.

Diagnostic Status Operational Meaning Systemic Portfolio Action Retail Fallacy Prevented
PASSFundamental thesis is completely intact; core compounding metrics meet or exceed original underwriting thresholds.Maintain Position Baseline without intervention.Selling a premier business early due to temporary market price drawdowns.
WATCHInitial structural friction or near-term metric divergence detected; tracking frequency elevated.Isolate Active Exposure; flag for immediate quarterly monitoring.Overreacting to noise or minor, transient operational speedbumps.
FAILPermanent structural impairment or catastrophic breach of an underlying core thesis threshold.Trigger Immediate Re-Underwriting Mandate from a blank slate.Falling in love with a stock and holding it into bankruptcy via a hope-based thesis.
DATA-GATEDInformation asymmetry has crept in: the company has stopped providing clean, evaluable disclosures.Freeze Diagnostic Evaluation; flag corporate transparency breakdown.Flying completely blind into opaque corporate structures that stop providing clean financial disclosures.

The Re-Underwriting Mandate

Aperto completely rejects passive portfolio trimming or incremental position hedging. When any core critical diagnostic stress test registers a definitive FAIL verdict, the platform triggers an immediate re-underwriting mandate. This forces the analyst to completely abandon previous structural assumptions, return directly to a blank-slate WHY layer evaluation, and re-prove the corporate compounding thesis from scratch.

Privacy Policy

How Aperto handles your data.

Effective August 7, 2026

This page describes what Aperto ("we", "us") collects when you use the app at aperto.dev, why, and who else ever sees it. It is written to match what the product actually does, not a generic template. Every service named below is a real part of how Aperto runs.

1. Information we collect

Aperto collects only what's needed to run the product and your account:

  • Account information. The email address and name you sign up with. Your password is never stored or seen by Aperto's own servers. It is held by our authentication provider, Supabase, using industry-standard hashing.
  • Referral information. If you sign up through another user's referral link, we record which account referred you so that referral rewards can be credited correctly. If you refer someone, we record that a referral was credited to you, its value, and the payment it relates to, so it can be reversed if that payment is later refunded. We never show your identity to the person you referred, or theirs to you.
  • Research activity. The tickers you follow, journal and thesis entries, portfolio positions you enter for your own profit-and-loss tracking, quiz results, comprehension answers, and any messages you send to the Socratic coach or agentic debate tools.
  • Usage analytics. A record of how the product is used: which reports you open and when, which features you reach for, your quiz scores by layer, and which upgrade prompts you were shown. It is kept against your account and used to work out which parts of Aperto genuinely help and which should be rebuilt or removed. It is never sold, never shared, and never used to target advertising. You can switch it off for your account at any time from the Account page — see section 3.
  • Payment information. If you subscribe to a paid tier, billing is handled entirely by Stripe. Aperto never receives, transmits, or stores your card number.
  • Feedback. Anything you type into the feedback form at the bottom of any page, plus an email address if you choose to leave one for a reply. The feedback form does not require an account and works for visitors who have never signed up.
  • Local device storage. Aperto keeps a small number of values in your browser's local storage, which never reach our servers. Some keep you signed in: your session and refresh tokens, a step-up verification token, an opaque device identifier used to skip repeated sign-in verification on browsers you've trusted, and (only if you asked to be remembered) the email you last signed in with. The rest hold work in progress or save a repeated request — a quiz you have started but not finished, which coach questions you have already asked on a given ticker, the ETFs you follow, and your current plan. Clearing your browser's site data removes all of it.

2. What we deliberately do not do

Aperto never uses your email address for marketing, and never sells, rents, or shares your personal data with third parties for their own purposes. There are no advertising cookies, no third-party ad trackers, and no cross-site tracking pixels anywhere in the product. The only outside parties that ever see your data are the infrastructure providers listed below, and only to the extent needed to run the service you asked for. The usage analytics described in section 1 are entirely first-party: they are recorded by Aperto's own servers into Aperto's own database, are read by nobody outside it, and are not sent to any analytics vendor.

3. How we use it

We use your data to:

  • Create and secure your account, including the emailed-code second factor and Google sign-in
  • Generate, store, and sync the reports, watchlist, journal, and coaching sessions your account is built from
  • Process subscription billing
  • Respond when you contact us or send feedback
  • Detect and stop abuse of the sign-in system
  • Understand, in aggregate, which parts of Aperto are used and which are not, so we know what to improve, rebuild, or remove

That last point is new, and it is worth being exact about its limits, because they are not soft ones. Your journal and thesis entries, your messages to the Socratic coach and debate tools, and the portfolio positions you enter are never analysed, aggregated, or used to improve the product. They exist to be shown back to you, and nothing else. What we do look at is the shape of your usage — that a report was opened, that a feature was used, how a quiz scored by layer, which upgrade prompt appeared — never the content you wrote.

If you would rather not contribute even that, there is a switch for it on the Account page. Turning it off stops the recording for your account; it is enforced on our servers, not merely hidden in your browser, and nothing about how the product works for you changes.

4. Who processes data on our behalf

Aperto is built on a small number of named infrastructure providers, each handling one part of the service:

Provider What it handles
SupabaseAuthentication, the application database, and file storage.
Google"Continue with Google" sign-in, only if you choose it. Aperto receives your name and email from Google. It never receives your Google password.
ResendDelivery of transactional email only: sign-in verification codes. No marketing mail is ever sent through this channel.
StripeSubscription billing and card processing for Plus and Pro. Card details go directly to Stripe and never pass through Aperto's servers.
CloudflareHosts and serves the web application itself, and measures page traffic in aggregate so we can see which pages are visited. That measurement is not linked to your account, sets no cookies, and does not follow you to other sites.
RenderHosts the backend API that reports, verification, and billing run through.
PostHogProduct analytics. Receives a hashed account identifier, never the account id itself, and never receives report content, journal entries, or portfolio data. Hosted in the EU.

Separately, Aperto sources the market and filings data that reports are built from: SEC EDGAR, Financial Modeling Prep, Yahoo Finance, and TradingView. None of them ever receive your account information, holdings, or activity.

5. Disclosure of data

Outside the providers listed in section 4, Aperto discloses your data only when:

  • Required by law, such as a valid court order or subpoena
  • Necessary to investigate or prevent fraud, security incidents, or abuse of the service
  • Necessary to protect the rights, property, or safety of Aperto, our users, or the public

We do not disclose your data to advertisers, data brokers, or any party for their own marketing purposes.

6. Data retention

We keep your account data for as long as your account is active. You can delete your account yourself, at any time, from the Account page. Deletion is scheduled rather than instant: your data stays fully intact for 30 days, and signing back in during that window cancels the request and keeps everything. After 30 days the account and its associated data are permanently removed, including files held in storage. Records we're required to keep for billing, tax, or fraud-prevention purposes are retained only as long as the law requires.

Usage analytics are kept in identifiable form for at most 12 months. After that they are collapsed into counts and rates that carry no account identifier — how many people reached a given screen, not which people — and the underlying records are deleted. Those totals are no longer personal data and are kept indefinitely.

7. Your rights

You have the following rights over your data. In Singapore these are provided under the Personal Data Protection Act:

  • Access. Request a copy of the personal data we hold about you. We aim to respond to access requests within 30 days.
  • Correction. Update your name, email, and password directly from the Account page, at any time. For corrections you can't make yourself, we aim to respond within 30 days.
  • Withdrawal of consent. Withdraw your consent to any collection or use of your data that relies on consent, at any time. This is separate from deleting your account: withdrawing consent stops a specific use going forward, and may mean some parts of the product no longer work for you, without closing your account.
  • Deletion. Delete your account and its associated data yourself, from the Account page. See section 6 for how the 30-day window works.
  • Portability. Request your data in a portable format.
  • Objection. Withdraw consent to marketing at any time, though as noted in section 2, we don't send any.
  • Analytics opt-out. Turn off the usage analytics described in sections 1 and 3, for your account, from the Account page. It takes effect immediately and needs no explanation.
  • Device revocation. Revoke any browser you've previously trusted for sign-in, from the Account page.

8. Security

Every account is protected by a two-factor sign-in: a password (or Google identity) plus a one-time emailed code, unless you've explicitly trusted the browser you're using. Verification codes are never stored in a form that could be read back, only a salted, one-way hash. Your data is scoped to your account at the database level, so it is enforced by the database itself, not only by application code.

9. Children's privacy

Aperto is an equity research and education tool and is not directed at, and should not be used by, anyone under 18.

10. Changes to this policy

We may revise this policy as Aperto changes. If a revision meaningfully affects how your data is handled, we'll update the effective date above and make reasonable efforts to let you know directly.

11. Contact

Questions, requests, or concerns about this policy: hello@aperto.dev.

Data Protection Officer. For matters specific to the Personal Data Protection Act, including access, correction, or withdrawal-of-consent requests, the Data Protection Officer can be reached at hello@aperto.dev.

Terms of Service

The terms behind the tool.

Effective September 9, 2026

By creating an account or otherwise using Aperto, you agree to these terms. Please read the disclaimer in section 1 in particular: it is the single most important thing on this page.

1. Not investment advice

Aperto is a research and education tool for research purposes only. It is not investment advice, and Aperto is not a registered investment adviser, broker-dealer, or financial planner in any jurisdiction. Nothing produced by Aperto (a verdict, a valuation range, a moat rating, a timing signal, a coach or debate transcript) is a recommendation to buy, hold, or sell any security.

Reports are built from third-party data and automated analysis, both of which can be wrong, delayed, or incomplete. Investing involves risk, including loss of principal. You are solely responsible for your own investment decisions, and should consult a licensed financial adviser before acting on anything the product shows you.

Aperto does not know your financial circumstances, your objectives, or your risk tolerance, and it does not ask. Nothing it outputs is assessed against your situation, so nothing it outputs can be suitable or personalised advice for you specifically. This is the difference between what Aperto does (education and research) and what a regulated adviser does (advice fitted to a client).

2. Eligibility & your account

You must be at least 18 years old to create an account. You're responsible for keeping your password and any trusted-device sign-in confidential, and for everything that happens under your account. One account is for one person. Accounts are not to be shared, resold, or transferred.

Contact us immediately if you believe your account has been compromised.

3. Subscriptions & billing

Aperto offers a free Basic tier and paid Plus and Pro tiers. Paid subscriptions are billed through Stripe on a recurring monthly or annual basis and renew automatically until cancelled. You can cancel at any time from the Account page or by contacting us. Cancellation takes effect at the end of the current billing period, and we do not provide partial-period refunds except where required by law.

We may change subscription pricing or tier features going forward. If that affects you, we'll give reasonable notice before it applies to your next billing cycle.

4. Acceptable use

You agree not to:

  • Scrape, bulk-extract, or systematically download reports or data outside the normal use of the product;
  • Resell, redistribute, or publish Aperto's reports or underlying analysis as your own;
  • Reverse-engineer, decompile, or attempt to extract the source of the app or its methodology beyond what is publicly documented;
  • Circumvent tier limits, rate limits, or account restrictions;
  • Use the service for any unlawful purpose, or to impersonate another person.
  • Post content that is unlawful, harassing, hateful, or deliberately misleading;
  • Post about a security to move its price, or promote one you were paid to promote without saying so;
  • Post spam, advertising, or the same content repeatedly;
  • Post someone else's personal information;

We may suspend or terminate accounts that violate this section.

Forum posts are public. Anyone who can open a company page can read what you post there, along with the username on your profile, so do not put anything in a post that you would not want attached to that name. Posts are written by readers, not by Aperto. They are not our analysis, they are not reviewed before they appear, and nothing in them is investment advice. Anyone can report a post, and we may remove a post or suspend an account under this section.

5. Intellectual property

Aperto's methodology, report structure, scoring frameworks, software, and branding are the property of Aperto and its licensors. Using the product doesn't transfer any ownership of them to you.

What you personally create (journal entries, thesis notes, portfolio positions, and messages to the coach or debate tools) remains yours. You grant Aperto the license needed to store it, process it, and display it back to you as part of the service. Anything you choose to post publicly, such as a forum post on a company page, still belongs to you, but that licence extends to showing it publicly on Aperto next to your username for as long as the post is up.

6. Third-party data & accuracy

Reports draw on data from SEC EDGAR filings, Financial Modeling Prep, Yahoo Finance, and TradingView. This data is provided by those third parties "as is," may be delayed, incomplete, or contain errors, and Aperto does not guarantee its accuracy, completeness, or timeliness. Automated analysis built on top of it inherits the same limits. See section 1.

7. Disclaimers & limitation of liability

The service is provided "as is" and "as available," without warranties of any kind, express or implied, including fitness for a particular purpose or uninterrupted, error-free operation.

To the maximum extent permitted by law, Aperto is not liable for indirect, incidental, or consequential damages, including investment losses arising from your use of the service, and our total liability for any claim relating to the service is limited to the amount you paid Aperto in the 12 months before the claim arose.

8. Termination

You may stop using Aperto and close your account at any time. We may suspend or terminate access for violation of these terms, or discontinue the service, with notice where reasonably possible.

9. Changes to these terms

We may update these terms as the product changes. If a change is material, we'll update the effective date above and make reasonable efforts to let existing users know. Continuing to use Aperto after a change takes effect means you accept the updated terms.

10. Governing law

These terms are governed by the laws of Singapore, without regard to its conflict-of-law principles.

11. Contact

Questions about these terms: hello@aperto.dev.

{{ gateTitle }}

{{ gateMsg }}

{{ gateVoteCount }}

Requests decide which reports we generate next. They don’t start one, and nothing is charged.

Delete account

This schedules your account for deletion.

Your watchlist, decision journal, theses, portfolio positions, and generated reports will be permanently removed after 30 days. Nothing is deleted today.

You'll be signed out. Signing back in at any point in the next 30 days lets you cancel and keep everything.

Type {{ delAccountEmail }} to confirm.
We can't read the email address for this account right now, so the confirmation can't be completed. Reload the page and try again.

Welcome to Pro

Your account is upgraded. Thanks for being here.

Pick a username

Create your username

{{ unameHintText }}
{{ unameError }}

Thanks -- it's been sent.

A moderator will look at it.

Report this post
{{ discReportError }}
Comprehension quiz · {{ quizTicker }}
{{ quizProgress }}
{{ quizLayer }}

{{ quizQText }}

{{ quizFeedbackHead }}

{{ quizFeedbackWhy }}

Your score
{{ quizScoreLine }}
{{ quizScorePct }}

{{ quizScoreNote }}

Where you stand
{{ L.name }} {{ L.tally }}

{{ quizGapNote }}

Across your attempts

{{ quizWeakNote }}

What you missed
{{ m.n }} {{ m.layer }}

{{ m.q }}

You chose: {{ m.yours }}
Correct: {{ m.correct }}

Why · {{ m.why }}

Report download
{{ dlInfoTitle }}

{{ dlInfoDesc }}

{{ dlInfoLen }}

{{ dlInfoNote }}

{{ whenIndBlock }} {{ whenIndState }}
{{ whenIndLabel }}
What this looks at

{{ whenIndAbout }}

{{ whenIndPurpose }}

{{ whenIndGeomNote }}

What the engine recorded
{{ whenIndReading }}

This check is context. It sets no part of the timing verdict.

{{ whenFlagExplainSub }} {{ whenFlagExplainValue }}
{{ whenFlagExplainLabel }}
The rule

{{ whenFlagExplainRule }}

The readings behind it
{{ in.name }} {{ in.value }}

The individual readings behind this verdict were not recorded on this run. Only the rule and the resulting value above are available.

What the engine recorded

{{ whenFlagExplainDetail }}

Measured on {{ whenFlagExplainSource }} data. This is a flag, not a ranking; it sets no part of the timing verdict by itself.

{{ wlDialogTitle }}

Deleting {{ wlDialogDeleteName }} returns its tickers to All. Nothing is removed from your watchlist.

{{ wlDialogBlurb }}

Student Pro

Verify your school email

We’ll send a six-digit code to your university address. It’s used once, for this check, and never for anything else.

{{ svErrText }}

Enter your code

Sent to {{ svEmailVal }}. It expires shortly — check spam if it hasn’t arrived.

{{ svErrText }}

You’re verified

{{ svDoneNote }}

esc
Research tools
Nothing matches that search.