JFrog [FROG]
Reproduction notes for every figure in this memo. Sources, formulas, and every place a vendor field was rejected.
| Item | Source | Why |
|---|---|---|
| Revenue, gross profit, operating income, R&D, G&A | AV INCOME_STATEMENT (normalized), verified against the FY2025 10-K |
AV normalized statements bypass the XBRL parsing surface where ~15 of ~20 known defects lived |
| S&M | Derived as a residual: grossProfit − operatingIncome − R&D − G&A |
AV's sellingGeneralAndAdministrative is G&A ONLY. See §4 |
| SBC, D&A, OCF, capex | AV CASH_FLOW, verified against the 10-K |
D&A always from the cash-flow statement, never the income statement |
| Cash, investments, debt, leases | EDGAR companyfacts + Q1'26 10-Q |
net_cash was wrong on ~20 of 22 names verified elsewhere; rebuilt by hand |
| Shares outstanding | EDGAR 10-Q balance sheet + cover page | AV's field is diluted weighted-average. See §4 |
| RPO, deferred revenue, billed/unbilled | EDGAR ONLY | AV's deferredRevenue is present-but-NULL on several names; routed through EDGAR per the brief |
| NRR, customer counts, cloud/self-managed mix | 10-K / 10-Q narrative and Note 3 | Not carried by any statement API |
| Guidance, long-term model | AV EARNINGS_CALL_TRANSCRIPT |
|
| Prices, vol, options | Alpaca (SIP daily bars; options snapshots) |
Calculated billings = revenue + Δ(ContractWithCustomerLiabilityCurrent + ContractWithCustomerLiabilityNoncurrent)
Current RPO = RevenueRemainingPerformanceObligation × RevenueRemainingPerformanceObligationPercentage
Precision caveat: FROG reports RPO to $0.1m and the percentage to 1pp, so derived current RPO carries
roughly ±$5.7m of rounding, or ±1.0pp on any growth rate. Smaller than the SentinelOne case (RPO
rounded to the nearest $100m, ±4.3pp on every growth rate) but stated rather than ignored.
Unbilled RPO = total RPO − total deferred revenue.
Validated: ties to the disclosed billed/unbilled split in all seven periods checked (Q1'26:
computed $233.4m vs disclosed "unbilled considerations of $233.4 million").
Operating margin = operatingIncome / totalRevenue. Never AV's ebit or OVERVIEW.OperatingMarginTTM.
EBITDA = operatingIncome + |cash-flow D&A|. AV's ebitda field is never used.
TTM = four consecutive quarterly periods. Never last-FY (understated MU by 136%, SNDK by 76%). EDGAR does not tag fiscal Q4 — it lives inside the annual duration — so AV's normalized quarterly series is the right instrument here and was verified against the 10-K annual totals.
Same-quarter DSO = AR / quarterly revenue × 91.25. Not TTM-basis — TTM DSO produces a false
AAOI positive on any accelerating name, and FROG is accelerating.
Net cash = cash + restricted cash + short-term investments + long-term investments − total debt − operating lease liabilities.
EV is stated LEASE-INCLUSIVE ($725.508m net cash). Ex-leases it is $741.955m. The CRWV precedent —
a lease-exclusive anchor at 6.6x that was really 7.95x — invalidated a seven-name ladder.
Ex-SBC operating margin = (operatingIncome + SBC) / revenue.
Ex-Δdeferred-revenue operating cash margin = (OCF − Δ total deferred revenue) / revenue.
EV/Sales history: for each trading day, TTM revenue as known at that date (stepped in at the
actual 10-Q/10-K filing date from EDGAR submissions), with as-known share count and net cash from
the same filing. Not current values held constant — FROG's share count rose from ~95m to 121m and net
cash from ~$400m to $726m over the window, so holding either constant would distort the early series.
reverse_dcf.py --spot 73.275 --shares 121.157 --net-cash 725.508 --revenue 563.410 --years 5
--wacc 0.10 --terminal-margin 0.13 --exit-multiple 15 --fcf-margin 0.269 --solve cagr
--fcf-margin IS PASSED. Omitting it makes the solve terminal-only, which overstates the required
CAGR in proportion to cash generation — measured at +6.04pp at a 26% FCF margin. On FROG the
difference is 64.2% (terminal-only) versus 53.7% (with interim FCF), a 10.5pp error had it
been omitted.implied_value, not required_cagr — keying on the latter silently reports
"no solution".| Field | What it returned | What is true | Error |
|---|---|---|---|
sellingGeneralAndAdministrative |
$81.151m (FY2025) | G&A only; S&M is a further $222.075m | 41.76pp of revenue. Building the terminal margin from AV's fields alone gives +24.85% for a year that printed −16.91% — a 41.8pp error, in the direction that manufactures a false PASS. Third name confirmed after NOW (4.72x) and INTU (4.77x) |
OVERVIEW.OperatingMarginTTM |
−7.38% | −14.09% | 6.71pp. Not the latest quarter either (−8.40%), so it is neither a TTM nor a clean quarter |
commonStockSharesOutstanding |
120,159,000 | 121,157,301 | −0.82%, $73.1m of market cap. The value is byte-equal to EDGAR's WeightedAverageNumberOfDilutedSharesOutstanding (120,159,190). Fifth name confirmed |
OVERVIEW.MarketCapitalization |
$9,257m | $8,878m | +4.3%, +$379m. Stale price — implies $76.40/share vs an actual $73.275 |
OVERVIEW.EBITDA |
−$52,097,000 | −$58.4m | Unusable; EBITDA computed by hand |
EARNINGS_ESTIMATES |
{"estimates": []} at HTTP 200 |
22 rating analysts per AV's own OVERVIEW | Total absence of a well-covered name. Twelfth name. Recorded INDETERMINATE; blocks nothing |
cashAndCashEquivalentsAtCarryingValue |
$61.677m | $60.966m | +$711k — exactly the restricted cash, folded in without labelling. Trivial here, but a silent definitional difference |
Fields where 0 / absent was CORRECT and was verified rather than assumed (the WDC precedent — treating 0 as missing invents a liability):
longTermInvestments = None → correct. No non-current marketable securities on the Q1'26 balance sheet.longTermDebt = None → correct. JFrog has zero borrowings. The only debt-like item is a
$16.447m operating lease liability, which AV reports (correctly) as shortLongTermDebtTotal.SPLITS = {"data": []} → correct and stated explicitly. No splits since the 2020-09-16 IPO.Fields that agreed to the dollar (the only checks with power are against a source AV did not produce):
| AV | 10-K | ||
|---|---|---|---|
| FY2025 OCF | $145,729k | $145,729k | ✓ |
| FY2025 capex | $3,460k | $3,460k | ✓ |
| FY2025 FCF | $142,269k | $142,269k | ✓ |
| FY2025 SBC | $156,657k | $156,657k | ✓ |
| FY2024 FCF | $107,781k | $107.8m / 25% margin, Q4'24 call | ✓ |
| FY2023/24/25 revenue, GP, op. income, R&D | all | all | ✓ |
Conclusion: AV's normalized statements are reliable on FROG for every line except the four listed above. The defect surface here is the derived and overview fields, not the statements.
Non-GAAP to GAAP, Q4 2024: company-reported non-GAAP operating margin +18.0% against a GAAP −21.89% — a 39.89pp gap, essentially all SBC (38,769/116,078 = 33.4% of revenue) plus acquired-intangible amortisation. The company's reported FY2024 "gross margin of 83.8%" is non-GAAP against a GAAP 77.06%, a 6.7pp gap.
FY2026 guide translated to GAAP: $114m non-GAAP operating income on $630m = +18.1%. Less SBC at roughly 26.7% of revenue and ~2.2pp of intangible amortisation gives an implied GAAP operating margin of approximately −10.8%, an improvement of +6.1pp on FY2025's −16.91%.
$800m FY2027 target arithmetic: from FY2025's $531.840m, $800m is a 22.65% two-year CAGR — which is below the demonstrated 25.0%. From the FY2026 guide of $630m, however, it requires +27.0% in FY2027, an acceleration from the guided +18.5%. Both statements are true and they are the whole disagreement between management and the analyst who called the target "aspirational." The target is easy off actuals and hard off the guide, which is another way of saying the FY2026 guide is conservative.
Q3 2024, the structural break: total RPO +$74.1m QoQ while deferred revenue rose only +$22.9m; unbilled RPO doubled $50.7m → $101.9m; the disclosed 12-month RPO percentage fell 82% → 71%. Every subsequent finding in this memo — billings below revenue, flat FCF margin against expanding GAAP margin, rising DSO — dates from this quarter.