Rethinking Italian Consular Services with Agentic AI Workflows

It took me a year and a half to register in AIRE and renew my Italian passport. Here is where that time goes, where agentic AI could realistically help, which steps should not exist at all, and a grounded estimate of how much each change is worth.

Author Avatar

Fernando

  ·  28 min read

It took me a year and a half to register in AIRE, the register of Italians living abroad, and renew my passport. None of it was hard. Most of it was waiting: refreshing Prenot@mi for a slot that never appeared, sending emails that got no reply, and finding out at the counter that one document needed something I could have fixed at home weeks earlier.

Somewhere around month nine, the frustration turned into curiosity. Which of those weeks were actually necessary? I have never seen a consulate from the inside, but I have spent years building software that moves documents and decisions through organisations, and the patterns looked familiar. This post is my attempt to think it through: where the time goes, where generative AI could realistically help, and how much difference it might make. Along the way the more useful question turned out to be not “where can AI help?” but “which of these steps needs to exist at all?”. Italian consular services are the example, but the same questions apply to most document-heavy processes, from permit applications to insurance claims.


Where the time actually goes #

The consular network serves more than 7 million Italians abroad through 176 career consulates, and the strain is public. In February 2026 deputy Fabio Porta called Prenot@mi a nightmare that cheap bots can game. Curitiba cancelled bot-booked appointments. São Paulo’s citizenship mailbox returned “mailbox full” for weeks, and the same consulate went from 43 staff for about 180,000 residents in 2014 to 47 staff for about 345,000 in 2023. AIRE held 6,412,752 people on 1 January 2025, and 20.5% of them are over 65. Any redesign has to work for them too.

Strip away the specifics and the workflow loses time in six places:

WasteWhat the citizen seesWhat it costs the office
Rework at the counterA missing apostille is found at the appointment, and the slot is goneOfficer time on files that cannot be completed
The slot raceSlots go to whoever clicks first, which means bots and resellersSlots held by people who never come
The inboxRoutine questions, many unansweredOfficer hours on repeated questions
Status chasing“Where is my case?” emailsMore emails, less counter time
The mandatory tripA renewal needs a visit to give fingerprints the state took ten years agoA full slot for a case that is mostly data entry
The handoffThe consulate is done, but registration waits on the comuneStatus emails about work the consulate cannot finish

The first is a document problem. The next three are flow problems. The last two are design problems: they exist because of how the service was drawn, not because anyone is slow. That distinction matters more than any choice of model.

The design rule: workflows first, agents for the fuzzy parts #

Anthropic’s Building effective agents separates workflows (LLM calls on predefined paths) from agents (LLMs that choose their own steps). Consular procedures are known in advance, so most of each case should be a plain, deterministic workflow. LLMs earn their place only where the input is genuinely fuzzy: reading a scanned birth certificate, deciding whether “Giovanni” and “Juan” are the same person, explaining a defect in the citizen’s language.

The legal frame points the same way:

So the rule I designed around is simple: agents read, check, draft and propose; only an officer issues, refuses, certifies or changes a record. Two precedents sharpen it. Canada’s immigration analytics can find an applicant eligible but never refuse, so only the “yes” path is automated. And a human in the loop is not automatically a safeguard: the UK Home Office’s IPIC tool reportedly asked for written reasons only when officials rejected its proposal, and officials have been shown to follow algorithmic advice selectively, more when it matches their stereotypes. Overriding the system should cost the same effort as agreeing with it, and the log should record both.

