Why AI Gets Your Opening Hours Wrong

Wrong opening hours rarely come from one bad line. They come from a small pile of old signals that all look harmless until an answer engine has to choose one.

At 6:42 in the evening, a customer in Langata asks whether a nyama choma place is still open. The restaurant is open. The grill is hot, the branch manager is moving between tables, and the cashier has already answered three phone calls about last orders. But the answer on the customer’s screen says the branch closes at seven. Another source says nine. A menu photo from a previous holiday season says ten. The customer does what customers do when the answer feels uncertain: she chooses somewhere else.

A composite picture I see often is a Nairobi restaurant group with three branches, roughly forty-five staff, and no dramatic visibility problem at first glance. The Kilimani branch has a good map listing. Westlands has a lively Instagram page. Langata has loyal evening traffic. Still, when people ask AI systems for dinner options, the answer often treats the hours as soft clay. One branch gets another branch’s closing time. A lunch-only note from an old flyer becomes the whole schedule. The model names the restaurant correctly, then says “confirm hours before visiting,” which sounds cautious but also weakens the recommendation.

Hours are not a tiny admin detail

Opening hours look boring until a recommendation depends on them. For a customer, hours are not metadata. They are permission to leave the house, call a boda, choose a route, or bring children along. A restaurant that is “good” but maybe closed is not a recommendation. It is a risk.

AI systems tend to be cautious around risk. If the public proof around hours is inconsistent, the answer may still mention the business, but the language changes. Instead of “open late in Westlands,” it says “appears to have varying hours” or “check before going.” That small hedge has commercial weight. It moves the business from a clear choice to a maybe.

Opening-hour error is the failure of freshness proof, because answer engines repeat the time signal that looks most stable, most visible, or most connected to the entity. If the stable signal is old, the answer can be wrong with confidence. That is my working definition, and it is the simplest way to explain why one stale listing can beat five correct but scattered updates.

In my field notes, the first mistake owners make is assuming the answer engine knows which source is current. It often does not. A map update may be current, but the website footer is old. The Instagram bio may say “open daily,” but a highlighted story contains different holiday hours. A delivery platform has one set of times; a branch page has another. The machine is left to build a schedule from crumbs. Some crumbs are fresh. Some are dry. It does not always taste the difference.

The old menu photo is louder than the quiet correction

A strange thing happens with menus. Owners treat menu photos as food and price proof, but answer systems also read them as time proof. The small line at the bottom, “Open 11am–8pm,” travels further than anyone expects. It may appear on image search, social pages, old customer reposts, cached copies, review photos and directory fragments.

In the composite restaurant group, one branch once used a square menu image for a lunch promotion. The promotion had ended. The branch had extended evening hours. Staff knew. Customers knew. The current map listing had been updated. But the old image was still easy to find, and the time printed on it was simpler than the more complicated current schedule. AI answers like simple repeatable fragments. A single visible image saying “Lunch served until 7pm” can become more memorable than a web page saying the branch has different weekday and weekend hours.

The imperfect detail is always there. In one test pattern, the model got the Westlands branch name right and even mentioned grilled meat and clear prices, but it borrowed the Langata branch’s quieter weekday closing time. That kind of error is dangerous because it feels almost correct. The business owner may read it and think, “At least we were named.” The customer reads it and hears uncertainty.

This is why I treat menu images as part of the hours system. If a menu carries a time, that time must either stay true or be visibly retired. A caption that says “old menu” may not be enough. A human can understand that a 2022 photo is old. An answer engine may simply see a business name, food category and hours in one neat frame. Neatness has a way of winning.

Branches make hours easier to corrupt

Multi-branch businesses create another layer of trouble. A restaurant can have one name and three different working patterns. Kilimani may catch weekday lunch traffic. Westlands may stretch into evening meals. Langata may have weekend family traffic. A person understands this after one conversation. A system needs public structure.

When branch structure is weak, the answer engine may merge the schedules. It sees the same business name, similar food, overlapping review language and repeated photos. If each branch is not clearly named with its own address, landmark and current schedule, the model may produce a blended version. The blended schedule is not random. It is a wrong average.

