Help center › Using Vestoris

Data and feeds

Vestoris loads reference data, holdings and market data from files you upload or from feeds that arrive on a schedule. Data loading belongs to Operations and Admin (only an Admin loads users and roles). Paper trading only: loaded data feeds the simulation and the compliance checks; Vestoris connects to no broker and nothing here is investment advice.

The loading center (Data › Loading center)

  1. Choose what the file holds (security master, accounts, positions, prices, FX, corporate actions…) and upload a CSV, Excel or Vestoris XML file, up to 50 MB (gzip or zip are fine).
  2. Column mapping. Columns are matched to fields by name; the AI suggests the rest. You see the mapping and can change it; it is remembered for files with the same columns. Vestoris XML files need no mapping.
  3. Validation is deterministic: ISIN, CUSIP, SEDOL and FIGI check digits, references to accounts and securities that exist, duplicates in the file, dates and numbers. Each rejected row has a code (R101, R104…) and the error file lists them. "Explain in plain English" asks the AI to word the reasons; the codes stay the same.
  4. The diff. Before anything changes you see what is new, changed (old → new), unchanged, rejected, deleted or inactivated.
  5. Apply. One transaction; every change is recorded.
  6. Undo. An applied batch can be undone as a whole. If something depends on it since (for example a trade on loaded lots) the undo is refused and the reason is shown.

Every batch is in the event log with who loaded it, when, the file's SHA-256 and the counts. The original file is stored encrypted for its retention period and can be downloaded from the batch.

Uploading a folder

Send a whole morning's files at once: Choose a folder, drop a folder on the page, or choose a .zip of it (on a phone or tablet, zip it first). Each file is recognised by its XML namespace, a feed's file name, or columns you have loaded before; when only the AI can guess, it suggests and you confirm. On the review screen change any file's data set or exclude it, then Check all files: they are checked in start-of-day order, each as its own batch with its diff. Apply all clean files applies them in order (a file whose dependency has errors waits), and Undo the folder undoes them newest first. Details: Uploading a folder.

History and as-of

Data › History and as-of shows what a record looked like on any date, and every version with the batch that made it.

Prices

An uploaded end-of-day price overrides the simulator for that security and date (price-source priority: uploaded, then simulated). A close that moves more than 20% is flagged by data quality, not refused.

Corporate actions

Splits are applied on the ex-date to positions and lots (quantity × ratio, cost per share ÷ ratio, total cost unchanged). Cash dividends credit the simulated cash of each holder (amount per share × shares held) when the ex-date is reached. An action loaded ahead of its ex-date waits, and is applied by the start-of-day chain on that day. Undoing the batch reverses both.

Data quality (Data › Data quality)

Deterministic checks: stale prices, price jumps, missing classifications or identifiers, duplicate identifiers, missing average volume, negative cash, inactive securities still held, stale FX, unusual feed volumes. An issue resolves itself when the data is fixed. The AI writes the daily brief and the story of a price jump, and can suggest a sector and country for securities that lack them: the suggestions are staged as a batch you review and apply (or discard). It never changes an issue.

Feeds and the start of day (Data › Feeds and start of day)

A feed is a data set that arrives regularly: through the firm's drop box (explicit FTPS on port 21), pushed over HTTPS with an API token, or pulled from an HTTPS address on the firm's allow-list. Each file becomes an ordinary batch, so the same checks, diff, history and undo apply.

  • File names follow the feed's pattern, by default <FIRM>_<TYPE>_<YYYYMMDD>_<SEQ>.xml, followed by an empty .done file. A .sha256 file can be required. The same content is never loaded twice.
  • A feed can hold its files for review, always or when too many rows are rejected, too many records change, or a full file would inactivate too much. Operations applies or rejects a held file.
  • Feeds can depend on other feeds; a file that has not arrived by the expected time raises a late alert, and after the cut-off the date is missed. Alerts go to the operations email (or the firm's Operations users) and to the alerts list.
  • The start-of-day chain runs in order: calendars, security master, accounts and groups, positions / lots / cash, prices and FX, corporate actions, data quality, pre-open compliance. Until it completes, every page says "Start of day not complete. Data as of …". Operations can override with a reason; the override is logged.
  • The start-of-day brief and Explain on a run are written by the AI from the facts; the chain itself is deterministic.

In the demo the drop box is a folder inside your sandbox: there is no FTP server, and Simulate arrival makes a feed's file arrive now.

Scheduled jobs (Data › Scheduled jobs)

One cron line runs the scheduler every minute. Jobs use cron expressions in New York time, can skip weekends and US holidays, run within a window, retry with growing waits and keep their history. Operations can run a job now, pause and resume it.

API tokens (Data › API tokens, Admin)

Create a token for a system that sends files. It is shown once; only a keyed hash is kept. Choose the data sets it may load, whether clean files apply automatically (off by default), and when it expires. Revoke it at any time. Requests are rate limited.

The Data Feed Reference

The Data Feed Reference documents every XML format with its XSD, the error codes, and has a validator that stores nothing.

Try it in the demoAll articles