graph TD
    subgraph DEMAND["1 · Demand: predict, never rank"]
        REG[("Register<br/>AIRE in ANPR, expiry dates")]
        FC["Forecast<br/>rosters, travelling officers"]
        INV["Invitation<br/>pre-assigned slot"]
        REG --> FC
        REG --> INV
    end
    subgraph INTAKE["2 · Intake: agents read and check"]
        C["Citizen, or assisted channel<br/>patronato, honorary consul, phone"]
        I["Intake agent<br/>extracts typed fields"]
        R{"Rules check<br/>versioned rules as code"}
        F["Feedback agent<br/>defect list in citizen's language"]
        C --> I --> R
        R -- "defects" --> F
        F -- "fixed at home" --> C
    end
    subgraph ALLOC["3 · Allocation: deterministic"]
        A["Seeded draw<br/>within published priority bands"]
    end
    subgraph DECIDE["4 · Decision: officers only"]
        O["Officer<br/>issues, refuses, certifies"]
    end
    subgraph RECORD["5 · Record and inform"]
        L[("Append-only case log")]
        N["Notifications<br/>and status page"]
    end
    R -- "ready" --> A
    INV --> A
    FC -. "capacity" .-> A
    A --> O
    O --> L
    I -.-> L
    R -.-> L
    L --> N
    N -. "updates" .-> C

    classDef agent fill:#e8f0fe,stroke:#4a6fa5,color:#1a1a1a
    classDef code fill:#eef7ee,stroke:#4f8a4f,color:#1a1a1a
    classDef human fill:#fff4e5,stroke:#c07a1f,color:#1a1a1a
    class I,F agent
    class R,A,FC,INV,N code
    class O,C human

Blue nodes use a model, green nodes are plain code, orange nodes are people. The loop back to the citizen is where the time is saved: defects get fixed at home, and the case log answers “where is my case?” before anyone asks.

Five interventions #

Dossier readiness: the strongest AI idea #

Before an officer sees a file, an intake agent extracts each document into a typed record, a rules engine checks it against the service’s checklist (the Santiago embassy’s document list is typical), and a consistency pass compares names and dates across documents. Defects go back to the citizen as a specific list (“your grandfather’s birth record has no apostille”) rather than as a lost appointment.

Two design choices make this trustworthy. The rules live in versioned files that lawyers can read, not in prompts, so a change in law is a reviewed commit and every check records its rule version. And name matching is mostly deterministic: normalise accents and order, score with a fuzzy matcher, and use a curated table of cross-language names (Lyon already asks applicants to declare variants such as Giovanni and Jean). Only borderline pairs go to an LLM, which must return a reason. Where countries run an HCCH apostille e-Register, apostilles can be verified automatically.

The same pass does two more jobs. It estimates how long a case will take at the counter, which feeds slot length in the allocator. And in citizenship-by-descent files it flags records that disagree across comuni, relevant after investigations into forged records and complicit municipal staff. The flag must be about the documents, never the applicant: the UK dropped a visa streaming tool that used “suspect nationalities” just before a judicial review.

The limits are real. The agent checks consistency, not authenticity. Handwriting is still hard: on the CHURRO historical-document benchmark, the best model reached about 70% accuracy on handwritten text, so low-confidence fields on old Italian records go to an officer with the image crop. And if only “ready” dossiers can book, anyone who cannot upload a clean file is filtered out. The check needs an assisted channel: patronati, which have asked parliament for SPID identity for their operators abroad, honorary consuls, and a phone line like the one New York keeps for over-75s. Intermediaries act under a recorded mandate.

Allocation: the draw stays dumb, everything around it gets smarter #

Captchas lose the slot race because the race itself is the problem. Slot resale is global: Turkish prosecutors detained 49 suspects in a Schengen probe, Spanish police broke up bot networks blocking immigration appointments, and the US embassy in India cancelled about 2,000 bot-made bookings. TLScontact, Germany and a pilot in L’Hospitalet moved to requests plus automatic assignment. In Morocco, TLScontact’s France visa centres now assign slots at random, and the company reports bot activity fell 48% in the Rabat pilot (its own figure).

