Compare any company against its peer group in one screen
Type in a ticker and get a side by side scorecard of its closest competitors, saved as a named set you can reload before every board meeting.
Build me a competitive benchmarking app. I type in one ticker, the anchor company, and immediately see how it stacks up against its peer group, so I stop rebuilding the same comparison spreadsheet before every board meeting. The audience is investor relations, corporate strategy and competitive intelligence teams.
The main screen is a ticker box. When I enter a ticker, call Finnhub Company Peers to assemble a suggested peer set, then show that set as an editable list before anything is fetched or saved. I must be able to remove suggested peers, add companies by typing their ticker, and reorder the list, with the anchor company pinned first and clearly marked. This editing step is important and should not be skipped or hidden: Finnhub peers are grouped by sector and industry, and the set we actually compare against is usually different, so the saved set must always be my edited version, not the raw suggestion.
Once I confirm the set, render a side by side comparison table where each column is a company and each row is a metric. Group the rows into sections. Valuation and margin metrics come from Finnhub Basic Financials. Current price and the day move, as both absolute change and percent, come from Finnhub Quote. The analyst buy, hold and sell split comes from Finnhub Recommendation Trends, using the most recent period, and should read as a small stacked bar or a compact count per rating so I can scan it across columns. Market cap and industry come from Finnhub Company Profile 2. Highlight the anchor column so it stands out, and make it obvious per row whether the anchor is above or below the peer median.
Fetch all of this server side in a single handler that takes the whole ticker list and fans out internally, then cache the assembled result per ticker. Do not fire a request per cell. Finnhub free keys are capped at 60 calls per minute and a peer set can easily be ten companies across four endpoints, so batch the work, reuse cached company data across renders, and degrade gracefully if a single company fails rather than blanking the whole table.
Stay on Finnhub free tier data only. Company Peers, Basic Financials, Quote, Recommendation Trends, Company Profile 2, Company News and News Sentiment are all free tier. Do not use Financials, Revenue Breakdown or any of the analyst estimate endpoints, and do not use the premium Company Profile: they return 403 without a paid plan.
I want to save named peer sets to a Google Sheet. Use two tabs. A peer sets tab stores the set name, the anchor ticker, the ordered member tickers and the last updated date, written with Google Sheets Append Values when I save a new set and Google Sheets Update Values when I rename or change the membership of an existing one. A snapshots tab collects the comparison itself: every time I save, append one dated row per company capturing the metrics that were on screen, so the numbers I pulled on a given date are kept as a historical snapshot I can look back at rather than being overwritten. Read both tabs back with Google Sheets Get Values to populate a sidebar of saved sets that load the full comparison in one click.
Add a 'Write the competitive read' button that kicks off a background agent over the saved peer set. The agent pulls Finnhub Company News and Finnhub News Sentiment for each company in the set over a recent trailing window, combines that with the metrics already on screen, and produces a short positioning narrative on where the anchor company leads and where it lags: valuation relative to the group, margin position, analyst sentiment versus peers, and what the recent news flow suggests about momentum. Keep it tight and readable, a few paragraphs with the leads and lags called out explicitly, not a data dump. While it runs, show progress in the app rather than blocking the table.
The finished narrative lands back in the app in a panel next to the comparison, and is stored against the saved peer set so I can reopen the set later and still see the read that was written at the time. From that panel give me a button to push the write up to a channel with the Slack Bot Send a Message action, with a channel picker and a chance to review the text before it posts.
What does this prompt do?
- Enter one ticker and the app builds the peer group for you, then lays every company out side by side: valuation and margin metrics, current price and day move, the analyst buy, hold and sell split, plus market cap and industry.
- Lets you fix the peer list by hand before you save it, because the automatically suggested competitors are based on sector and industry and are not always the companies you actually benchmark against.
- Saves named peer sets to your own Google Sheet so your usual comparisons load in one click, and keeps every save as a dated snapshot you can look back at.
- A 'Write the competitive read' button sends an assistant off to read recent news and sentiment on every company in the set and write a short positioning narrative on where your company leads and lags, which you can post straight to Slack.
What do I need to use this?
- A Finnhub account. The free plan covers everything this app shows.
- A Google account, so peer sets and dated snapshots can be saved to a spreadsheet you own.
- A Slack workspace, if you want to post the written competitive read to a channel.
- The ticker symbols of the companies you benchmark, so you can correct the suggested peer list where it is wrong.
How can I customize it?
- Change which rows appear in the comparison table, and the order they show in, so the metrics your board actually asks about sit at the top.
- Set how far back the competitive read looks for news, and how blunt or formal the narrative reads.
- Pick the Slack channel the write up goes to, or turn the Slack step off and keep everything inside the app.
FAQs
Do I need to pay for a Finnhub plan?
Can I change the competitors it suggests?
Where do my saved peer sets live?
Can I look back at what the numbers were last quarter?
Who is this for?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Stop rebuilding the same competitor spreadsheet every quarter.
Save your peer sets once, reload them in a click, and keep a dated record of how the comparison looked each time you ran it.