Your data is everywhere.
Your answers aren’t.
Every store has margin leaks, shrinkage drift, and promo misfires. Your team doesn’t have the bandwidth to catch them. Ward watches every store, every KPI, every day. Insight cards explain what changed, why, and what to do next.
Chat
Ask anything. Ward routes to the right agent and returns cited answers.
I pulled Store 37’s last 28 days against the chain baseline. Two root causes — both compounding.
| Signal | Finding |
|---|---|
labor_efficiency | Rev/labor-hour −22% vs. cluster — staffing mismatch at 11a–1p peak |
inventory.fresh | Fresh fill 83% — backroom replenishment lag at 2–4p |
promo.lift | BOGO crackers cannibalized Brand Y by 28% — net category +6% |
Recommend: re-baseline Store 37 schedule against true peak, raise replen window to 1p, and review the BOGO before next cycle.
labor_scheduling…
Dashboards
Pinned views built from saved data-lake queries.
Models
Browse, search, and manage data–lake model definitions for your tenant.
| Name | Namespace | Version |
|---|---|---|
retail_pos_transactions | retail | 1.0 |
retail_inventory_snapshot | retail | 1.2 |
retail_labor_scheduling | retail | 1.0 |
retail_promo_calendar | retail | 1.1 |
retail_supplier_performance | retail | 1.0 |
sap_inventory_shrinkage | sap | 1.0 |
ga4_daily_events | marketing | 1.0 |
meta_ads_ad_level | marketing | 1.0 |
Sources
Connect external systems to the data lake.
| Name | Type | Last sync |
|---|---|---|
sap_pos_transactions | import | 2m ago |
sap_inventory_shrinkage | import | 2m ago |
sap_labor_scheduling | import | 14m ago |
retail_inventory_weekly | import | 1h ago |
retail_google_ads_daily | import | 1h ago |
retail_meta_ads_daily | import | 1h ago |
retail_ga4_website_daily | import | 1h ago |
Architecture
Two ways to connect. Federate against your live systems, or ingest into Ward’s data lake. Toggle below.
sap.possnow.inventoryPipelines
Move data from sources into models on a schedule.
| Name | Source | Model | Status | Schedule |
|---|---|---|---|---|
sync_sap_pos_transactions | sap_pos_transactions | pos_transactions | enabled | hourly |
sync_sap_labor_scheduling | sap_labor_scheduling | labor_scheduling | enabled | daily |
sync_sap_inventory_shrinkage | sap_inventory_shrinkage | inventory_shrinkage | enabled | daily |
sync_retail_inventory_weekly | retail_inventory_weekly | inventory_weekly | enabled | weekly |
sync_retail_google_ads_daily | retail_google_ads_daily | google_ads_daily | enabled | daily |
sync_retail_ga4_website_daily | retail_ga4_website_daily | ga4_website_daily | enabled | daily |
Streams
Real-time ingestion pipelines.
pos.txnstore_037 — basket $42.18inv.movedc_west → store_104labor.clockstore_022 shift_startpos.txnstore_211 — basket $19.04
Policies
Browse and manage Cedar access policies for your tenant.
| Policy ID | Effect | Resources |
|---|---|---|
merch-read-default | permit | Model::* |
finance-read-shrinkage | permit | Model::"shrinkage" |
vendor-blocked | forbid | Model::"labor_*" |
region-west-only | permit | Tenant::"acme" |
Entities
Principals and resources referenced by Cedar policies.
| Entity UID | Type | Tenant |
|---|---|---|
Tenant::"acme" | Tenant | acme |
Model::"sap.pos_transactions" | Model | acme |
Model::"sap.inventory_shrinkage" | Model | acme |
Model::"sap.labor_scheduling" | Model | acme |
Model::"retail.toast_pos_daily" | Model | acme |
Model::"retail.ga4_website_daily" | Model | acme |
Providers
Manage LLM API keys and the model profiles that use them.
| Name | Provider | Used by | Created |
|---|---|---|---|
anthropic-default | Anthropic | 3 profiles | Apr 22 |
openai-default | OpenAI | 2 profiles | Apr 22 |
gemini-default | Gemini | 1 profile | Apr 22 |
ollama-onprem | Ollama | 2 profiles | Apr 22 |
LLM-agnostic. Bring your own key, route per task. No lock-in.
Settings
Manage your dashboard preferences and account.
Light and dark themes are available. Your choice is remembered per browser.
6:47 AM. Problems found
before your team clocks in.
7 stores need attention. 793 are clean. Store 37: rev/labor hour down 22%. Cause: staffing mismatch at peak hours your schedule didn’t account for. Store 22: fresh fill below 85%. Replenishment already raised.
3 stores had a late DC delivery. ETA updated, no action needed. 2 stores show afternoon produce depletion. Backroom labor gap at 2–4 PM. Would have gone unnoticed until the weekly review.
Revenue up 4.2% WoW. But your promo destroyed margin. BOGO on Brand X crackers lifted units 34% and cannibalized Brand Y by 28%. Net category lift: +6%. Your post-mortem would have found this in 3 weeks. Ward found it today. Cannibalization model: Bayesian hierarchical, fit on 18 months of paired-SKU velocity. Audit the math in one click.
3 new SKUs added in Q2 are turning at 40% below category average. Shelf space and carrying cost tied up. Recommend rationalization review before the next order cycle.
Margin alert. Weekend promo drove +14% revenue and compressed margin 3.2pp. Net contribution negative at 4 stores. The P&L won’t show this for weeks. Ward shows it now. Click the card to see the SQL, the source tables, and the contribution-margin formula.
GMROI dropped from $3.10 to $2.65 in frozen foods. Cause: 3 new SKUs turning well below category average. Capital sitting on shelves. Finance Agent recommends rationalization review. Charter on file: read-only, finance ledger only, no PII.
Stop finding problems
in the post-mortem.
POS, inventory, labor, finance, weather, events. All read into Ward.
Chartered agents query each source. Forecasts fit on the same models your planners trust: ARIMA, Holt-Winters, Bayesian hierarchical, gradient-boosted residuals.
Insight cards arrive. What changed. Why. What to do. Click any number to see the SQL.
Your team acts. Pricing adjusted, inventory repositioned, schedules corrected.
Results feed back. Every outcome tunes Ward. Each cycle is tighter than the last.
A closed loop. Data in, insight cards out, your team acts.
Outcomes matter.
So does keeping IT out of trouble.
Most retail AI gets stuck in procurement. Read-write agents pointed at production data. No audit trail. No policy layer. Nobody on the IT side will sign off. Ward is built so your security review is short, your data team sleeps at night, and your CFO sees a cyber liability policy on file before they sign.
The directive came down.
Now you’re on the hook.
Leadership wants AI in production by quarter-end. You inherit the integration, the security review, and the blame if it touches the wrong table. Ward gives you the policy plane, the kill switch, and the audit trail your team would build for itself if it had a quarter to do it. AWS-grade governance, without the AWS-grade team. Visualized in a console your IT lead can hand to procurement.
// Finance Agent: read-only on warehouse.finance,
// no PII, region-scoped, writes require approval.
permit (
principal in Role::"FinanceAgent",
action in [Action::"read", Action::"summarize"],
resource in Source::"warehouse.finance"
)
when {
resource.classification != "pii"
&& context.region == principal.region
&& context.budget.tokens > 1000
};
forbid (
principal,
action == Action::"write",
resource
)
unless {
context.approval.status == "granted"
&& context.approval.approver in Role::"FinanceLead"
};
-
Policy as code, visualizedCedar policies live in your Git. Versioned, peer-reviewed, signed. The console renders every rule as a graph: agent, action, source, condition. Your IT team reads policy without reading Cedar. If it’s not in the repo, it’s not in production. No click-admin drift between environments.
-
Scoped per role, tenant, resourceFinance Agent cannot see labor schedules. Vendor Agent cannot touch shrinkage. US tenant cannot query EU tables. Least-privilege, machine-enforced.
-
Classifications drive accessTag a column
pii,financial, oroperationalonce. Every agent, every query inherits the rule. No copies of the policy to keep in sync. -
Who changed what, on the recordEvery charter edit, prompt change, and policy update is logged with name, time, ticket, and approver. Diff two versions side by side. Roll back in one click. Export to your SIEM.
-
Writes need a named humanRead-only by default. Exports, write-backs, schedule pushes. Anything that mutates state gates on approval from a role you define. Logged with the approver’s identity.
-
Audit any number on the pageClick a forecast, a margin call, a shrinkage flag. Ward shows the SQL, the source tables, the model, the parameters, and the backtest. Procurement stops asking how the number was made.
Every vertical has problems
hiding in plain sight.
Shrinkage, promo misfires, markdown spirals, demand misreads. The data exists. The answers don’t surface on their own. Ward’s agents bring proven forecasting math to each one. The model that ran is on the card.
We ran 400+ locations.
We know what goes unnoticed.
LeanBox. Micromarkets in offices, hospitals, universities. 8-figure revenue, 5 disconnected systems, and problems we found weeks too late. Shrinkage we couldn’t attribute. Promos we couldn’t score. Stores that underperformed quietly. Ward is the platform we built because nothing else caught what we were missing.
Read our story →Frequently asked questions.
SAP, Oracle Retail, Shopify, BigQuery, Snowflake, flat files, and any system with a REST API.
First cards within 48 hours. Robust baselines in roughly 2 weeks.
No. Ward sits on top as the intelligence layer that watches your data.
TLS 1.3, AES-256 at rest. SOC 2 Type II in progress. On-prem available.
Yes. Ward scales from 5 stores to 5,000.
Based on store count and data volume. POC engagements at a fixed fee.
Yes. OpenAI, Anthropic, Gemini, or bring your own. Ward routes each task to the optimal model automatically.
See what your stores are hiding.
Margin leaks, shrinkage patterns, promo misfires — the problems are in your data right now. Ward finds them and explains why. First insight cards in 48 hours.
Find out what your data has been hiding.
Tell us about your operation. We’ll show you the problems Ward catches — and the ones your current tools miss.