The core redesign: citizens file a request in a weekly window, one per person per service, only ready dossiers are admitted, and a seeded random draw within published priority bands assigns slots. Anyone can rerun the draw and get the same result. The ranking step should contain no AI at all. But everything around it can be predicted and optimised:

  • Invite instead of waiting to be asked. The state knows when every passport expires. For renewals, the consulate can send a pre-assigned slot six to nine months ahead, which the citizen accepts or swaps. The NHS invites people to screening automatically, Belgian communes send an eID renewal convocation, and France is trialling an SMS six months before passport expiry. An invited slot belongs to a named person, so there is nothing to resell.
  • Forecast capacity, never rank people. Expiry curves and seasonality give each consulate demand years ahead, which belongs in rostering and in deciding where travelling officers go. Houston already sent one to Dallas in February 2026, but nothing suggests those trips are placed by data. The forecast also needs someone to act on it: the UK’s 2022 passport delays came from recruitment and weak demand management, while demand was actually below forecast. Because this layer never decides about an individual, it plausibly sits outside GDPR Article 22 and the AI Act’s high-risk list (my reading, not settled law).
  • Bind the draw to identity, and refill it. Requests go through SPID or CIE, slots are non-transferable, and rescheduling is limited (the US embassy in India reportedly charges again after the first reschedule). Cancellations go to the next request in draw order through Prenot@mi’s existing waiting-list engine.
  • Size the slot to the case. A simple renewal and a three-generation citizenship file do not need the same 20 minutes. The readiness agent’s complexity estimate, calibrated against measured counter times, sets the booking length. It changes how long someone is booked for, never who gets served.
  • Overbook in aggregate, never by person. Individual no-show prediction in healthcare pushed disadvantaged patients into overbooked slots. Use the service’s historical rate, and publish it with the seed and the priority bands.
graph TD
    E[("Passport expiry dates")] --> INV["Invitation 6–9 months ahead<br/>pre-assigned slot"]
    INV --> Q{"Citizen accepts?"}
    Q -- "yes, or picks another date" --> B["Booked slot<br/>named, non-transferable"]
    U["Unplanned need<br/>civil records, citizenship, lost passport"] --> RQ["Request in weekly window<br/>SPID or CIE, one per service"]
    RQ --> RD{"Dossier ready?"}
    RD -- "no" --> FIX["Defect list<br/>fix and resubmit"]
    FIX --> RQ
    RD -- "yes" --> W["Seeded draw<br/>within priority bands"]
    W -- "wins" --> B
    W -- "loses" --> WL["Waiting list<br/>in draw order"]
    B -- "cancels with notice" --> WL
    WL -- "next in order" --> B
    CX["Readiness agent<br/>complexity estimate"] -. "slot length" .-> B
    B --> CT["Counter"]

Predictable demand arrives by invitation and never enters the race; everything else goes through the draw, and cancelled slots flow back to the people who lost it.

The allocator is classic service design dressed up as an AI use case. But prediction around it (who needs a slot, when, where and for how long) is real, and the model below shows it is worth more than the draw itself.

Inbox triage and proactive updates: unglamorous, underrated #

A router reads each email or PEC (Italy’s certified email, which has legal weight) in quarantine and returns only a typed result: intent, urgency, language, case reference. Emergencies page the duty officer, status questions are answered from the case log, and general questions get a draft that cites official pages, with an evaluator rejecting any uncited claim. Officers send everything until the routing has proven itself. INPS already classifies over 16,000 PEC messages a day with AI.

graph TD
    M["Email or PEC"] --> QR["Quarantine<br/>content is data, never instructions"]
    QR --> RT["Router agent<br/>intent, urgency, language, case ref"]
    RT -- "emergency" --> DO["Duty officer paged"]
    RT -- "crisis surge" --> CR["Sort by urgency and vulnerability<br/>match to Dove siamo nel mondo and AIRE"]
    CR --> DO
    RT -- "where is my case?" --> LOG[("Case log")]
    LOG --> AUTO["Answer from the log"]
    RT -- "general question" --> DR["Draft citing official pages"]
    DR --> EV{"Every claim cited?"}
    EV -- "yes" --> OFF["Officer reviews and sends"]
    EV -- "no" --> REJ["Draft rejected<br/>officer writes"]

This should build on MAECI’s scripted consular chatbot, live since 2024. Making it generative needs care: New York City’s MyCity bot told business owners they could break the law, and GOV.UK Chat was useful to about 70% of users but short of the accuracy GOV.UK needs, with the official brand making users more trusting. A public answer cites its source page, or is not given.

The bigger lever is stopping emails before they are written. The UK Government Digital Service found that well-timed notifications remove much of the need for status tracking. Every case event can trigger a message, a status page can answer from the same log, and a durable timer chases missing documents. Outcome messages use fixed, lawyer-approved templates; the model only fills names and dates, and writes free text only to explain a defect or translate.

