All field notes
Mobile Apps86 signal · Race start postponement

Race Schedule Data: Resolve Conflicting Start Times in an App

When a race feed and an official schedule disagree, an app needs more than a preferred timestamp. Set authority, preserve revisions and show users what changed.

OSIS Engineering
October 4, 2026 · 6 min read

A race app can receive one start time from an event feed and another from an official schedule. Showing whichever arrived last is not a trustworthy resolution strategy: arrival order does not establish authority, and a revised time without context can leave users unsure what to believe. The relevance is concrete: Infobae’s race coverage, surfaced in Google Trends IT, described a start postponed by an hour and a half. That is context, not a product specification. For a hypothetical race app, the engineering decision is how to select, verify and present schedule data when sources conflict—without silently discarding evidence or implying certainty the system does not have.

01 / 03

Choose authority by field, not by arrival time

Begin with a source policy agreed with the event operator. Identify which source is authoritative for each field: for example, the organiser’s schedule may govern the planned start, while a licensed live feed may provide operational updates. This is a proposed design, not a claim about any specific race. Record source identity and the reason for its priority in configuration, rather than embedding a universal rule in app code. Define what happens when the designated authority is unavailable, stale or malformed. A fallback can keep the app useful, but it should be explicitly marked as a fallback rather than quietly promoted to official status.

Treat conflicting values as a state the system must represent, not an ingestion error to erase. Keep the candidate values, their source identifiers, source timestamps, receipt timestamps and validation results. A resolver can compare the candidates against the field-specific policy and select a display value, while retaining the disagreement for monitoring or human review. If no source qualifies, show a clear unavailable or unconfirmed state instead of manufacturing a consensus. This separation makes the behavior testable: engineers can change source priority through controlled configuration, and operations teams can investigate why a particular time appeared without reconstructing events from application logs.

  • Document the preferred source, permitted fallback and escalation owner for each schedule field.
  • Set explicit rules for stale, missing, invalid and conflicting source values.
02 / 03

Model revisions and timestamps explicitly

A schedule time needs more than a date-time string. Store the event’s scheduled instant in a standard machine-readable representation, alongside the time zone used to interpret any source that supplies local wall-clock time. Keep the source’s own publication or update time when available, and separately record when your system received and processed the update. These timestamps answer different questions: when was this information asserted, and when did the app learn about it? Avoid treating a device’s local clock as authoritative. Convert the selected instant for display only after its time-zone meaning has been established.

Represent each accepted change as a revision with a stable event identifier, revision identifier, previous value, new value, source, observed time and status. An illustrative status set might be ‘scheduled’, ‘under review’ and ‘confirmed’; choose labels that match the operator’s actual process. Make ingestion idempotent so a repeated feed message does not create a false new revision. Preserve a correction history rather than overwriting the prior time, and define how reversals are handled. This supports debugging, operational audit and consistent views across the app, website and staff tools. It also prevents a later-arriving but older assertion from automatically replacing a newer valid revision.

  • Distinguish source update time from system receipt and processing times.
  • Test duplicate messages, out-of-order updates, reversals and time-zone boundaries.
03 / 03

Make uncertainty and corrections visible

The screen should make the current status understandable without requiring users to infer it from a changed clock. For a hypothetical race app, show the selected start time, a concise status such as ‘updated’ or ‘awaiting confirmation’, and when the information was last checked. Where useful, identify the source in plain language and offer a change history with the previous and current times. Do not label a value ‘official’ unless the source policy supports that claim. If two sources still disagree, say that the time is being verified and avoid presenting either candidate as settled. A visible uncertainty state is more useful than false precision.

Design the correction path as part of the product scope. Specify who can override an automated selection, what evidence they need, how that decision is recorded, and which app surfaces refresh together. Define whether a correction changes only the displayed schedule or also triggers downstream behavior; notification policy is a separate decision and should not be assumed from a data correction. In acceptance testing, simulate an official revision, a stale feed, a delayed message and a manual resolution. Confirm that users see the same current value after refresh and that the prior value remains inspectable. These requirements shape integration work, admin tooling, QA effort and therefore delivery estimates.

  • Use acceptance cases for source disagreement and human correction before estimating integrations.
  • Keep the displayed value, its status and its revision history consistent across app surfaces.

A reliable race schedule is not simply the newest timestamp received. It is a decision backed by a field-specific source policy, traceable revisions and a user-visible status that reflects what the system can verify. For product leaders, agreeing these rules early clarifies integration requirements, operational ownership and testing scope before implementation estimates harden. Start by documenting the authoritative source and fallback for each schedule field, then test conflict and correction cases end to end. That turns a vague requirement—show the right start time—into behavior engineering teams can build and operations teams can trust.