Market-intelligence startup, co-founder

Tamper-Evident Performance Archive

Every published call is priced from the market tape rather than the post's claimed price, outcomes are computed from daily bars, and an append-only audit log enforced by the database means losing calls can never be quietly removed.

Headline number
30 min outcome refresh, market hours
Role
Built
Category
Data Platforms
Updated

Architecture

  1. Published callssocial and approved posts
    Daily bars
  2. Ingestmarket-priced entry
    Outcome refreshevery 30 min
  3. Posts and alertsappend-only
    Audit logtrigger-enforced
  4. Public performance page
Published calls are priced from the tape on ingest and written to append-only tables. Outcomes are recomputed from daily bars, and triggers keep the audit log immutable.

Key takeaways

  • Entry price comes from the market tape at publish time, never from the author
  • Outcomes refresh every 30 minutes in market hours from daily bars, including split handling
  • Append-only tables with BEFORE UPDATE and DELETE triggers. Deleting a loser is impossible.
  • Win rate is withheld until 20 closed calls exist, so small samples never look like skill

The situation

The stock-alert industry has a trust problem: losers disappear, entries get restated, and track records are marketing. The venture's positioning depends on being a publisher whose record a skeptic can check. That has to be enforced by the system rather than promised by the people.

What I built

A Python tracker that ingests every published call and keys the entry to the market price at that moment. Posts land in an append-only table; a rollup computes the lowest market-verified entry per ticker; and an audit log records every change with database triggers that reject updates and deletes outright.

An outcome job runs every 30 minutes during market hours, computing current and peak results from daily bars with split-adjusted entry healing. A win checker flags gains of 20% or more, and the public win rate stays hidden until 20 calls have closed. Premium alerts live in a separate record with their own draft-to-closed lifecycle, and the two records never merge. The whole suite runs offline against SQLite for tests, and against Entra-authenticated PostgreSQL in production.

The outcome

The public performance page shows every call, including the ones that went wrong, with entries a member can verify against a chart. It is the feature I would point a regulator at first.

Stack

Python 3.11PostgreSQLpsycopg with Entra tokensSQLite test backendAzure Container Apps

Need this built inside your organization?

One person, architecture to deployment. Tell me what is stuck and I will tell you where I would start.