The same plumbing matters most in a crisis. During the 2021 Kabul evacuation, the UK Foreign Office’s crisis inbox had more than 5,000 unread emails at any given moment. A router that sorts by urgency and reconciles senders with Farnesina’s Dove siamo nel mondo and AIRE is the strongest case for AI triage in consular work. Pointed inward, the same retrieval layer becomes an assistant over circulars and regulations for officers who rotate between posts.

AIRE and civil records: the bottleneck is the handoff #

An agent can turn a foreign birth or marriage certificate into a pre-filled transmission package, find the competent comune with deterministic rules from DPR 396/2000, check ANPR for conflicts through PDND, and show the officer a field-level diff to approve.

That saves re-typing, but my AIRE wait was not caused by re-typing. Law 11/2026 folded AIRE into ANPR, the national population register, yet the consulate still has up to 180 days to forward a request and the comune has no fixed deadline, so people are still waiting years. With one national register, the handoff is a choice. Three changes would remove most of it:

  • The consulate writes the AIRE record to ANPR directly, and the comune reviews by exception within a fixed window.
  • A consular service counts as a registration. France treats a passport application from abroad as a request to join its consular register.
  • Ask the register, not the citizen. The consulate queries civil status through PDND instead of asking for certificates the state already holds.
graph LR
    subgraph TODAY["Today: months to years"]
        direction TB
        T1["1 · Request<br/>citizen applies through Fast It"]
        T2["2 · Consulate<br/>checks, up to 180 days to forward"]
        T3["3 · Comune<br/>re-keys the form, no deadline"]
        T4[("4 · ANPR<br/>record finally updated")]
        T1 --> T2 --> T3 --> T4
    end
    subgraph PROPOSED["Proposed: bounded by a fixed window"]
        direction TB
        P1["1 · Request<br/>passport application counts as registration"]
        P2["2 · Consulate<br/>agent drafts record, officer approves diff"]
        P3[("3 · ANPR<br/>consulate writes directly")]
        P4["4 · Comune<br/>reviews by exception, fixed window"]
        P1 --> P2 --> P3 --> P4
    end

    classDef slow fill:#fdecea,stroke:#c0392b,color:#1a1a1a
    classDef fast fill:#eef7ee,stroke:#4f8a4f,color:#1a1a1a
    class T2,T3 slow
    class P2,P3 fast

Same four steps, read row by row. The difference is the order: today the comune sits between the consulate and the register, in the proposal it reviews after the record exists.

Spain shows it is doable at scale: all its consular offices have run the electronic civil registry DICIREG since June 2025. None of this is an agent problem; agents help once the process changes.

The counter visit itself: the biggest lever, and not an AI one #

Ireland is the obvious comparison: over 90% of passport applications are online, and a simple renewal takes 10 working days against 8 weeks on paper. But Ireland is outside Schengen and not bound by the EU regulation that requires fingerprints in passports.

Estonia is bound by it, and still lets people renew online if they gave fingerprints within the last six years, exempts over-70s already on file, and received 61% of applications online in 2023. Finland allows online renewal for people whose fingerprints it already holds. Italy deletes passport fingerprints once the passport is issued. So the renewal trip is largely an Italian design choice, not a European obligation. Changing it is a data-retention decision for the legislator and the Garante, with real privacy trade-offs, but it is a decision.

Where a visit is still needed, the visit can move. MAECI gave 116 honorary consuls a portable fingerprint kit in 2018, Mexico runs mobile Consulado sobre Ruedas visits, and Portugal’s Virtual Consulate launched in 2023 with nine services. The allocator’s forecast decides where kits and travelling officers go.

graph TD
    S["Citizen needs a document"] --> K{"Renewal, fingerprints<br/>on file within 6 years?"}
    K -- "yes" --> REM["Remote renewal<br/>photo and data online, officer approves"]
    REM --> POST["Passport sent by post"]
    K -- "no" --> NEAR{"Close to a consulate?"}
    NEAR -- "yes" --> CNT["Counter slot<br/>sized to the case"]
    NEAR -- "no" --> MOB["Honorary consul kit<br/>or travelling officer"]
    FC["Demand forecast"] -. "where to send kits" .-> MOB