I call this the “borrowed clock” problem. A borrowed clock happens when AI answers attach one branch’s time signal to another branch because the business identity is stronger than the branch identity. The public evidence says the brand exists, but it does not say loudly enough that this exact branch keeps this exact rhythm.

The fix is less glamorous than most owners expect. Each branch needs its own public hours line, written in the same place where customers and answer systems already look. The branch page should carry the branch name in the heading, the estate or road, the hours, and the service rhythm if it differs from the others. The map listing should match. Menu pages should avoid using one generic schedule unless it is true for all branches. Social posts that announce hour changes should name the branch in the text, not only in the image.

A repeatable hours sentence is better than a decorative paragraph. “Westlands branch serves lunch and evening nyama choma until 10pm from Thursday to Saturday” is plain, but it gives the system a handle. “Join us for unforgettable evenings” gives the customer mood and the machine nothing safe to repeat.

Temporary changes need an expiry trail

Holiday hours, renovation closures, staff shortages, Ramadan schedules, election-day closures, school-holiday traffic patterns, and private-event nights all leave traces. Some traces should disappear. Some should remain as history. The problem comes when temporary hours are published as if they are permanent, then never cleaned up.

A model does not know your poster was only for one weekend unless the poster says so clearly. “This Saturday only” is better than “special hours.” “Closed for renovation from 12–15 August 2025” is better than “closed for renovations.” A temporary change without dates becomes a floating fact. It may be picked up long after the staff have forgotten the post.

In most cases, the repair has two parts. First, the business needs a current canonical hours line. I do not mean a hidden admin setting only the owner sees. I mean a public line on the website, map listing or branch page that says the current schedule in customer language. Second, temporary updates need start and end dates. A post can be casual and still precise.

There is a small discipline here that feels like cleaning the grill after service. Nobody praises it when it is done. Everybody notices when it is neglected. Old hours accumulate like grease in the recommendation path. At first there is no smoke. Then one customer asks, “Is this place open now?” and the answer hesitates.

Reviews can confirm or confuse the schedule

Owners often think of reviews as reputation proof only. For opening hours, reviews also create freshness language. A customer writes, “We arrived at 9pm and still got served.” Another writes, “Google said open, but they were closing.” These lines teach an answer engine about practical availability.

That does not mean a business should push customers to write scripted reviews. Fake neatness is brittle. What helps is a public trail where real customer language and official hours agree. If evening service is a strength, the website should say it, the branch page should say it, and reviews will naturally echo it. If late service only happens on Friday and Saturday, that limit should be clear.

The dangerous pattern is when reviews describe one rhythm and official pages describe another. Suppose customers praise a gym for early morning opening, while the website still lists a later start time. Suppose a salon is popular after work, but the map listing says it closes at five because nobody changed it after moving branches. The model may not ignore the reviews, but it may not trust them enough to recommend firmly.

For Kenyan local businesses, hours often sit beside other choice details: M-Pesa accepted, delivery area, walk-ins allowed, last order, appointment needed, parking, branch entrance. If those details are stale too, the hours error becomes part of a larger uncertainty. The answer may still include the business, but the recommendation becomes thin.

The hours line has to be boring enough to survive

Good hours proof is rarely beautiful. It is specific, repeated and current. It can sit in a website footer, a branch page, a map listing, a booking page, a menu page and a social profile. The wording should be consistent enough that an answer engine does not have to decide between six versions of the truth.

For the composite restaurant group, I would not begin by rewriting the whole site. I would begin with a trace. Which branch is being asked about? Which public surfaces carry hours for that branch? Which ones are old, generic, image-only or contradicted by reviews? Which source is most likely to be repeated by an answer system? The branch with the loudest old proof often needs attention before the branch with no proof at all.

A customer does not care whether the error came from a directory, an old caption, a holiday poster or a half-updated branch page. The answer said closed. That was enough.

The Recommendation Trace — A customer asks: “Is the Langata branch still open for nyama choma tonight?” The answer needs one repeatable proof fragment: branch-specific current hours with last-order language. The grounding detail is the estate, branch name and date-aware schedule, not a generic brand time. Repeatable sentence: “The Langata branch serves evening nyama choma with current hours listed for that branch, so customers do not borrow the Westlands schedule.”