AssetShop Enterprise OSSTATIC RENDER · NO SCRIPTS · SYNTHETIC DATASET

STATIC PAGE Interactive levers, live recompute, and Record decision run in the app build; every figure, formula, evidence row, and WHY below is the real render, pre-computed. Evidence panels are opened for review.

1. Create company2. Connect data3. AI maps4. Validate5. Configure KPIs6. Assign roles7. Launch
Administration

Setup Assistant

From company to launch in seven sourced steps. Administration beyond setup (user lifecycle, audit console) remains on the parity ledger, stated, not previewed.

connectedSAP S/4HANADET-01

PO, material master, plant stock (read-only) · SYNTHETIC stream until connection; live OAuth binds AT_ACTIVATION with the same read-only scopes.

connectedNetSuiteSTG-02

PO, items, vendor bills (read-only) · SYNTHETIC stream until connection; live OAuth binds AT_ACTIVATION with the same read-only scopes.

connectedOracle Fusion CloudOSK-03

PO, products, receipts (read-only) · SYNTHETIC stream until connection; live OAuth binds AT_ACTIVATION with the same read-only scopes.

connectedSalesforce (demand)Global

Accounts, demand forecast (read-only) · SYNTHETIC stream until connection; live OAuth binds AT_ACTIVATION with the same read-only scopes.

connectedSAP AribaGlobal

Contracts, coverage (read-only) · SYNTHETIC stream until connection; live OAuth binds AT_ACTIVATION with the same read-only scopes.

Or start from a file 4 PUBLISHED SPECIFICATIONS

A connector is the destination, not the entry price. Most companies begin week one with an export, and the platform accepts one against a published specification so the arithmetic is identical either way. A tenant that starts on files and connects a system in month three gets the same product with a different intake, because both paths land in the same canonical model.

Accepted extract specifications with their key columns and the connector that replaces each file.
ExtractKey columnsColumnsConnector that replaces it
Purchase orders
Mirrors the canonical purchase order the SAP, Oracle, NetSuite, Coupa, Infor, and Dynamics adapt…
id 10 sap-s4, oracle-fusion, netsuite, coupa, infor, dynamics365
Inventory positions
On-hand by item and site. Quantities are never negative here: a negative position is a correctio…
sku, site 8 sap-s4, oracle-fusion, netsuite, infor
Supplier master
One row per supplier per source system. The platform does not merge duplicates on your behalf; i…
supplierId, sourceSystem 6 sap-s4, coupa, sap-ariba, jaggaer, ivalua
Workforce positions
Mirrors the canonical worker the Workday adapter maps into. Headcount and cost only; no personal…
workerId 5 workday
What the platform will say if the export is wrong

Every rejection names the row, the field, and the fix. Accepted plus rejected equals input by identity, so nothing is silently dropped, and the platform never guesses a value it was not given.

MISSING_COLUMN · Add the column to the export, or map it in the connector.
UNKNOWN_COLUMN · Remove the column or extend the specification. It will not be loaded.
RAGGED_ROW · Fix the quoting or delimiter for that row in the source export.
TRAILING_DELIMITER · The row loads and the empty trailing cell is ignored. Fix the export to silence it.
BAD_ENCODING · Re-export as UTF-8. Legacy code pages lose characters silently.
BAD_DATE · Use one of the four accepted formats, or ISO 8601, which is always accepted.
NOT_A_NUMBER · Remove thousands separators and currency symbols from numeric columns.
NEGATIVE_QTY · A negative quantity is a return or a correction; export it as its own row type.
EMPTY_REQUIRED · Populate the field or omit the row. The platform never guesses a required value.
DUPLICATE_KEY · Deduplicate on the key columns. Two rows claiming one identity cannot both be true.
Or drop the export in a bucket and stop uploading MECHANISM BUILT · BINDING AT_CONNECTION

Uploading a file by hand every period is not an integration, it is a chore with a person attached. Point the platform at a prefix in your own cloud storage, drop the nightly export there, and the same validator runs on the same schedule your export already keeps. This is the step between a file and a connector, and most companies live here for months.

The platform never writes to your bucket. It does not move processed objects, drop marker files, or delete anything, because your landing bucket is a system of record and other consumers may be reading it. Progress is tracked on our side by a digest computed over the bytes we read, which is why re-dropping the same object is safe and never double-counts.

Object key prefixes the platform resolves, one per published extract specification.
Drop it underIt loads as
<your-prefix>/purchase-orders.csv Purchase orders
<your-prefix>/inventory.csv Inventory positions
<your-prefix>/suppliers.csv Supplier master
<your-prefix>/workers.csv Workforce positions

An object whose name matches no specification, or matches two, is refused rather than guessed into the wrong one. An object still being written is left alone until it holds the same size for 2 observations, so a half-finished export is never read as a complete one. Retries are bounded at 3 and then the object waits for a person, because nothing is dropped and nothing retries forever.

What the platform will say about every object it sees

One disposition per object, and they sum to the number of objects observed, asserted every sweep. Re-dropping the same file is safe: identical content loads once.

LOADED · Nothing to do. The object resolved, was stable, was new, and its rows went through the same validator a hand upload goes through.
REVISION · Nothing to do. The key was seen before with different content, so this loaded as a superseding revision and the prior load is retained in the ledger.
DUPLICATE · Nothing to do. Identical content was already loaded, so this was ignored rather than double-counted. Re-dropping an object is safe by design.
DEFERRED · No action. The object was still changing between observations, which normally means the export is still writing. It will be read once it settles.
UNRESOLVED · Rename the object so its key contains exactly one published specification id, or drop it under a prefix named for that id. The platform will not guess which specification a file belongs to.
QUARANTINED · Read the stated reason on the object row. The attempt ceiling was reached or the object could not be read as text. It is retained and waits for a person; nothing is silently dropped and nothing retries forever.
What is not built yet
AT_CONNECTION · Provider binding · The GCS or S3 notification wiring and its credentials. Every call fails closed until a real bucket and a real credential exist, because a provider that cannot fail red is a provider that is not connected.
UNMEASURED · Throughput characterization · Objects per sweep and bytes per second against a real bucket over a real network. A figure measured against an in-process fake describes the fake. The mechanism is correct under contention; the rate is not claimed.
Start from the outcomeOUTCOME_COVERAGE · R63

Onboarding asks what you want first, not how we work. Pick the outcome; the domains, analysts, and first alert configure from this table.

Release trapped cash

Domains: supply, finance. Analysts: Supply Analyst, Finance Analyst. First alert: Working capital against inventory policy.

Open the serving surface
Explain and defend margin

Domains: finance, markets. Analysts: Finance Analyst, Executive Advisor. First alert: Margin drivers with commodity drift.

Open the serving surface
Stop service surprises

Domains: operations, customer. Analysts: Operations Analyst. First alert: OTIF breaches and expedite windows.

Open the serving surface
See supplier risk early

Domains: supply, governance. Analysts: Supply Analyst, Risk Analyst. First alert: Concentration and renewal windows.

Open the serving surface
Make decisions that hold up

Domains: workspace, knowledge. Analysts: Executive Advisor, Knowledge Analyst. First alert: Decision ledger with effectiveness scoring.

Open the serving surface