If you are hiring a team to build an AI calorie counter, do not accept a successful photo scan as proof that the app is ready. Ask what happens when the estimate is wrong, the connection drops, a save is retried or another person signs in. These checks turn a promising demonstration into a clearer development scope.

The examples below are acceptance scenarios. No current app screenshots, measured photo-analysis results or production-ready implementation are presented here.

Start with the meal journey, not the camera demo

A photo can make food logging easier to start. But your customer still needs to turn that estimate into a meal they can trust enough to review and save. That journey includes corrections, nutrition lookup, account access and recovery when something fails.

This guide is for founders and fitness or coaching businesses evaluating a development proposal. It is not a guide to downloading Cal AI, a description of its private architecture or a claim that we built it. The examples below are acceptance scenarios, not screenshots or measured results from a completed product.

The useful question is not whether a developer can return a calorie number. It is whether the team can show what the product does before, during and after that result, including the awkward cases.

What to ask the developer to show: Ask for a demonstration of capture, correction, confirmation, saving and reopening the meal. A prerecorded scan alone does not demonstrate the whole journey.

1. Can users correct what the photo cannot show?

Recognizing a dish is different from knowing how much of it is on the plate. A single image may not reveal the amount of oil, a hidden ingredient or the cooking method. A 2024 JMIR scoping review describes these information gaps and the difficulty of estimating portions from a two-dimensional image.

That does not make photo logging pointless. It changes the interface you should buy. The food names, quantities and units should be editable, and the app should distinguish an estimate from a measurement. An unclear photo needs a useful fallback, not a confident-looking answer that silently enters the diary.

Choose examples from the intended audience. If your customers eat mixed dishes, test mixed dishes. If portions are reported in bowls or pieces, show how those units map to the nutrition calculation. A model-generated confidence number is not independent proof of nutritional accuracy.

What to ask the developer to show: Provide a clear meal, a mixed dish and an unclear or nonfood image. Ask the team to show corrections, uncertainty and the fallback before any entry is saved.

Source

2. Where do the nutrition numbers come from?

Ask the developer to separate three things: the likely food, the estimated amount and the nutrient values used for that amount. Without that separation, it is hard to tell whether a wrong total came from food recognition, portion guessing or the underlying food record.

USDA FoodData Central provides food-search and food-detail APIs, and its data are public domain. That makes it one source to consider. It does not prove that every local dish, branded product or serving unit your customers need is covered. Coverage has to be checked against your examples.

A useful demonstration shows the source record, the quantity and the resulting calculation. Change the portion and check that calories and macros change consistently. Manual entry should remain usable when an image cannot resolve the meal.

What to ask the developer to show: Choose one supported food and change its quantity. Ask which record and unit conversion produced the result, and what happens when a suitable record is unavailable.

Source

3. What happens if the meal saves but the reply disappears?

Suppose someone taps Save. The server writes the meal, but the connection drops before the phone receives the reply. The user sees no confirmation and taps again. A careless retry can create a second meal. A careless error message can tell them nothing was saved when the server already has it.

The safe product behavior is to treat this as an unknown outcome until it can be checked. A stable retry key identifies the original save. Repeating that same save should resolve to one meal, not create another. The app should preserve the draft while it works out what happened.

There is another case worth testing: the user changes the portion while the first save is unconfirmed. The product needs a defined way to reconcile the original entry and preserve the later edit. Reusing a key for different content without handling that conflict is not a complete recovery design.

What to ask the developer to show: Drop the save response after the write, retry, and verify one meal. Then repeat with an edit and with requests reaching different server processes. The team should show the saved state and preserved edits, not only a passing test count.

4. Is a diary private to an account, or merely tied to a device?

A device-linked diary can be useful during development. It is not the same thing as an authenticated account with private data ownership. A polished profile screen does not establish who can read or change the records behind it.

Ask for two test accounts. Sign in as one and try to access the other's meals, goals and profile by changing client-supplied identifiers. The server should base access on the verified session, not accept a user or device ID as permission.

Also check logout, expired sessions and account switching. Existing guest records need an explicit linking or migration flow. They should not silently become the property of whichever person signs in next on a shared phone.

What to ask the developer to show: Use two accounts and a guest diary. Demonstrate isolation, logout and account switching, then explain exactly when and how guest records can be linked.

5. Do API cost controls stop work before the limit is exceeded?

An AI nutrition app has running costs as well as development costs. Ask the team to state what a request can contain: image size, text input, output limit, model, service tier and retry behavior. Then ask what prevents several simultaneous requests from bypassing the budget.

A useful design reserves budget before sending a request and counts uncertain-cost failures conservatively. It must behave consistently across processes and restarts. A dashboard alert or a kill switch after billing is observed is not, by itself, proof that a strict total cannot be exceeded.

For your project, request a transparent cost model that includes repeat attempts, storage, nutrition data, hosting and support as relevant. Keep an illustrative calculation separate from a provider's current rate and from a measured cost in your own implementation.

What to ask the developer to show: Ask for concurrency and restart tests of the limit, plus the assumptions that bound each request. If the team documents a possible overshoot, resolve it before treating the cap as guaranteed.

6. Have failure states been checked on the phones you will support?

Unit tests are useful evidence about specific code paths. They do not establish that the complete app works on a real phone. Camera permissions, native modules, background behavior and network recovery still need device checks.

If reminders are in scope, specify whether you mean local scheduled reminders, server-sent push notifications or both. Ask for permission-denial, opt-out, schedule-change and delivery behavior on the target platforms. A settings toggle is not delivery evidence.

What to ask the developer to show: On each target platform, deny camera or notification permission, interrupt the network and reopen the app. Check that it preserves useful work, explains what happened and recovers without a crash. Demonstrate reminder delivery separately if included.

What should a development quote include?

“An app like Cal AI” is too broad to price responsibly. A quote should name the target users and cuisines, supported platforms, photo correction flow, food-data coverage, account ownership, guest migration, subscriptions if required, admin needs and device acceptance criteria.

Ask what is excluded as well as included. A mocked model response, a feature behind a disabled flag and a verified provider integration are different deliverables. So are backend unit tests, a web export and real-device acceptance. Put those differences into the milestone description before agreeing that the build is complete.

Planning an AI nutrition app or adding photo logging to a fitness product? Share your target users, launch platforms, example meals and must-have workflows with Matrytech so we can scope a practical first release. Start with a clear acceptance list, not a promise that a camera can measure a meal.

What to ask the developer to show: Before accepting a milestone, ask for one piece of evidence for every promised outcome, and a plain list of what is mocked, unfinished or not yet tested on devices.

Sources

JMIR: Advancements in Using AI for Dietary Assessment Based on Food Images: Scoping Review (2024)

USDA FoodData Central API Guide