Inspiration

A revised macroeconomic release can invalidate an already approved conclusion. The analysis then has to be rerun, compared with the earlier vintage, reviewed, and repackaged without losing the provenance connecting the wording to the data, specification, execution log, and approval. That recurring handoff is slow, fragile, and consequential enough to deserve a workflow closer—not another chat window.

What it does

The Macroeconomic Research Update Closer intercepts a synthetic CPI revision and executes a complete background workflow. It validates checksums and schema, runs the fixed JDemetra+ seasonal-adjustment protocol, calculates registered rates, compares the new vintage with the prior approved release, and evaluates the existing claim in deterministic code. When the revision makes the claim unsupported, publication is blocked and an evidence-linked economist review is opened. Gemini drafts corrected wording from computed evidence, but cannot change the numerical result or release state. After explicit economist approval, the workflow resumes from its checkpoint and emits an immutable, 25-entry reproducibility pack. Repeated release and approval callbacks replay the existing workflow instead of duplicating analysis or artifacts.

The console makes the agentic work visible: trigger, plan, state transitions, real engine attempt, claim decision, approval boundary, pack manifest, evidence links, and idempotent replay.

How we built it

The service is a self-contained Python application deployed as one private Cloud Run revision. Google ADK orchestrates the bounded interpretation steps and Gemini 3.5 Flash is accessed through Vertex AI. Firestore stores versioned workflow checkpoints and idempotency records. Cloud Storage holds create-once, generation-bound inputs, engine exports, model traces, approval records, and the final ZIP. A portable Java 21 runtime and JDemetra+ Cruncher 3.8.0 run in the same Linux container.

The economic authority is deliberately outside the model. The engine runner accepts only TRAMO/SEATS RSA3, fixed protocol CPI_TS_RSA3_V1, and Cruncher policy=parameters; protocol tampering is rejected before Java starts. Typed tools, optimistic Firestore versions, stable workflow IDs, one bounded infrastructure retry, create-once objects, and a hard approval gate make the workflow safely resumable.

The deployed runtime identity has only Vertex AI user and Firestore document access at project scope, plus object administration on its single artifact bucket. The demonstrated service has no public invoker binding.

Architecture

View the implementation-matched architecture diagram. It shows Gemini/ADK, private Cloud Run, Firestore, Cloud Storage, JDemetra+, deterministic gates, and the economist approval boundary.

Google technology

  • Gemini 3.5 Flash through Vertex AI
  • Google Agent Development Kit (ADK) 2.8.0
  • Cloud Run
  • Firestore
  • Cloud Storage

Data sources

The demonstration uses two newly created, synthetic monthly CPI vintages with checksum-bound metadata. It does not use confidential, embargoed, personal, or third-party economic data. The fixtures exist solely to demonstrate a realistic revision that changes a registered claim.

Challenges we ran into

The hardest part was making the model useful without letting it become the source of economic truth. We separated planning, engine execution, numerical gating, persistence, interpretation, approval, and presentation; then made every consequential transition inspectable. Packaging a desktop-oriented JDemetra+ workflow into a reproducible Linux Cloud Run image also required a strict process boundary and portable workspace/specification assets.

Accomplishments that we're proud of

  • Real JDemetra+ 3.8.0 execution on Windows and Cloud Run's Linux container
  • A revision that changes the computed claim from SUPPORTED to UNSUPPORTED
  • A hard, human-controlled publication boundary
  • Resume without rerunning the completed analysis
  • One-attempt idempotent replay after release
  • A 25-entry release pack whose visible manifest matches the stored ZIP
  • Private Cloud Run proof with Firestore, Cloud Storage, Gemini, and ADK traces
  • 28 deterministic tests plus real-browser desktop/mobile and video evidence

What we learned

Agentic systems become easier to trust when deterministic authority is explicit and model authority is narrow. The most convincing demo is not a prompt and a response; it is a visible state transition with durable evidence, a failure boundary, and a replay that proves completed work was not repeated.

What's next

The next production increment would replace the bundled synthetic event with an authorized release feed, add organization-specific specification registration, and integrate the approval boundary with an authenticated economist roster. Those are intentionally outside this submission's narrow vertical slice.

Reproducibility and testing

The public repository contains pinned setup, local execution, deterministic tests, container proof, Cloud Run deployment, troubleshooting, an implementation-mapped repository guide, and checked evidence. The submitted Cloud Run proof service remains private; judge access is through the reproducible local/Docker build, deterministic test suite, checked evidence, and public end-to-end video.

Disclosure

The project was created during the hackathon submission period. It uses open-source frameworks and libraries listed in the lock files, HyperFrames for the submission-video composition, participant-recorded narration, and AI coding assistance. Initial internal timing prototypes used locally generated Kokoro speech and remain disclosed in the source assets; the approved submission cut uses no synthetic voice. All submitted application code, synthetic fixtures, workflow contracts, evidence, and video composition were created for this entry. No pre-existing product code or confidential dataset is incorporated.

Built With

  • cloud-run
  • cloud-storage
  • fastapi
  • firestore
  • gemini-3-5-flash
  • google-adk
  • java-21
  • jdemetra-plus
  • python
  • vertex-ai
Share this project:

Updates

Submission history