Virtual case · data from a simulation
prepared by
Tajar · virtual case · run of 14.07.2026

Web agency: why deadlines are missed and margin shrinks

Agency W is a 12-person agency that builds websites for small businesses across Europe. Projects are delivered late, and margin is eaten by unplanned costs: production downtime and work nobody is paid for. We looked at where the work departs from how it was meant to run.

Where it breaks — from advertising to handover
  1. Advertising promises “launch in 4–6 weeks” and “we take care of everything” — without the condition that the customer supplies materials on time.
  2. Sales quote the deadline and price as a range; the customer hears the lower end.
  3. After signing, the deal context is lost and materials are collected without a checklist.
  4. Production starts “on trust” and stops at gaps in the materials.
  5. The customer goes around the project manager; the project is delivered late and unplanned costs eat the margin.
Goal

Deliver projects on time so that margin is not eaten by unplanned costs: downtime and work nobody paid for.

In short

Three hypotheses to start with

H1

Status and source of every lead — to see which promise brings in the “wrong” customers.

H2

A deadline in advertising comes with its condition, and a list of what the customer prepares is shown before signing.

H3

A project does not start until the readiness checklist is closed.

This is a virtual case

This company is fictional. Any resemblance to a real company is coincidental.

The roles of the client, employees and the agency’s customer were played by AI language models following a set legend. All data in the document comes from the simulation: “confirmed” means “confirmed by two sources inside the simulation”, not in a real firm.

The case shows how we work and what the document looks like. It has no implementation results — there was no implementation.

How it was made

What the person did

Vitali set the firm’s legend and prepared the research before the interviews. He held the conversations with the “client” and the interviews with four roles — sales, project management, design, development. He collected and analysed the facts, worked through the problem areas and processed the hypotheses. He ran the closing session, where the “client” saw the result.

What the AI-based system did

In the first round the client and employee roles were played by a language model (Gemini). The second round — interviews with the marketing role and with the agency’s customer — was run by AI agents following the legend, without Vitali: three versions of the marketing role, one chosen by a critic agent. Drafts of the sections were prepared by an AI-based system that Vitali built: it holds his expertise, the service design method and his own tools built on it. Vitali checked and corrected them.

Six steps on this case

  1. 01

    Gather information for analysis

    Two rounds: a form and four interviews with roles inside the agency; then marketing and the customer. The anonymous team survey was not run in the virtual case.

    Material for analysis: how the work looks from outside and from inside.Go to →
  2. 02

    See it as it is

    Walked one project from first contact to handover — through the customer’s eyes and behind the scenes.

    Observations, journey map, process map.Go to →
  3. 03

    Understand what's really needed

    Separated the client’s request from the goal.

    Goal: deliver projects on time without losing margin.Go to →
  4. 04

    Name the obstacles

    Found five problem areas — from the promise in advertising to handover — and one problem before the sale, and ranked them by impact on the goal.

    A list of critical obstacles, and the structural tension that needs a management decision.Go to →
  5. 05

    Hypotheses and tools

    Seven hypotheses — each with instructions on how to test it.

    Hypotheses and the order of testing.Go to →
  6. 06

    Act and review

    Defined the metrics. No implementation was carried out — the case is virtual.

    Metrics for testing.Go to →

How to read the document

Every claim carries a mark. An empty field stays empty.

confirmed

Two different roles in the simulation say the same thing.

reported

Said by one person; not yet cross-checked.

hypothesis

A conclusion that needs testing.

unknown

No data. The field stays empty.