You can estimate the growth of a private company without financial statements, because a company that publishes no accounts still hires, raises capital, changes its website and announces in public, and each of those acts leaves a dated trace. This guide sets out what each trace supports, gives the queries that put one company's traces side by side over time, and works an example through to a range with its assumptions. It is written for the analyst who has to defend the number in competitor research, deal sourcing or account selection.
How can you estimate growth at a private company without financial statements?
To estimate the growth of a private company without financial statements, collect the dated traces it leaves in public, take its latest stated headcount as the base, and bound the change since then from the roles it opened and closed. State the result as a range with its assumptions, and test it against the next stated figure.
The method has six steps.
- List the traces. Write down every public record the company has left, by kind.
- Date each one. Record the date the fact refers to and the date it became visible.
- Fix a base. Take the latest stated headcount with its as-of date. Where none is stated, place the company in a band first.
- Bound the change. From the base date onward, count the postings opened and closed. Convert closures to hires, and the base to leavers, with two assumptions you write down, each as a low and a high value.
- Corroborate the direction. Check the range against traces that share no input with it: the traffic tier, capital sold, technologies added and announcements.
- Report and test. State the range, the assumptions and the as-of date. When the company next states a count, compute the assumptions it implies and carry them forward.
Sourcing private companies for venture capital ranks many companies for a first call, and commercial due diligence with public signals compares a target with a panel. This guide measures one company over time.
Employee count, funding, web traffic and SEC notices: how to estimate private company growth for competitor intelligence
Each public trace measures one thing on one date. A stated employee count gives size on its as-of date, a notice of a private offering filed with the SEC gives capital sold by its filing date, open roles give hiring intentions, and a web traffic tier gives a monthly band of reach. Together, under stated assumptions, they bound growth.
| Trace | Who speaks | What it measures | The date it carries | What it leaves open |
|---|---|---|---|---|
| Notice of a private offering | The issuer, on a form the SEC defines | The amount offered and the amount sold in one exempt offering | The first sale and the filing | Sales made after the filing, until an amendment restates the amount sold |
| Stated headcount | The company, or public reference data | Employees on one date | The date the count refers to | The path between two statements |
| Open roles and their mix | The company, on its careers board | Intended hires by function, seniority and country | Every day, and each role's first-seen and close dates | Whether a role was filled, and by how many people |
| Technologies added | No one. It is observed on the website | Tools present, with each adoption and removal | The time the change was observed | Seats, spend and depth of use |
| Announcements | The company, in its newsroom | Launches, partnerships, expansion, funding rounds and leadership roles | The day the company published | What the company chose to leave unsaid |
| Traffic tier | No one. It is a monthly measure of the website | Reach, as a rank bucket among websites | The month | Visitor counts, and movement inside a bucket |
The six rows arrive as Fokals datasets joined on one company ID: Company Funding, Employee Headcount, Hiring Activity with Job Postings, Technology Changes, Company News and Web Traffic, the monthly traffic tier of each website. Daily and weekly rows are written once and never revised, so a month you read today is the month as first written. The hiring and announcements and scale pages describe them.
How to estimate private company stage and scale from public filings and announcements
Estimate stage from the sequence of dated capital events and scale from what the company staffs and states. Public filings give the first: a notice of a private offering, or a return of each share allotment. Announcements and postings give the second: expansions, leadership roles and open positions. Keep each fact with its date and speaker.
The US notice. The SEC describes Form D as the form used to file a notice of an exempt offering of securities, due within 15 days after the first sale (Filing a Form D notice). Rule 503 of Regulation D adds two facts that decide how to read a sequence of notices (17 CFR 230.503). An amendment is due annually, on or before the first anniversary of the notice or of its most recent amendment, if the offering is continuing at that time, and every amendment must give current information on all the form requires. The rule also lists changes that, occurring alone, call for no amendment, among them a change in the amount of securities sold and in the total number of investors. So the amount sold speaks for its filing date, and a notice left unamended is silent on sales since. The entry on Form D and the guide to following private funding cover the notice in full.
The UK register. Under section 555 of the Companies Act 2006, a limited company must deliver a return of allotment to the registrar within one month of allotting shares, with a statement of capital that gives the total number of shares and their aggregate nominal value (legislation.gov.uk). Successive returns therefore date each issue of new shares to within a month. GOV.UK states that some details about a company are free, among them document images and mortgage charge data, and links to the Companies House service that searches the register (Get information about a company).
Announcements. In Company News, a funding round, an expansion and a leadership change are among 13 event types, each dated to the day the company published it, or to the day it was first seen where the company gives no date. Each website also carries a growth stage label, shown in the dashboard and the data browser.
Report stage as dated facts: two offerings on record, the later filed in a named month with a stated amount sold. A round letter belongs to the company's own announcement.
How to estimate the size of private companies that disclose little information
A private company that discloses little still shows its size in what it publishes to hire and sell: a careers board, a website and announcements. Place it in a band from its open roles, the functions it staffs and its traffic tier, add any stated headcount with its date, and report the band, never a point.
How little a register holds is set by law. GOV.UK sets out that a small company may choose whether or not to send its profit and loss account and directors' report to Companies House, and that a micro-entity may send only a balance sheet with less information. The size tests combine turnover, the balance sheet total and employees, with 50 employees or fewer for a small company and 10 or fewer for a micro-entity, and a company qualifies on any two of the three (accounts for micro-entities, small and dormant companies). The class a company files under is a clue to its scale and never proof on one measure.
For a company with no stated count, calibrate on companies that state one. Take peers you judge comparable, compute open postings per 100 stated employees for each, and read the quartiles. The SQL on this page is PostgreSQL over datasets loaded from bulk files. A name that starts with a colon is a parameter you set, every date is one, and peer_set is your own table of company IDs.
with stated as (
select distinct on (company_id) company_id, employees, as_of
from company_headcounts
where company_id in (select company_id from peer_set)
and as_of between :count_from and :count_to
order by company_id, as_of desc
),
pace as (
select 100.0 * h.open_postings / s.employees as open_per_100
from stated s
join company_hiring_daily h
on h.company_id = s.company_id and h.day = :as_of_day
where s.employees > 0 and h.open_postings > 0
)
select count(*) as peers,
percentile_cont(0.25) within group (order by open_per_100) as p25,
percentile_cont(0.75) within group (order by open_per_100) as p75
from pace;employees is the count as stated and as_of the date it refers to, so the two date parameters keep old counts out. Divide the quiet company's open postings by p75, times 100, for the low end of its band, and by p25 for the high end. Name the result in the six bands of stated employees that Market Series uses, from 1-10 to 5000+. Store the peer set beside the band, because the method assumes the company opens roles at the pace of its peers.
Which proxy metrics help estimate private company revenue growth?
Proxy metrics for a private company's revenue growth measure capacity and demand: net hiring, the sales share of open roles, technologies added to the website, the monthly traffic tier, announced launches and partnerships, and capital sold. They support a range for growth in capacity. Translating that into revenue takes an assumption you state.
- Net hiring. Postings closed, converted to hires, less leavers. A posting records an intention to hire, so the conversion is an assumption.
- Sales share of open roles. Open sales postings beside all open postings, each closed week, in Sales Team Metrics. The guide to tracking sales team build-out reads it in depth.
- Traffic tier. A smaller bucket is a step up in reach. A bucket is a range, so a company can grow for months inside one.
- Capital sold and technologies added. A notice dates new means, and a detection dates a tool's presence on the website.
To carry a capacity range into revenue you need revenue per employee and its trend. Keep that bridge as a named assumption, and report capacity growth as the measured part.
How to track the growth of a privately held competitor company
To track the growth of a privately held competitor, resolve it to one company record by its website, then pull the same measures every month: open roles and their mix, postings opened and closed, technologies added, announcements, private capital raises, the traffic tier and any stated headcount. Keep each month as first read.
The query returns one row a month for one company, with the first day of a month as :from_date and the last day of a month as :to_date.
with hiring as (
select date_trunc('month', day)::date as month,
sum(new_postings) as opened,
sum(closed_postings) as closed,
(array_agg(open_postings order by day desc))[1] as open_at_month_end
from company_hiring_daily
where company_id = :company_id
and day between :from_date and :to_date
group by 1
),
stack as (
select date_trunc('month', observed_at)::date as month,
count(*) as tech_added
from company_tech_events
where company_id = :company_id
and category = 'technology' and change = 'added'
and observed_at >= :from_date
and observed_at < :to_date::date + 1
group by 1
),
news as (
select date_trunc('month', "at")::date as month,
count(*) as announcements
from company_news
where company_id = :company_id
and "at" >= :from_date
and "at" < :to_date::date + 1
group by 1
),
raises as (
select date_trunc('month', filed_at)::date as month,
max(amount_sold) as amount_sold
from company_funding
where company_id = :company_id
and filed_at between :from_date and :to_date
group by 1
),
traffic as (
select month, min(rank_bucket) as traffic_bucket
from traffic_ranks
where company_id = :company_id
and month between :from_date and :to_date
group by month
),
staff as (
select date_trunc('month', as_of)::date as month,
max(employees) as stated_employees
from company_headcounts
where company_id = :company_id
and as_of between :from_date and :to_date
group by 1
)
select h.month, h.open_at_month_end, h.opened, h.closed,
s.tech_added, n.announcements, r.amount_sold,
t.traffic_bucket, e.stated_employees
from hiring h
left join stack s using (month)
left join news n using (month)
left join raises r using (month)
left join traffic t using (month)
left join staff e using (month)
order by h.month;open_postings is the count at the end of each day, so the last day read in a month gives the month-end figure. new_postings leaves out postings already on a board at its first read, so a newly read board adds no false burst. rank_bucket, loaded as a number, is the smallest bucket a website falls in, and smaller is more traffic. employees appears only in a month a stated count refers to, and the months between are yours to bound.
For the mix of roles, read by_function and by_seniority in Hiring Activity on the first and last day of the window. The guide to reading a competitor's strategy from its hiring takes the mix further.
A worked example: a growth range for Acme Robotics
Acme Robotics is an invented company, and this example is illustrative.
Assumptions:
- Acme Robotics is private. Its latest stated headcount is 200, as of 31 December 2025.
- The window runs from 1 January to 30 September 2026, counted as 0.75 of a year.
- In the window it opened 112 postings and closed 100. It had 24 open postings at the start and 36 at the end.
- Fill share: between 60 and 90 percent of closed postings ended in a hire, one hire each.
- Leavers: between 12 and 24 percent of the base staff leave in a year.
- Open sales postings rose from 3 of 24 to 9 of 36, and the traffic bucket moved from 500000 to 100000.
- A notice filed on 12 March 2026, ten days after the first sale, states $15,000,000 offered and $9,000,000 sold.
The leaver band is the weaker assumption. The US Bureau of Labor Statistics reported a quits rate of 1.9 percent for total nonfarm in August 2026, seasonally adjusted (Job Openings and Labor Turnover Summary, 29 September 2026). The same release puts all separations, quits among them, at 3.2 percent. Twelve months at the quits rate would sum to 22.8 percent: this page's own rough arithmetic and no official annual rate, for quits alone across the whole economy, which one company can sit well away from.
The working:
- Check the counts. 24 plus 112 minus 100 is 36, the open postings at the end.
- Hires. 100 × 0.60 = 60 at the low end, and 100 × 0.90 = 90 at the high end.
- Leavers. 200 × 0.12 × 0.75 = 18 at the low end, and 200 × 0.24 × 0.75 = 36 at the high end.
- Net change. The least is 60 minus 36, or 24. The most is 90 minus 18, or 72.
- Direction. The sales share went from 12.5 percent (3 ÷ 24) to 25.0 percent (9 ÷ 36), the bucket became smaller, and 60 percent of the offering (9 ÷ 15) was sold by 12 March.
| Measure | Low case | High case |
|---|---|---|
| Hires in the window | 60 | 90 |
| Leavers in the window | 36 | 18 |
| Net change | 24 | 72 |
| Headcount on 30 September 2026 | 224 | 272 |
| Growth over nine months | 12.0% | 36.0% |
Under these assumptions Acme Robotics grew by 12.0 to 36.0 percent in nine months. The three other traces agree on the sign and leave the width to the two assumptions.
To test it, suppose Acme Robotics later states 250 employees as of 30 September 2026. The net change was 50. With 18 to 36 leavers, hires were 68 to 86, a fill share of 68 to 86 percent of the 100 closed postings. Carry that narrower band into the next window in place of 60 to 90.
Crunchbase, PitchBook and SEC records: estimating private company size, revenue, employees and funding
A private company's size, employees and funding come from three kinds of record: a compiled database, the notices issuers file with the SEC, and signals observed on the company's own pages. Read each for what it is: a compilation, a filing, an observation. Reconcile them on dates before comparing figures.
Crunchbase is one compiled database. Its data page lists funding rounds, revenue ranges and key financial milestones under financials, industry, legal status and employee count under firmographics, and acquisitions, funding rounds, investments, fund formations and IPOs as point-in-time events, with access through its platform, an API and data licensing. PitchBook is described in our guide to PitchBook alternatives, and Crunchbase at more length in our guide to Crunchbase alternatives.
The SEC's record is the notice itself, in the issuer's words, read with the rule set out above. Fokals adds the observed record: hiring refreshed daily, announcements daily to every three days, the monthly traffic tier and stated headcount over time, joined on one company ID and delivered by REST API or as bulk files.
Put each record on its own date before you compare: a compiled figure on the date it refers to, a notice on its filing date, an observation on the time it was observed. The data dictionary defines each field named here, and the methodology sets out how each dataset is built.
Frequently asked questions
What signals help estimate private company revenue, headcount and funding stage?
Three groups of signals. For headcount: a stated count with its date, then postings opened and closed since. For funding stage: notices of private offerings and the company's funding announcements, in date order. For revenue: capacity and demand proxies, namely net hiring, the sales share of open roles and the traffic tier, bridged by an assumption you state.
Can you estimate a private company's revenue from its employee count?
An employee count measures capacity on one date. Turning it into revenue takes revenue per employee, which differs from one business model to the next and moves as a company grows, so the result is an assumption multiplied by a measurement. Report the headcount range as the measured part, and state any revenue bridge separately, with where it came from and its date.
How wide should a growth range for a private company be?
As wide as its assumptions. In the illustrative example on this page, a fill share of 60 to 90 percent and a leaver rate of 12 to 24 percent a year give growth of 12 to 36 percent over nine months. The range narrows when a new stated count lets you compute the fill share it implies, and that narrower band then carries into the next window.
How often should a growth estimate for a private company be refreshed?
Monthly suits the data. Hiring refreshes daily, announcements daily to every three days and the traffic tier monthly, while a stated headcount changes when a new count is stated. Rerun the monthly query on a fixed day, keep each run with its date, and recompute the range whenever a new stated count or a new notice arrives.
What is the difference between a private company's stage and its scale?
Stage is where a company stands on its funding path, and it is read from dated capital events: notices of private offerings, returns of share allotments and funding announcements. Scale is its size now, read from a stated headcount, the roles it staffs and its traffic tier. A company can raise early and stay small, so estimate the two separately.
The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.
What this page says about the products it names was checked against their public documentation on 7 October 2026. Product and company names are trademarks of their owners. Fokals is not affiliated with them or endorsed by them.