The left branch needs a change to fingerprint retention; the rest works with today’s law.

The counterexample is citizenship. Under Law 11/2026, adult applications move to a central MAECI office from 2029, but still on paper, by post. Centralising without digitising the intake moves the queue rather than shortening it.

The architecture, kept small #

A full agent platform (durable execution engine, agent framework, MCP servers, observability stack) is too much for a first step in a public administration. The shape matters more than the products:

  • A durable workflow per case, because a case waits weeks and must survive restarts.
  • Typed agents that return validated schemas, never free text another step treats as an instruction. This is also the main defence against prompt injection from uploads and email, in the spirit of DeepMind’s CaMeL.
  • An append-only case log in domain terms (FieldsExtracted, RuleFailed, OfficerApproved, OfficerOverrode), so an appeal is answered by replaying what the administration did.
  • An approval gate as a property of the workflow, not of a prompt: the only place a case gains legal effect.
  • Identity-bound requests through SPID or CIE, and the EU Digital Identity Wallet due by December 2026, with intermediaries acting under recorded mandates.
  • A forecasting job over the register that produces capacity plans and invitations, with no input or output about any individual’s priority.
  • A swappable model layer, so identity documents can go to EU-hosted or self-hosted models.

The case lifecycle makes the approval gate concrete. Agents can move a case between the early states; only an officer’s event moves it out of AwaitingOfficer:

stateDiagram-v2
    direction TB
    [*] --> Submitted
    Submitted --> Checking
    Checking --> Defective: RuleFailed
    Defective --> Submitted: citizen fixes
    Checking --> Ready: all rules pass
    Ready --> Scheduled: draw or invitation
    Scheduled --> Ready: cancelled, slot refilled
    Scheduled --> AwaitingOfficer: counter visit or remote review
    AwaitingOfficer --> Issued: OfficerApproved
    AwaitingOfficer --> Refused: OfficerRefused
    AwaitingOfficer --> Defective: OfficerReturned
    Issued --> [*]
    Refused --> [*]
    note right of AwaitingOfficer
        Approval gate: the only
        transitions with legal effect
    end note

How much capacity would it actually add? #

The model counts officer minutes per completed request and separates three things that are easy to blur: what agents add to today’s process, what the allocation redesign adds, and what changing the shape of the service adds.

The model #

A share $s$ of requests never reaches the counter (remote renewal) and costs a few minutes of back-office review. The rest pay the first visit, a repeat visit for every defect that reaches the counter, and the part of lost slots that cannot be refilled:

$$ \text{counter} = \text{slot} \times (1 + d) ;+; \text{slot} \times \left(\frac{1 + d}{1 - n} - (1 + d)\right) \times (1 - r) ;+; \text{review} $$

$$ \text{total} = (1 - s) \times \text{counter} ;+; s \times \text{remote} ;+; \text{inbox} $$

where $d$ is the share of requests reaching the counter with a defect, $n$ the share of slots lost, and $r$ the share of a lost slot refilled or reused. Inbox time is emails per request times minutes per email, plus status emails over the life of the case. Capacity is productive officer minutes per day divided by the total.

The readiness check lowers $d$, but not every defect is visible in an upload, detection is imperfect, and not every citizen fixes the problem in time:

$$ \text{catch} = 70% \text{ detectable} \times 85% \text{ detected} \times 90% \text{ fixed in time} \approx 54% $$

Inputs and evidence #

