uflow
Data in the decision

Credit bureau and data source orchestration: more signal, less cost and latency

How to call credit bureaus and APIs in a credit decision without overpaying or adding latency: waterfall, parallel calls, re-pull caching and fallback paths.

Updated July 2026 · 6 min read

In short

Orchestrating data sources means deciding what to call, in what order, and what to do when a source fails: cheap rules first, expensive queries only when they change the outcome, independent sources in parallel, re-pull caching to avoid paying twice, and defined fallbacks.

A credit decision is worth exactly what its data is worth, but every bureau call costs money and time. Orchestrating your sources well — what to call, when, in what order, and what to do when they do not respond — is the difference between an expensive, fragile policy and an efficient, resilient one.

Written bySantiago Etchegoyen · CTO at uFlow

CTO at uFlow. Responsible for the decision engine's architecture: API integration, orchestration of credit bureaus and data sources, running models in production, and platform security.

Why calling every source on every application is a bad idea

The most expensive antipattern in the industry is calling every source for every credit application. If an early exclusion rule already declines the applicant, the bureau call made beforehand was money thrown away — and an unnecessary processing of personal data.

The alternative is a waterfall design: sources are called in stages, from the cheapest to the most expensive, and only if the decision still needs them.

  • First, your own data and exclusion rules: age, internal lists, prior history with your institution.
  • Then the low-cost sources that clear or decline the obvious cases.
  • The expensive source — the full bureau report, the premium verification — only for the gray zone where it genuinely changes the outcome.

Parallel calls when order does not matter

When a stage needs several sources that are independent of each other, calling them in sequence stacks up latency. The uFlow Concurrent node runs several data nodes in parallel: the bureau and your internal API respond at the same time, and the policy continues once both have finished.

The design rule: variables produced by a node inside a concurrent block are not available to another node in the same block. If one source depends on the output of another, they go in sequence; if they are independent, they go in parallel.

Re-pulls and caching: do not pay twice for the same data

The same applicant often shows up more than once within a few days: retries, another branch, another product. The Bureau node lets you configure re-pull days: inside that window — and where the provider's contractual terms allow it — the engine reuses the response it already obtained instead of calling again.

The provider's raw response can also be retained for audit and data integrity analysis — with access controls and retention rules — and the cache can be invalidated when a case requires fresh data.

Fallbacks: when the bureau does not respond

External providers fail: it is a statistical certainty, not a possibility. What makes the difference is having the alternative path defined in the policy, rather than improvised during an incident.

In uFlow every data node exposes its operational result — the query error variable — and lets you configure timeouts per provider. With that in place, the policy decides what to do:

  • A fallback path using internal data or an alternative source.
  • Referral to manual review for cases that cannot be decided without that data.
  • Monitoring of error rates per provider to catch degradation before it hurts.

Technical documentation

How this is implemented in the engine, step by step.

Frequently asked questions

Common questions

How much do waterfall and re-pull caching actually save?+

It depends on your funnel: every application an early rule resolves before the bureau call is a query you do not pay for, and so is every re-entry inside the re-pull window. In portfolios with a high volume of retries, caching alone usually justifies redesigning the policy.

What happens if a provider goes down in production?+

The timeout stops the wait and the error variable enables the fallback path the policy already defines: an alternative source, a decision on internal data, or manual review. A third-party outage moves from engineering incident to expected behavior.

Would this work for your decisioning process?

Transform your credit assessment process with the decision engine.