git show inphera

Inphera

Private beta · In development
Next.jsReactTypeScriptFastAPIPythonSupabaseClaude API
Inphera's list of today's matches, with their status and whether the analysis is ready

Current pipeline

From structured candidates to recommendations

Claude proposes candidates within the context it receives. The code then applies the threshold that decides what reaches the recommendations UI.

Recommendation sequence

  1. 1

    Statistical and mathematical inputs

    Direct averages, Poisson and heuristic calibration form the context

  2. 2

    Structured analysis with Claude

    Produces candidate markets, probabilities and reasons, conditioned on the inputs it receives

  3. 3

    Deterministic post-filter ≥65%

    filterRecommendedBets evaluates each candidate after Claude

  4. 4

    Recommended markets UI

    The interface shows only candidates that pass the post-filter

Explicit limit: a candidate produced by Claude is not shown as a recommended market if its probability is below 65%.

About the project

The problem

Analyzing a match means cross-checking recent form, statistics and context from separate sources. Inphera brings those signals into a single experience so users can review them with traceability, without presenting the analysis as a certainty.

Current user flow

  1. 1Pick an available match.
  2. 2Review the direct averages of recent games and the context for both teams.
  3. 3Check the probabilities per market and see which ones passed the recommendation filter.
  4. 4Read a contextual summary and keep the final judgment on how to interpret the data.

Current methodology

  • Recent-match averages are a direct aggregation of the available history.
  • Poisson is the mathematical probability model used to estimate the different markets.
  • Self-calibration adjusts weights with a heuristic based on observed results; it is not a trained machine learning model.

Structured analysis with Claude

  • Claude receives statistics, context and precomputed mathematical signals to produce a structured analysis.
  • Within that structure it outputs candidate markets, candidate probabilities and reasons. These outputs are conditioned on the context provided, but they are not yet visible recommendations.

Deterministic guardrails

  • After the structured analysis, filterRecommendedBets applies a post-filter and only lets candidates with a probability of 65% or higher through to the recommendations UI.
  • Claude cannot bypass that deterministic comparison. The threshold controls what is shown, but it doesn't guarantee wins or remove the uncertainty of sport.

Roles and stack

  • Claude synthesizes the context it receives and generates structured candidates; the application code decides which ones are finally shown as recommended.
  • The experience connects a Next.js interface with a FastAPI math engine, data stored in Supabase and Claude's structured output.

Current status: private beta

Inphera is in development and is being tested with limited access. Its results are informational and experimental: they are not financial advice or a promise of outcomes.

ML roadmap

Supervised learning is future work. It will only be evaluated once there is enough labeled historical data to train, validate and compare models responsibly.

Available visual evidence

Screenshots from the beta: a match result with its official pick, the per-line probabilities calculated by the model, and the match statistics.

A match result in Inphera and whether the official pick was correct
Per-line probabilities calculated by the model, with the official pick highlighted
Match statistics in Inphera: possession, shots, corners, fouls and cards