Documentation

The Social tab

Investing is more fun compared. The Social tab connects you with friends β€” you see their shared portfolios, they see yours, and a shared feed carries posts, charts and reactions. Sharing is built the safe way round: only relative figures (weights and percentages, never amounts), only the sections you tick, and nothing at all until you tick one.

Connecting with friends

Friendships are request and accept β€” never one-way:

  1. Search for a friend by their exact email address or @handle in the Friends pane. Social is on for a new account, so a friend who has opened the app can be found β€” but anyone who has switched Social off is invisible to search, and being findable is not the same as sharing anything (see below).
  2. Send the request. Your friend sees it as an unread badge on their Social tab, with approve and decline buttons.
  3. Only when they accept do the two of you become friends β€” and acceptance is the consent: nothing about your portfolio is visible to anyone before both sides have agreed.

Either side can unfriend at any time, which immediately ends all visibility in both directions. There is also a block list: blocking someone removes any existing friendship and pending requests both ways and makes you unfindable to them.

The tab needs a signed-in account (it's how friends find you), and it's a free-plan feature β€” see Accounts & plans.

What sharing means β€” and what it never means

Everything you share is controlled from βš™ Settings β†’ Social: a master Enable Social switch, and one checkbox per section of your portfolio. Every section checkbox is off by default β€” the only things on out of the box are the master switch itself and presence, neither of which reveals any portfolio data. Tick exactly what you're comfortable with:

The master switch being on is what lets the tab work at all: you have an @handle, friends can find you, and you can send and accept requests. It publishes nothing by itself. A brand-new account is findable and shares absolutely nothing β€” accept a friend before ticking a box and they will see your @handle and an empty profile. The first thing of yours that ever leaves the device is a section you ticked. Switch the master off later and you go quiet without dismantling anything: your friendships, badges and settings are kept, and one tick brings you back.

Share toggleWhat accepted friends seeDefault
HoldingsAsset names with their portfolio weight and relative gain in %.Off
PerformanceTWR and IRR β€” total %, cumulative and monthly return curves.Off
AllocationAllocation groups in % and the diversification score.Off
RiskThe Risk card's relative figures β€” volatility, max drawdown, Sharpe, beta.Off
Buy planThis month's buy plan β€” names and relative sizes only.Off
TargetsAllocation targets and current drift, in %.Off
Plan tierWhether you're on the Free or Pro plan.Off
PlatformWhether you use the web or the desktop app.Off
BrokersThe names of your connected brokers/accounts.Off
Trade eventsAutomatic feed events for your five largest trades of the last 30 days β€” "bought NVDA Β· about 3% of the portfolio". Sizes are always a share of your portfolio, never an amount.Off
PresenceOnline dot and last-seen time β€” no portfolio data.On

How it works under the hood matters for privacy: your app builds a snapshot of only the ticked sections, computed locally, and publishes it to the Fortunest server, where only your accepted friends can read it. Sections you didn't tick are never part of the upload β€” they don't leave your machine at all. Publishing is automatic (shortly after your portfolio data changes, while sharing is on), and friends always see a "last updated" stamp on what they're looking at.

The full privacy story β€” including what the desktop app does and doesn't send β€” is in Privacy & your data.

A friend's portfolio

Click a friend and their shared snapshot opens: holdings as a weight histogram with relative gains, TWR/IRR cumulative and monthly charts (with a start-date slicer that re-bases the curve at any date you pick), allocation groups and the diversification score, risk figures, the buy plan, targets with drift β€” whichever of those the friend has ticked β€” plus the "last updated" stamp.

"uses demo data". A portfolio built (partly) from the demo seed β€” what the "Try with demo data" button loads β€” wears a small demo label beside its @handle, everywhere the handle appears: the feed, the friends list, the leaderboards and this dialog. Your own leaderboard row is marked too. It says what it says and nothing more: those returns and places were computed over synthetic data, so they are not a track record. The flag rides no share toggle β€” a disclaimer you could untick would let a synthetic return pass as a real one β€” and it clears itself on your next publish once the demo files are gone.

Friends who share performance also appear as selectable overlay curves in your own Portfolio value chart, right next to the benchmarks: "@handle TWR", "@handle IRR", and a drawdown curve in drawdown view. They're available in the Return/percent modes only β€” friends share no absolute values, so there is nothing to draw in value mode.

…and your own, seen the way they see it

Your own @handle β€” at the top of the Social tab, on your leaderboard row, on the byline of your own posts β€” opens the very same dialog, pointed at you. It answers the one question the rest of the app cannot: what do my friends actually see?

The important part is that it shows what is published, not a fresh calculation of what would be. Your stored snapshot is read back off the server and filtered by your share toggles exactly as a friend's read of it is, so this view can legitimately disagree with your dashboard β€” and those disagreements are the reason to look:

Everything in it stays written in your friends' words ("@handle's badges", "the plan @handle is on"), because that wording is the answer; a short line at the top says whose sheet it is. There is no Unfriend or Block on your own β€” the way out of your own sharing is βš™ Settings β†’ Social.

Two plain answers replace a spinner when there is nothing to draw. Nothing published yet β€” a brand-new account, or every box unticked β€” says so, and says that ticking a section sends the first snapshot within seconds. A snapshot that exists but carries no sections says that instead: it is on the server with its timestamp, and a friend opening it sees your @handle, your badges and nothing else.

Leaderboards

Under the friends list sits one ordered list of you and your friends per figure, best first β€” starting on the same annualized money-weighted return (IRR per year) the friends list prints beside each name. The sliding pill row offers every board somebody can actually fill, so a pill never opens a column of dashes, and the selected board lists everybody: no fold, nothing to click for the rest. Ties share a place (1, 2, 2, 4), your own row is marked and stays in its real position, and clicking any row opens that friend's shared portfolio, where the same standings appear as chips.

A friend with no number for that figure still appears, at the bottom, with a dash β€” dropping them would turn "they didn't say" into "they came last". The dash's tooltip says which of two things happened, because only one of them is about their privacy settings. If they don't publish that section at all, it reads "@x does not share Return p.a. (IRR)." If they do share it and only this figure is missing, it says so instead: "@x shares their performance, but no Return p.a. (IRR) came with it β€” they may have none to show yet, or publish from an app version that predates this figure. Not something they chose to hide." That second case is ordinary: a portfolio of ETFs reports none of the five company fundamentals, a beta needs a benchmark, and a portfolio under a year old has no annualized return at all.

One figure never goes missing for the wrong reason any more. A friend publishing from an older app version sends the return curve without the yearly rate on top of it, and the rate is recoverable from that curve exactly β€” the server has always done so for the headline beside their name in the friends list, and now hands the recovered figure to the boards and the friend's portfolio dialog as well. So the number beside a name and the number on the board below it can no longer disagree.

The boards are computed on your own device, and there is no leaderboard endpoint. They're assembled from your friends list and the snapshots your app has already fetched β€” each one already filtered by that friend's current toggles β€” so a board can never show a figure its owner doesn't share. Your own row is the exception that proves it: it's built locally with every rankable section switched on, whatever you publish, so you can see where you stand on a figure you share with nobody. That row never leaves your device, and it's labelled "not shared" on the board so the asymmetry is never mistaken for a leak.

Collapsing the side column

On a desktop window the « button beside your @handle collapses the whole left column — friends list and leaderboards — to a narrow rail of two vertical buttons, and the feed takes the freed width. Click Friends or Leaderboards to open that card, full size, in an overlay dialog (close with βœ•, Escape, or a click outside; a friend’s row inside still opens their shared portfolio on top). The count of pending friend requests stays visible on the minimized Friends button, so a waiting request never hides behind the collapse. The choice is remembered across visits; » expands the column back. The split is by pointer, not window width: on a desktop the minimized rail stays a rail however narrow the window gets, while touch devices keep the fold described above.

Badges

Badges are collectible titles your portfolio earns by itself β€” Diamond Hands, Index Monk, Bag Holder. They show in your trophy case (⚙ Settings → Social, and at the top of your profile when a friend opens it) and as a small row of marks next to your name in the feed and the friends list. There is nothing to claim, buy or turn on: the server works them out from what you already share, on every publish.

Hovering a badge tells you how it was earned, and the case keeps a "since" date β€” the day you first earned it. A badge you stop qualifying for quietly steps out of the case, and if you earn it again it comes back wearing its original date rather than starting over.

Where the name is a reference, an beside it tells you who or what it refers to. The Graham opens on Benjamin Graham (1894–1976), who wrote Security Analysis and The Intelligent Investor, gave investing the margin of safety and Mr Market, and taught Warren Buffett — and on why the badge waits for a portfolio trading at fifteen times earnings. Only the badges with a story carry the glyph.

Badges never reveal what you didn't share

This is the rule the whole feature is built around: a badge may only be derived from a section you already share (plus your own account facts β€” when you signed up, how many posts you wrote, how many reactions you handed out, when you last published). If the section a badge reads is unticked, the badge is simply not awarded, however well the portfolio fits the rule.

The reason is that a badge is public β€” it sits beside your handle. If Tech Bro could be earned without sharing Allocation, it would announce your sector concentration to exactly the people the toggle was meant to keep it from. So the locked tiles in your case name the section their rule reads, untick a section and the badges reading it retire with it (no re-upload needed), and badges are computed on the server from your stored snapshot β€” never claimed by the app, so no modified client can invent one.

Badges for what you hold

Fourteen badges read the shape of the portfolio β€” what it is made of, how concentrated it is, where in the world and in which currency it sits. Each one needs its section ticked, and the percentages are the same relative figures the rest of Social shares β€” weights and returns, never amounts.

BadgeHow you earn itNeeds shared
The Graham
The book trades on fifteen times earnings. You paid for what the companies earn, not for what they might.
A value-weighted P/E of 15 or less — and above zero, so a book of loss-makers cannot slip under the bar from below.Holdings
Growth Story
The companies you own are growing earnings a fifth a year. You are underwriting the future, and the future has been asked to deliver.
Earnings growing 20%+ a year and revenue growing 10%+. Revenue is the check: earnings alone can be buybacks.Holdings
Tech Bro
Two fifths of the portfolio runs on silicon. The future is fine; it just has a high beta.
The Technology sector is 40% or more of the portfolio.Allocation
Small Capper
A third of the book sits in small caps — the companies nobody at the party has heard of yet.
The small-cap bucket is 35% or more.Allocation
Degen
A quarter of everything is crypto. Sleep is optional; conviction is not.
The Crypto asset class is 25% or more.Allocation
Boomer Portfolio
Bonds and cash carry 40% of the load. Boring is a strategy, and it compounds beautifully.
Bonds plus cash are 40% or more.Allocation
Index Monk
Nothing above 10%, twenty-five positions or more. You made peace with the average, and the average is undefeated.
No holding above 10% and at least 25 positions.Holdings or Allocation
Long Tail
Twenty positions under half a percent each. Individually irrelevant, collectively a hobby.
At least 30 positions, 20 or more of them under 0.5% each.Holdings
All In
Two fifths of the portfolio in one position. That is not an allocation, that is an opinion.
The largest holding is 40% or more.Holdings
To the Moon
Something you own is up 200% and you still own it — which is by far the harder half.
A position is up 200% or more.Holdings
Bag Holder
A position is down 50% and you are still standing beside it. Everyone has one; most people just don’t say so.
A position is down 50% or more.Holdings
Globalist
Three continents, none of them more than half. You have decided not to have a view on any one government.
Three or more named regions carrying 10% each, and no single one above 50%. Unknown and Other are not continents and are left out of both counts.Allocation
Dollar Zone
Three fifths of the book is priced in dollars. You have a view on the Fed now, whether you asked for one or not.
60% or more of the portfolio is priced in US dollars.Allocation
Dry Powder
A seventh of the portfolio is sitting still. Cash is a drag right up until the week it isn’t.
Uninvested cash is 15% or more of the portfolio (read off the cash share, or off the Cash segment of the class breakdown on older snapshots).Allocation

Badges for how it has behaved

Ten more read the record rather than the contents: the returns, the ride, and whether the plan survived contact with the market. Same rule β€” no ticked section, no badge.

BadgeHow you earn itNeeds shared
The Buffett
15% a year for five years, and hardly a red one among them. Somebody has been reading the letters.
Annualised TWR of at least 15% over five or more years of tracked history, with positive returns in at least four of the last five whole years.Performance
The Alpha
Three points a year clear of the benchmark. The index does the same job for nine basis points, so this is either skill or a very good run — and both spend the same.
At least 3 percentage points a year more than your chosen benchmark, over a year or more. Your app works it out at publish time from the same benchmark line you have on the portfolio chart (the US-dollar line doesn’t count — it is cash, not a market); under a year of history publishes nothing rather than an extrapolation.Performance
Time Lord
Five years of tracked history — you have watched a whole cycle go by and stayed at the wheel.
Five or more years of tracked history, whatever the return.Performance
Diamond Hands
You sat through a 40% hole and came out more than 20% ahead of where you started. The chart still has the dent in it.
A 40% drawdown at some point in the shared return curve, and a cumulative TWR of at least +20% today. Both read off the curve your friends can actually see — the badge and the chart beside it are the same measurement.Performance
Iron Stomach
30%+ volatility and still in profit — you clearly open your statements less often than the rest of us.
Volatility of 30% or more and a positive TWR.Risk + Performance
Quiet Life
Beta under 0.7 and volatility in the low teens. When the market has a bad day you hear about it from other people.
Beta of 0.7 or less and volatility of 15% or less.Risk
The Sharpe
Sharpe above 1.5. The returns are good, and the ride was not the price you paid for them.
A Sharpe ratio of 1.5 or more.Risk
On Target
Nothing more than two points from where you said it should be. Somebody in here actually rebalances.
Three or more stated allocation targets, and every one of them within 2 points of its target. Positions you set no target for are not counted — they are not missed targets.Targets
Best Laid Plans
One of your targets is ten points adrift. The plan was excellent; the market simply had not read it.
At least one stated target 10 points or more adrift. The mirror of On Target: 10 is bigger than 2, so no portfolio can wear both.Targets
Standing Order
Three names or more in this month’s buying, and none of them more than two fifths of it. Boring, monthly, and it does the work while you sleep.
Three or more names in this month’s buy plan, and the largest of them no more than 40% of it.Buy plan

Account badges

The other six read nothing about your portfolio at all β€” only your own account: when you signed up, what you posted and reacted to, and how recently you shared.

BadgeHow you earn itNeeds shared
OG
Here before the crowd — your account predates the queue, and the paperwork proves it.
An account created before 1 January 2027 — the early-adopter era.Nothing (your account)
Paper Hands
Three sales inside a month. Decisive β€” or possibly just a spot of spring cleaning.
Three or more SELL trade events in the last 30 days. Needs the Trade events toggle on β€” with it off, those events are hidden from friends, so the badge is too.Trade events
Chatterbox
Twenty posts and counting. The feed would be a very quiet place without you.
Twenty or more posts written.Nothing (your posts)
Good Sport
Twenty-five reactions handed out to other people’s posts. Somebody has to do the clapping.
Twenty-five reactions or more put on other people’s posts. Applauding your own does not count.Nothing (your reactions)
Lurker
Ninety days in, publishing away, and not one word written. Read-only is a perfectly good setting.
An account 90 days old or more, still publishing (something shared in the last 30 days), with no posts written at all. Deliberately impossible to hold alongside Ghost.Nothing (your account)
Ghost
Sharing is on, but nothing new in 90 days. Your friends are waving at an empty chair.
Sharing is enabled but nothing has been published for 90 days or more.Nothing (your snapshot)

The feed

The feed is a chronological stream of your own and your accepted friends' posts β€” nobody else's, there is no public timeline. A post can carry:

You can delete your own posts at any time; older posts load on demand with a "Load older" button.

Automatic trade events

With the Trade events toggle on, your five largest trades of the last 30 days are posted to your friends' feeds as compact one-line events — "bought NVDA · about 3% of the portfolio", "sold Alpha Corp · about 12% of the portfolio". Every kind of trade counts: opening a position, closing one, adding to something you already hold, trimming something you are keeping. They are ranked by size, so what a friend reads is the trading that actually moved your portfolio rather than whatever happened to be most recent.

Each event is dated by the trade, not by the moment it was published, so a month of trading sent in one go reads as a month: the rows sit at the days they happened, newest first, rather than arriving in a block stamped with the same minute. The stamp is a day — “today”, “yesterday”, “3d ago”, then the date, with the full date on hover — because a day’s buying and selling of one asset is summed into one decision before anything leaves your device, so there is no clock time to publish. Your friend’s unread badge still counts by arrival: an event for a three-week-old trade is new to them the day it is posted.

The size is always relative, and it is the only size there is. A trade is ranked and described by what it was worth as a percentage of your portfolio. No quantity, no price, no amount and no total ever leaves your device, so there is nothing in an event a reader could work a figure out of — the same promise every other section on this page makes. The wording is deliberately coarse for the same reason: your friends do not know how big your portfolio is, so a second decimal place would be telling them something that means nothing to them.

Only your five largest go out, and the set is worked out afresh every time you publish. A trade you made today can therefore enter the top five and be posted; one that has already been posted stays posted, because it happened. What cannot happen is the same trade being posted twice — the server remembers every trade it has already written an event for, and that memory outlives the event itself. Deleting an automatic post, or pressing Delete shared data, will not cause it to come back.

What is never posted. A trade worth less than 0.05% of your portfolio is dust — a residue swept out of an account, a rounding leg, a few cents of staking income — and is skipped. So is anything that is not a decision you made: a transfer between your own accounts, a ledger correction (the closing rows an import writes to make your history end where your broker says it stands), income paid in kind, a fee, a corporate action. Those carry real sizes and would rank beautifully; none of them is a trade, and announcing one as a trade is worse than saying nothing. Beyond that, a friend adds at most five automatic posts a day to your feed, whatever the window contains.

How long they stay: 30 days. An automatic event is news for a few days and a steadily worse description of your portfolio after that — the position it announces may have been trimmed or closed since — so it stops being shared a month after it was posted, and drops out of your friends' feeds by itself. That is the same month the rule looks back over, deliberately: an event can never expire while the trade behind it is still shareable, so nothing flickers out of a feed and back into it. Posts you wrote yourself never expire: you chose to write them, so they stay until you delete them, or until you delete your account, which takes all of it with you. Unticking Trade events is the other way an event goes away, and it is instant: every read is filtered by your current setting, so the events you already posted stop being visible to your friends the moment the box comes off. Ticking it again brings back the ones that are still inside the month.

Two things that are not obvious. This toggle does not need Holdings — you can share what you trade without sharing what you own. And events are only ever created at the moment you publish: ticking the box today posts your top five of the last month straight away, but nothing reaches back further than that window, however long you have been trading.

Auto events are posts like any other: you can delete them, and with the toggle off none are ever created.

Reactions

Every post takes reactions from a fixed set of ten: πŸ‘ πŸ‘Ž ❀️ πŸ™‚ 😒 😠 πŸ’Έ πŸ’΅ πŸš€ πŸ“ˆ. Click to react, click again to take it back; each post shows the per-emoji counts with your own reactions highlighted.

A post wears only the reactions it has β€” the emoji somebody actually clicked, in the order above rather than by popularity, so a chip never moves under your cursor as other people vote. The rest of the set is one click away behind the ☺ Add a reaction button at the end of the row, which is all you see on a post nobody has reacted to yet. Taking a reaction back leaves its chip in place (at zero, no longer highlighted) until you leave the page, so a mis-click is easy to undo.

Your @handle & avatar

Everyone on Social has an @handle β€” lowercase letters, digits and underscores, 3–24 characters. A default is derived from your email's local part the first time you use Social; change it whenever you like under βš™ Settings β†’ Social (the old handle is freed for others). Friends can find you by handle or by exact email. Your own handle is also a button: pressing it anywhere on the tab shows you your shared portfolio as your friends see it.

You can also upload an avatar (downscaled in your browser before upload); without one, the app draws you a default avatar: a friendly flat figure — one of eight, with a different haircut or hat — on one of seven coloured discs, picked from your handle. It is always the same one for the same handle, on every device, and it is drawn in your browser rather than fetched from anywhere. The avatar shows on your posts, in friends' lists and on your account button in the topbar. Your browser makes two sizes of it: a small thumbnail, which is what travels with every post and every friend row, and a larger one used only where the picture is actually shown big — the enlarged view at the top of your profile. It keeps feeds light: the picture is repeated with each post, so the small size is the one that gets paid for over and over. Pictures uploaded before 11 August 2026 have only the large size and keep working; saving your profile once makes the small one.

Presence

Friends see a small online dot and a last-seen time next to your name. Presence reveals no portfolio data, which is why it is the one toggle that defaults to on β€” and it has its own switch in βš™ Settings β†’ Social if you'd rather not broadcast it.

The unread badge

The Social tab's button in the navigation carries a badge with an unread count: new posts from friends plus pending incoming friend requests. Opening the tab clears it. There are no emails, push notifications or pop-ups β€” the badge is the whole notification system.

On the desktop app

The desktop app joins the same social network as the hosted app β€” friends on the web and friends on desktop see each other identically. Because everything else in the desktop app is local, Social is its one online feature:

Accounts & plans

Social is a free-plan feature β€” nothing in it requires Pro. It does require a signed-in account: friendships need a durable identity to attach to, so guests see a "create a free account" prompt instead of the tab's content. Deleting your account removes everything Social knows about you β€” profile, friendships, snapshot, posts and reactions β€” along with the rest of your data.