Forward deployed engineering: the complete guide / Commercials
Revenue per forward deployed engineer
Revenue per embedded engineer, tracked over time, is the single number that tells you which business you are in. It has to rise. When the platform takes in what engineers learned at customer sites, each engineer handles more accounts and the number rises. If it stays flat while custom work accumulates, you are running a services business that has not admitted it yet. The benchmark for what a rising curve looks like is the previous generation: ServiceNow's gross margin at IPO was 63.2 percent and Workday's 54.1 percent, reaching 79 and 75 percent by 2024.
Published September 8, 2026. Editorial.
Key takeaways
- The number must rise over time. Flat revenue per embedded engineer with growing custom work is the definition of the services problem.
- a16z's benchmark for the healthy direction: ServiceNow 63.2 percent gross margin at IPO to 79 percent in 2024, Workday 54.1 percent to 75 percent.
- Track it quarterly on a rolling basis, and pair it with the share of shared versus custom code per deployment.
- If the number is flat, hiring more embedded engineers makes the problem bigger rather than solving it.
One number, tracked as a trend over multiple quarters rather than read once. It answers a question most companies running this model avoid asking out loud, because the honest answer sorts them into one of two different kinds of business with two different valuations.
What to calculate
Revenue attributable to accounts served by embedded engineers, divided by the number of embedded engineers on those accounts, over a rolling period.
Keep it simple and keep it consistent over time. The absolute value is not comparable to anybody else's, because what counts as attributable revenue differs by company. The trend within your own numbers is what matters, so pick a definition and do not change it.
Track it quarterly, on a rolling basis. Monthly figures change too much to read as a signal, and annually is too late to act on if something has gone wrong.
Why it must rise
The economic case for spending margin on embedded engineers is that they learn things that improve the product, so the next deployment is cheaper. If that is happening, then over time each engineer serves more accounts, or the same accounts with less custom work, and revenue per engineer rises.
If it is flat, the learning is not being turned into product. Each deployment is starting with almost nothing reused, and the margin you spent bought a delivered project rather than a lasting capability. a16z's Marc Andrusko describes that end state as bespoke deployments impossible to maintain or upgrade, with revenue growing and no reusable work building up.
The uncomfortable version: flat revenue per embedded engineer means adding engineers adds revenue linearly, which is the definition of a labour business. That is a legitimate business and it does not deserve a software valuation, and pretending otherwise is what Andrusko's piece is about.
The mechanism is worth stating in full, because the number by itself does not explain why it rises. Every embedded engineer who ships something at a customer site learns two things: a fact about that customer's environment, and a fact about what the platform is still missing. The productization loop is what turns the second fact into a capability every future customer gets for free. When that loop runs, each new deployment starts closer to finished, the engineer spends less time on work that has been done before, and the same engineer can therefore take on more accounts within a year. Revenue per engineer is the number that shows this happening from the outside, without needing to inspect a single codebase.
What a healthy direction looks like
The best public benchmark is the previous generation of enterprise software, from a16z's Trading Margin for Moat.
ServiceNow's gross margin at IPO: 63.2 percent. In 2024: 79 percent.
Workday's gross margin at IPO: 54.1 percent. In 2024: 75 percent.
Both started below the 80 percent software investors treat as normal, and they rose by 15.8 and 20.9 percentage points as the early services work turned into product. That rise is the whole argument. A company that stays at its starting margin for a decade did not execute the second half of the plan.
Gross margin and revenue per engineer are not the same metric, and they move together for the same reason: both improve when the platform takes over what engineers at customer sites were doing by hand.
Neither company reached its healthy margin quickly, and the pattern is instructive for how to read your own curve. A company that expects a straight, steady climb from its own starting number will be disappointed by the reality, which is closer to a series of steps: a period of near-flat margin while a capability is being built, followed by a jump once it ships and starts serving multiple accounts, followed by another near-flat period while the next capability is built. If you are two quarters into a flat period and you know exactly what capability is being built and when it ships, that is a normal step. If nobody can name what is being built, it is the warning sign described below wearing a patient face.
When flat is fine, briefly
Two cases.
The first year. With only three deployments there is nothing to generalise across yet and the number means little. Start tracking it anyway and do not react to it.
A deliberate market expansion. Entering a new industry resets the custom share, because the domain models and connectors for that market do not exist. Revenue per engineer dips and should recover. Say out loud that this is what you are doing, with an expected recovery period, so the dip does not become permanent by accident.
Outside those, flat is a warning sign.
What to do when it is flat
Do not hire more embedded engineers. This is the instinct and it makes the problem bigger. More engineers on more accounts producing more custom code makes the maintenance burden worse and the margin no better.
Check whether the productization loop exists. Is there a fixed schedule, a named owner with authority to move work into the platform, and a stop rule applied out loud? If any of the three is missing, that is the cause. The productization loop covers the mechanism.
Check the reporting line. A function under sales or inside a services unit with its own margin target has a structural incentive against generalising. Where the function should report covers why.
Check the shared-versus-custom ratio per deployment. If the custom share grows with each account rather than shrinking, you have the measurement to prove the cause.
Check whether you are serving accounts that should be served with a template. First Round Review's guidance is to reserve embedded engineers for the highest-value accounts with genuinely non-standardised needs, and to serve smaller accounts with repeatable implementations. Embedded engineers on accounts that did not need them will keep this number low by themselves.
Run through these checks in order rather than jumping to whichever one is most comfortable to discuss. A team will often reach for the account-selection explanation first, because it does not implicate anyone's process, when the real cause is that the productization loop has no named owner. Check the loop and the reporting line before checking account fit, since those two structural causes are both more common and more expensive to leave unaddressed.
The pair to track alongside it
Revenue per engineer is a lagging indicator. It moves quarters after the cause.
Pair it with the share of shared versus custom code per deployment, which is a leading indicator and moves within a deployment. When the custom share starts growing per account, revenue per engineer will stop rising two or three quarters later. Catching it on the leading indicator is the difference between an adjustment and a restructure.
Measuring the function covers the full set.
The lag matters most at exactly the moment leadership wants a fast answer. A board asking why the number has not moved this quarter is asking about a cause that, if the loop is healthy, happened two or three quarters ago and has already been visible on the leading indicator since. This is the strongest argument for reporting both numbers side by side rather than revenue per engineer alone: the leading indicator gives an honest answer to "what is happening right now," while the lagging one gives an honest answer to "did the last correction work."
For a buyer
This metric is also a question to ask a vendor, and it is the most useful one on Andrusko's list of tests: what does year-three margin look like on mature customers?
A vendor whose margin never improves on long-standing accounts is running a labour business, and your renewal price will reflect that permanently. A vendor whose margin improves has been generalising, which means the thing they built for you is maintained rather than frozen.
Ask the question with a specific reference point rather than in the abstract. Naming one of your own accounts that is two or three years into the relationship and asking directly whether the vendor's cost to serve it has fallen forces a concrete answer rather than a general claim about efficiency. A vendor who can only answer in principle, and not for a real account, has not been tracking the number internally either, which is itself informative about how seriously they take the distinction this page is built around.
Questions to ask a vendor has the rest.
Best for
- Diagnosing whether an embedded function is building reusable value or only delivering projects
- Deciding whether to hire more embedded engineers
- Testing a vendor on year-three margin
Avoid if
- You are in your first three deployments, where the number still means little
Check before you decide
- Pick one definition of attributable revenue and keep it fixed across quarters
- Confirm the trend is rising, not the absolute value against someone else's benchmark
- Pair it with shared versus custom code per deployment as the leading indicator
- If flat, check the loop, the reporting line, and whether engineers are embedded on accounts that should use a template
Common questions
What is revenue per forward deployed engineer and why track it?
Revenue attributable to accounts served by embedded engineers, divided by the number of those engineers, over a rolling period. It is the single number that tells you whether you have a platform or a labour business, because it only rises if the platform is taking in what engineers learned at customer sites.
What does it mean if the number is flat?
That the learning is not being turned into product. Each deployment starts with almost nothing reused, so adding engineers adds revenue linearly, which is the definition of a labour business. a16z describes the end state as bespoke deployments impossible to maintain or upgrade, where revenue grows but no reusable work builds up.
What does a healthy direction look like?
The best public benchmark is the previous software generation. ServiceNow's gross margin at IPO was 63.2 percent, reaching 79 percent in 2024. Workday's was 54.1 percent, reaching 75 percent. Both rose, by 15.8 and 20.9 points, as the services work turned into product. A company that stays at its starting margin for years has not turned its custom work into product.
When is flat revenue per engineer acceptable?
Two cases. In the first year, when three deployments give you nothing to generalise across and the number means little. And during a deliberate expansion into a new industry, which resets the custom share because the domain models and connectors do not exist yet. State the expected recovery period so the dip does not become permanent.
What should you do if it is flat?
Do not hire more embedded engineers, which makes the problem bigger. Check whether the productization loop has a fixed schedule, an owner with authority and a stop rule. Check the reporting line for a structural incentive against generalising. And check whether you are embedding on accounts that should have used a template.
How does a buyer use this metric?
As a question: what does year-three margin look like on your mature customers? A vendor whose margin never improves on long-standing accounts is running a labour business and your renewal price will reflect that permanently. A vendor whose margin improves has been generalising, so what they built for you is maintained rather than frozen.
Related reading
Stop paying for headcount you no longer need
An hourly quote is a price for people and months. When most of the implementation is generated, that is a price for an input that has largely gone, and it quietly rewards your supplier for being slow.
You cannot measure engineers by how much they produce
Lines of code, tickets closed, and hours logged all measure activity rather than progress. Here is how we think about engineering output without numbers that only look good.
More in Commercials
How to price forward deployed engineering
There are four ways to price embedded engineering: time and materials, fixed scope, outcome, and bundled into a licence. Each produces different behaviour, and the behaviour matters more than the rate. Billable hours pay the vendor to be slow and to keep the engagement going. Fixed scope pays them to argue about scope. Outcome pricing aligns both sides and is hard to write. When AWS announced its own forward deployed engineering organization it said the work would be structured around shared goals and business results rather than billable hours, which is a standard to ask of every vendor.
Outcome-based pricing for embedded engineering
An outcome you cannot measure on the day of signature is a hope with a payment schedule attached. A workable outcome passes three tests: it is observable rather than inferred, somebody named takes the measurement, and neither party can change the definition of success alone. The most reliable outcome for an embedded engagement is the least exciting one, which is a defined system running in production for real users by a named date. Business-metric outcomes sound better and fail more often, because neither side fully controls them.
What forward deployed engineering costs
Two compensation figures for this role are traceable to a source. Levels.fyi reports Palantir forward deployed engineer total compensation in the United States with a median of $278,000 and a range from $185,000 to $631,000, read on 8 September 2026. Across 1,000 job postings analysed by Revealera and published in November 2025, the median advertised salary was $173,816. Everything else published is unsourced. Add benefits, travel and unbilled time to one of those two to get your input cost, then compare it against the cost of the deployment not happening.
Measuring forward deployed engineering
Measure four things: time from contract signature to production, the share of engagements that reach production, revenue per embedded engineer over time, and what came back into the product. Do not measure utilisation. Utilisation rewards keeping engineers on accounts, which is exactly the endless engagement, the main way this model fails. The metric that matters most to a customer is time to production, and the metric that tells you whether you have a business is revenue per engineer rising rather than staying flat.
The contract for an embedded engagement
Before an outside engineer touches your repository, six things belong in writing: IP assignment on creation, scoped repository access rather than organization-wide, production access as a named exception with an audit trail, a production date, a handover date with a defined artefact, and subcontractor binding. The one people get wrong most often is the first: an NDA covers secrecy and does not assign ownership of what the vendor creates. Those are two separate clauses and you need both.