Dashboard
KPI
— Four calendar weeks, every day, in CAD. Units split a month's plan across its days; the three rates apply as they stand.
Reports
Report tables read the scraping platform's fact tables read-only (docs/DataSource.md §4 allowlist). No report is wired yet — this is the placeholder shell; each report endpoint is added under /api/reports/… as it's scoped.
| Report | Status |
|---|---|
| No reports configured yet. | |
Amazon Accounts
Disabled markets — oldest first
— Beyond roughly 60 days Amazon will not serve the missing days again — re-enabling does NOT backfill. Age is measured from the last change to whichever switch is off — the marketplace's own, or the account's when the whole account is switched off. Scopes that are not collecting for other reasons (quarantine, or a seller who does not participate) are not listed here: they are not forgotten switches.
| Account | Marketplace | Disabled for | Reason |
|---|
Accounts
— Open an account to see its marketplaces grouped by region, with every account-level fact attached to the account rather than repeated on each market. A market is collected only when the account is on, the marketplace switch is on, the seller participates, and the account is not quarantined — the cause shown is the FIRST unmet one, so clearing it may reveal another.
| Account | Collecting | Regions | Credentials | Account switch |
|---|
Region endpoints
—
One write here affects EVERY account in that region.
These are the hosts ADL sends requests to. Amazon publishes them; MD stores what Amazon
publishes and never derives one from a pattern — the Ads na host carries no
region suffix while eu/fe do, so any
{prefix}-{region} rule is wrong for exactly one row.
| API family | Region | Host | State |
|---|
Region endpoint — —
This changes where EVERY account in this region sends its requests. ADL checks that the host answers before storing it — an unreachable host is refused and nothing is written. ⚠️ "Answers" means it terminates TLS: Amazon replies 401/403 to an unauthenticated probe, which proves the host exists.
Unticking is how you stop using a live region — do not delete it: deleting one still in use would make its requests fail as an unknown region instead of as a deliberately disabled one.
Type the region key — to confirm:
Account — —
Create an Amazon account
The name is permanent. It becomes a folder in ADL's raw archive and a key in every fact table, so it cannot be renamed later — only letters, digits, underscore and hyphen. ADL verifies the credentials against Amazon before creating anything: if Amazon refuses them, nothing is created.
Marketplaces are added afterwards, one at a time — adding gets a per-marketplace answer from Amazon, while creating a batch lands them in mixed states you would then have to reconcile.
Add a marketplace — —
Amazon is asked first. If it reports that this seller does not sell in the marketplace, ADL refuses and nothing is written — unless you tick the override below.
⚠️ The row is created but collection stays OFF — the override records a belief, it does not start spending Amazon quota on a scope Amazon currently refuses. 🔴 It also cannot be undone: ADL has no endpoint to change or clear it afterwards.
Marketplace — —
Only what you actually change is sent.
Two fields are editable here. Identity (label, marketplace_id,
region) is immutable: the archive and every fact row key on
(account, marketplace), so changing it would orphan the history rather than rename it.
The collection switch and the participation state move through their own paths.
SQS block — —
Configured, not yet in force. ADL has not built SQS ingestion — a saved block does nothing today. It is stored, it is audited, and it will take effect when ADL builds the consumer.
Check and replace credentials — —
Checking saves nothing. Saving REPLACES the stored credentials. What you type here is never stored by MD, never logged, and never shown back — credential fields are write-only by permanent contract, so there is no "current value" to display and there will not be one. ADL verifies again on save, so a save can still be refused after a check passed (a credential can be revoked in between) — the save's answer is the one that counts.
Leaving the three Ads fields empty does NOT clear them; it keeps what is stored. Clearing is a deliberate, separate act.
Amazon DL
Throughput — completed vs failed per cycle
— One bar per cycle over the window. Green = completed, red = failed. The line is backlog (queued at cycle end) — a rising line means the daemon is falling behind.
Efficiency — cooldown waste per cycle
% of drain slots lost to 429 cooldown (skipped_cooldown / (executed + skipped_cooldown)). High & rising = quota-bound, not scheduler-bound.
Tasks now
Current op_tasks state snapshot.
| State | Count |
|---|---|
| Loading… | |
Rate-limit pressure
429 pressure per region (EU is usually tightest — 11 marketplaces share one quota). Plus failure modes in the last 6h.
| Region | Buckets | In cooldown | 429 (1h) |
|---|---|---|---|
| Loading… | |||
Timeliness — data freshness per report
Each date-bound report's newest completed day, with the lag it's expected to carry: today's Amazon data isn't queryable yet, so a lag of a few days is normal and healthy. "Status" is DL's own on-time verdict (lag vs. expected). Snapshot reports target "now" and carry no lag.
| Report | Newest date | Lag / expected | Status |
|---|---|---|---|
| Loading… | |||
Completion by day (last 7 days)
Per target-date completion. Done % / Achievable % count task ATTEMPTS (op_tasks rows), so a slot that was throttled (429) then recovered leaves both a failed and a completed row and reads low forever — they show retry churn, not data truth. Real % is the data-truth view: of the distinct slots (account×marketplace×report) attempted, how many NOW have data (joins the catalog), excluding structural ceilings (no Ads profile / no data). Real % is typically ~99% even when Achievable % dips to ~87% on maturity-refresh peak days — the dip is a counting artifact, the data is there. Failures split into structural (permanent ceiling) and recoverable (a retry could clear).
| Date | Tasks | Done | Failed (struct.) | Failed (recov.) | Pending | Done % | Achievable % | Real % |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
MBI Data ingestion — our own sync health
Everything above is Amazon DL's health. This is ours: for each market, when did a refine last succeed, and did any fail? A failed refine writes no rows — so without this panel a broken sync looks exactly like a market with no sales. Unknown means the run predates outcome tracking, not that it's healthy.
| Market | State | Last success | Windows ok / empty / failed | Rows written | Last error |
|---|---|---|---|---|---|
| Loading… | |||||
Walmart DL
Cycles — completed vs failed per cycle
— One bar per scrape cycle over the window. Green = completed, red = failed, sized against the cycle's executed count.
Recent outcomes
How the most recent task attempts resolved — success vs incomplete-data vs rate-limited.
| Outcome | Count |
|---|---|
| Loading… | |
Refined output — rows per table
Rows the refine wrote to each own-DB table. A 0-row fact/snap table is flagged — nothing landed there this window.
| Table | Rows |
|---|---|
| Loading… | |
Contract drift
Whether the upstream Walmart data shape still matches what the refine expects. An unacknowledged breaking change means the refined output may be wrong until reviewed.
Amazon SR — SKU Report
Shelf
| Market | SKU | ASIN | What | Sellers | Buy box | Units 30d | Sales 30d | Last sale |
|---|
SKUs
— contains provisional (unsettled) days · Per-SKU monthly roll-up from the daily detail. Rates (ACoS/TACoS/CVR) are computed over the month (spend÷sales, not a mean of daily rates). Click a header to sort. Default hides inactive SKUs. Money in the marketplace's native currency.
| Pick an account · marketplace · month. |
—
—
—
Target plan
—
—
—
—
Search Terms
Problems
Search terms
— Pick one or more markets and press Load.
| Term | Market | Spend▼ | Change | Clicks | Orders | CPC | CVR | ACoS | Campaigns |
|---|
| Term | Attributed to | Market | Spend▼ | Clicks | Impr. | CTR | CPC | Orders | CVR | ACoS |
|---|---|---|---|---|---|---|---|---|---|---|
| Pick one or more markets and press Load. | ||||||||||
Amazon Forecast
Monthly forecast
— · Pick markets above, then Load.