InputTodayAgents, same processRedesignedGrounding
Productive officer time6 × 5.5 hSameSameAssumption: a fifth of a 7-hour day goes to breaks, training and back office
Requests with a defect30%30%30%Ireland reported 37 to 39% of passport applications incomplete; the UK about 9%. Consular dossiers sit nearer the complex end
Defects caught beforehand0%54% (35–70%)54% (35–70%)Calculation above; handwriting accuracy around 70% caps detection
Mean counter slot20 min18 (17–20)16 (14–20)Identity checks, biometrics and originals stay. Redesigned: slots sized by service. No public precedent, to be measured
Review of the readiness report03 min (2–6)3 min (2–6)False alarms and low-confidence handwritten fields
Slots lost15%9% (6–12%)7% (4–9%)NHS outpatients missed 9.3%, Lombardy healthcare 20.9%; reminders cut no-shows from 11.1% to 8.4%. Identity-bound invitations leave nothing for bots
Lost slot refilled or reused30%30%50% (35–60%)A 20-minute gap rarely fits back-office work; cancellations with notice refill from the draw, same-day no-shows cannot
Requests that skip the counter0%0%30% (15–40%)Estonia: 61% online. Assumes half a desk’s requests are renewals and 60% of those go remote
Minutes per remote casen/an/a6 (4–10)Assumption: check photo, data and readiness report, approve issue
Minutes per email64.5 (3.5–5.5)4.5 (3.5–5.5)AI assistance raised resolutions per hour by 14% on average, 34% for novices; UK civil servants reported 26 minutes a day saved. Officers still read every draft
Emails per request1.00.8 (0.7–0.9)0.65 (0.5–0.8)Some questions answered from the case log; invited citizens do not write asking for a slot
Status emails per open case per day0.030.015 (0.01–0.02)0.01 (0.005–0.015)Proactive notifications (GDS), plus a status page
Days a case stays open303030Assumption for a passport-type service

I could not find published no-show or defect figures for Prenot@mi itself, so these come from neighbouring public services. That gap is the first thing a real consulate’s data would close.

The result #

Officer minutes per requestTodayAgents, same process+ Allocation redesign+ Remote renewal
Counter, including repeat visits26.020.518.212.8
Slots lost3.21.40.70.5
Reviewing agent output03.03.02.1
Remote cases (back office)0001.8
Inbox and status11.45.64.34.3
Total40.630.626.221.4
Requests per day49657692

Rows are rounded. Today, only half of an officer’s 41 minutes per request is the service itself (the 20-minute first visit); the rest is repeat visits, lost slots and email.

Lever addedRequests per day
Today49
+ Dossier readiness53
+ Fair draw and reminders55
+ Inbox triage61
+ Proactive updates65
+ Invitations and identity-bound slots67
+ Backfill from the draw68
+ Slot length by service74
+ Case status page76
+ Remote renewal (fingerprints on file)92

Varying every ranged input across 20,000 Monte Carlo draws (triangular distributions over the stated ranges) gives:

Scenario10th percentileMedian90th percentile
Agents, same process1.21×1.28×1.36×
+ Allocation redesign1.37×1.47×1.58×
+ Remote renewal1.64×1.78×1.93×

The ranges lean pessimistic (review time can double, the slot may not shrink), so each median sits a little below its central case.

Three things stand out:

  1. Agents on today’s process add about 1.3× capacity, roughly two extra officers on a six-person desk. Inbox and status work delivers more of that than the dossier checker, whose gain is held back by the review time it adds and the defects it cannot see in a scan.
  2. The allocation redesign adds more than the dossier checker and the draw together (11 requests a day against 6), and over half of it comes from sizing slots to the case. Invitations barely move capacity; their value is fairness, taking predictable demand out of the race, which a capacity model does not measure.
  3. The full redesign lands near 1.9×, but the AI part is still about 1.3×. The rest comes from decisions a legislator or ministry makes about fingerprint retention, registry handoffs and slot design, all of which can be argued in public before anything is built.

The result is most sensitive to minutes per email, the real catch rate and the share of requests that can go remote. A month of timed email handling, a log of appointments returned for missing documents and the service mix at one desk would turn this from an argument into evidence. It also leaves out three things. Past capacity, the queue feeds itself: a backlog produces more status emails, which take more counter time. For capped services such as adult citizenship, more capacity means freed officer hours, not a shorter queue. And it ignores seasonal peaks, crisis surges and setup cost.

What it adds up to across the network #

A six-person desk is an abstraction. The consular network is not, and because MAECI publishes its volumes centrally, the desk model can be scaled up.

Who is served. The consular registry counted 7,363,513 Italians abroad at the end of 2025 (the Interior Ministry’s AIRE figure is lower, 6.4 million, because the two registers are kept differently). Italians living in Italy almost never use consulates: their passports come from the Questure, which issued about 2.75 million in 2023. That domestic volume is outside this estimate, although the fingerprint-retention change would apply there too.

