What agencies don't tell you about their margins
A transparent look at how Danish digital agencies actually price their work, where the markup hides, and the silent cost lines nobody puts in the proposal.
What gets left out of the proposal
Agencies don't lie to clients. They just leave things out of the proposal that would make the proposal look more expensive. The markup is not the scandal. The scandal is the architecture decisions that guarantee you'll keep paying long after launch, on top of the markup.
How the markup actually works
The math is not a secret. A senior developer in Denmark costs an agency something like 600–750 DKK/hour, fully loaded. They get billed at 1.250–1.500 DKK/hour. That gap pays for the people you don't see on your project: sales, account management, designers between contracts, the partner who reviewed the statement of work, the office, the bench.
That ratio is normal. It is not the problem. The problem is what gets layered on top of it:
- Discovery hours that produce a deck instead of a working prototype.
- Contingency baked into every estimate, never returned if unused.
- Rate cards by role where every meeting has four people in it because four people are billable.
- "Project management" as a percentage on top of the build, not as a part of it.
None of that is illegal. Most of it is industry standard. All of it is negotiable if you know it's there.
Where the real cost hides
The markup is on the invoice you can see. The expensive part is the architecture decisions you can't. These are the lines that turn a one-time build into a five-year retainer.
"Responsive" doesn't mean fully responsive
CMS link fields are almost always plain text
Every tracking change is a ticket, forever
"Performance optimization" sold as a phase two
The markup is on the invoice you can see. The expensive part is the architecture you can't.
What a transparent shop actually looks like
You can spot a transparent shop in the proposal stage, before any money has changed hands. The proposal reads differently:
- Fixed scope or capped time-and-materials, with a written change-order process. Open-ended T&M is an invitation to overrun.
- Specific examples of what is and is not included. "Responsive design (three breakpoints; widths above 1440px and below 360px not in scope)" beats "responsive design."
- Named people on the build, with rates per role. Not a single blended rate that hides who is actually doing the work.
- A handover plan — documentation, runbooks, repo access, CMS author training — that does not require their retainer to use.
- An honest answer when you ask "what would make this cheaper?" A shop that can't answer is optimizing for revenue, not for you.
Questions that expose the margin
You don't have to be hostile in the sales call. You just have to ask things that are uncomfortable to deflect. The four that move the conversation fastest are:
- What is your blended rate, and what is your real cost per role?
- When you say "responsive," what viewports are in scope, and what happens at the ones that aren't?
- How does an author link from one page to another in the CMS? Walk me through the field, not the concept.
- After launch, what kind of changes can my team make without filing a ticket with you?
The answers to those four questions will tell you more about the next two years of your invoice than any portfolio piece will.
Want this kind of judgment on your project?
I read every email within one working day. Bring a project, a quote, or a system you're stuck on.
The 5 unbilled months hidden in every Contentful enterprise build
Every Contentful enterprise build I have audited carries the same five hidden months: link references, redirects, i18n, schema-driven forms, and type safety. None of them are on the SOW. All of them are on the timeline.
Why simple architecture always wins
Complex systems fail in complex ways. The most successful projects I've seen are the ones that resisted the urge to over-engineer.
The microservices trap
How the industry convinced everyone they needed distributed systems, and why most companies would be better off with a modular monolith.