What they ask for. In 2024 the network issued 584,435 passports and 170,848 electronic ID cards, and handled 284,816 civil status acts and 80,972 citizenship acts (MAECI Statistical Yearbook 2025, table 2.43). I apply the model only to the 755,283 identity documents, because that is the passport-type service it was calibrated on. Civil records and citizenship are left out, so the estimate is a floor for the services it covers, and it says nothing about visas for foreigners (1.5 million processed).

Who does the work. The Yearbook counts 1,717 staff in consular offices, 1,057 of them locally contracted, plus the consular sections inside embassies, which it counts with embassy staff.

Two inputs have no published source, so I state them as assumptions. The first is the loaded cost of an officer: €35,000–70,000 a year, central €50,000. The second is the time a citizen loses to a counter visit: 2–8 hours including travel and waiting, central 4. That range is conservative for countries like Brazil, Argentina or Australia, where the nearest consulate can be a flight away. Citizens’ time is valued at the EU HEATCO rate for non-work travel, €22.89 an hour. I assume an officer works 220 days a year at 5.5 productive hours a day.

Per year, identity documents onlyAgents, same process+ Allocation redesign+ Remote renewal
Officer hours freed127,000 (90,000–135,000)182,000 (138,000–187,000)242,000 (198,000–246,000)
Full-time officer equivalents105 (74–111)150 (114–155)200 (164–204)
Value of that officer time€5.2M (€3.5–6.2M)€7.5M (€5.4–8.6M)€10.0M (€7.5–11.6M)
Extra documents with the same staff~250,000~415,000~675,000
Counter trips citizens no longer make121,000 (98,000–142,000)121,000379,000 (301,000–423,000)
Citizen hours saved0.49M (0.35–0.79M)0.49M1.5M (1.1–2.4M)
Value of citizens’ time€11M (€8–18M)€11M€35M (€25–55M)

Central case, with the 10th–90th percentile of 20,000 Monte Carlo draws in brackets. The allocation redesign saves officer time, not citizen trips, which is why those rows do not move.

Read plainly, agents on today’s process free the equivalent of about 100 officers across the network, roughly 6% of the consular-office headcount. The full redesign frees about 200, or 12%. In money that is €5–10 million of officer time a year. For scale, parliament created a consular services fund of €4 million a year under Law 188/2024. But the money is not a cash saving. Nobody gets fired. The hours go back into the queue as roughly 250,000 to 675,000 more documents a year with the same people, or into the 135,000 citizenship applications that were still pending in 2023.

The citizen side is larger than the office side. Fewer return visits and remote renewal spare Italians abroad between 120,000 and 380,000 trips to a consulate a year, worth €11–35 million of their time before counting a single plane ticket. That asymmetry is the point. The cost of a slow consulate falls mostly on the people outside the counter, which is why it rarely shows up in a budget, and why measuring it is the first step to fixing it.

What I take from this example #

I started this because I was annoyed at a booking page. What I ended up with is a set of questions that apply to most slow processes, public or private:

  • Map the waste before choosing the technology. Rework, races, repeated questions and status chasing show up in insurance, banking and onboarding too.
  • Check whether a constraint is legal or self-imposed. The renewal visit looked like an EU obligation and turned out to be a retention choice. The biggest lever here is not an AI one.
  • Predict demand, never rank people. Forecasting who will need a service is safe and valuable; scoring individuals is where public-sector automation has gone wrong.
  • Let the deterministic parts carry the weight. Rules as data, a fair draw, event-driven notifications and a shared register do most of the work; generative AI fills the messy gaps.
  • Keep people at the points of legal effect, build approval into the workflow rather than a prompt, and make overriding the system as easy as agreeing with it.
  • Design the assisted channel alongside the digital one, and count the cost of oversight: review time is real, and a modest number with its assumptions on the table beats a big headline.

I did get my passport and my AIRE registration in the end. I would like the next person to need a lot less than a year and a half, and ideally never to need the queue at all.


Sources #

Italian law and administration

MAECI services and consular evidence

Appointment allocation and proactive services

Remote services and comparators

Governance and lessons from automated decisions

Messaging and email precedents

Network figures

Capacity model grounding

Agentic AI engineering

Documents, models and verification