Maison Barra Data terminal

Personal project, 2026. Windows desktop application.Projet personnel, 2026. Application de bureau Windows.

A market data terminal, designed and coded end to end Un terminal de données de marché, conçu et codé de bout en bout

Maison Barra - Data terminal gathers, for about 870 listed companies, their fundamentals, the analyst consensus and links to their latest official reports, next to news, rates, currencies, bonds, crypto and a reading of the market regime. One person built all of it: the data pipeline, the interface, the tests and the Windows executable. Maison Barra - Data terminal réunit, pour environ 870 sociétés cotées, leurs fondamentaux, le consensus des analystes et les liens vers leurs derniers rapports officiels, à côté de l'actualité, des taux, des devises, des obligations, des cryptomonnaies et d'une lecture du régime de marché. Une seule personne a tout construit : la chaîne de données, l'interface, les tests et l'exécutable Windows.

1 1 2 2 3 3 4 4 5

Figure 1.Figure 1. The Screen tab: the whole universe on one table.L'onglet Screener : tout l'univers dans un seul tableau.

  1. Fourteen tabs, which can be reordered or detached into their own windows.Quatorze onglets, que l'on peut réordonner ou détacher dans leur propre fenêtre.
  2. Every price also shown in the currency of your choice, at the live exchange rate.Chaque cours aussi affiché dans la devise de votre choix, au taux de change en direct.
  3. Reading flags: stressed stock, small cap, earnings within 14 days.Repères de lecture : titre sous tension, petite capitalisation, résultats sous 14 jours.
  4. Returns, distance from the 52-week high, valuation multiples and the analyst consensus.Performances, écart au plus haut sur un an, multiples de valorisation et consensus des analystes.
  5. Date of the daily prices and of the weekly fundamentals in use.Date des cours quotidiens et des fondamentaux hebdomadaires utilisés.

Source: Maison Barra - Data terminal, prices of 02/10/2026.Source : Maison Barra - Data terminal, cours du 02/10/2026.

What it showsCe que montre l'application

Open every company's sheet, and its official reportsOuvrir la fiche de chaque société, et ses rapports officiels

The stock sheet brings together the price chart with results and dividend dates, the analyst consensus (number of analysts, recommendation, low, average and high target) and the revisions of earnings forecasts over one and three months.La fiche titre réunit le graphique de cours avec les dates de résultats et de dividendes, le consensus des analystes (nombre d'analystes, recommandation, objectif bas, moyen et haut) et les révisions des prévisions de bénéfices sur un et trois mois.

A Reports line links straight to the latest annual report filed with the SEC (10-K, or 20-F for foreign issuers), the latest official report of any kind, and the full list of filings. For companies outside the SEC, it opens their investor relations page.Une ligne Rapports mène directement au dernier rapport annuel déposé auprès de la SEC (10-K, ou 20-F pour les émetteurs étrangers), au dernier rapport officiel quel qu'il soit et à la liste complète des dépôts. Pour les sociétés hors SEC, elle ouvre leur page relations investisseurs.

Figure 2.Figure 2. Stock sheet: PepsiCo, with its latest 10-K and 10-Q one click away.Fiche titre : PepsiCo, avec ses derniers 10-K et 10-Q à un clic.

Compare a company with its peersComparer une société à ses pairs

Peers are suggested from the same industry and region. Returns are rebased to 100 over the period of your choice, side by side with volatility, maximum drawdown, multiples and margins.Les pairs sont suggérés dans la même industrie et la même région. Les performances sont rebasées à 100 sur la période de votre choix, à côté de la volatilité, de la perte maximale, des multiples et des marges.

Insider transactions, institutional holders and the dividend history sit in the next tab.Les transactions des dirigeants, les investisseurs institutionnels et l'historique des dividendes sont dans l'onglet suivant.

Figure 3.Figure 3. Compare: PepsiCo and three suggested peers over one year.Comparer : PepsiCo et trois pairs suggérés sur un an.

Read the market regime and the cycleLire le régime de marché et le cycle

About thirty market and macro signals (yield curve, credit spreads, volatility, breadth, factor leadership) are grouped into five families and scored. The regime with the most support is suggested, never imposed, and each signal explains in plain words what it is and what it says today.Une trentaine de signaux de marché et macroéconomiques (courbe des taux, spreads de crédit, volatilité, largeur du marché, facteurs en tête) sont regroupés en cinq familles et notés. Le régime le plus soutenu est suggéré, jamais imposé, et chaque signal explique en mots simples ce qu'il est et ce qu'il dit aujourd'hui.

The OECD leading indicators place each economy in its phase of the cycle.Les indicateurs avancés de l'OCDE placent chaque économie dans sa phase du cycle.

Figure 4.Figure 4. Market regime tab: gauge, signal families and the history of each signal.Onglet Régime de marché : jauge, familles de signaux et historique de chaque signal.

Follow rates, currencies and commoditiesSuivre les taux, les devises et les matières premières

Policy rates, €STR, government yield curves and market-implied rate expectations from the ECB, the BIS, the New York Fed and the Bundesbank. Live exchange rates are checked against the ECB reference before use; commodity futures complete the picture.Taux directeurs, €STR, courbes des taux souverains et anticipations de taux implicites, issus de la BCE, de la BRI, de la Fed de New York et de la Bundesbank. Les taux de change en direct sont contrôlés par rapport à la référence BCE avant usage ; les contrats à terme sur matières premières complètent le tableau.

Figure 5.Figure 5. Rates tab: key rates and yield curves.Onglet Taux : taux directeurs et courbes.

Track your own portfolioSuivre votre propre portefeuille

Rebuilt from the transactions kept in Excel: time-weighted return, dividends net of withholding tax by country, comparison with a benchmark, attribution by sector, volatility, drawdown, Sharpe ratio, tracking error and value at risk.Reconstruit à partir des transactions tenues dans Excel : rendement pondéré par le temps, dividendes nets de retenue à la source par pays, comparaison avec un indice, attribution par secteur, volatilité, perte maximale, ratio de Sharpe, tracking error et valeur à risque.

Portfolios can be created, imported and exported, and are broken down by asset class, zone, sector and currency. They stay on your computer.Les portefeuilles se créent, s'importent et s'exportent, avec leur répartition par classe d'actifs, zone, secteur et devise. Ils restent sur votre ordinateur.

Figure 6.Figure 6. Performance tab: an example portfolio of twelve stocks against the MSCI World.Onglet Performance : un portefeuille d'exemple de douze titres face au MSCI World.

Fictitious transactions, real market prices.Transactions fictives, cours de marché réels.

Add bonds and cryptocurrenciesAjouter obligations et cryptomonnaies

Bond ETFs and individual bonds, with yield to maturity, duration, convexity, accrued coupon and spread over the government curve. The terms of a bond can be pre-filled from its ISIN, using the ECB list of eligible marketable assets.ETF obligataires et obligations en direct, avec rendement à maturité, duration, convexité, coupon couru et spread sur la courbe souveraine. Les caractéristiques d'une obligation se pré-remplissent depuis son ISIN, grâce à la liste BCE des actifs négociables éligibles.

Cryptocurrencies are shown in the currency of your choice, converted with the exchange-rate history when no direct quote exists.Les cryptomonnaies s'affichent dans la devise de votre choix, converties avec l'historique de change quand aucune cotation directe n'existe.

Figure 7.Figure 7. Crypto tab: returns, volatility, drawdown and market data.Onglet Crypto : performances, volatilité, perte maximale et données de marché.

Keep up with news and calendarsSuivre l'actualité et les calendriers

Headlines from a dozen publishers and central banks, tagged by stock, with the earnings and economic calendars. For paywalled publishers (FT, Bloomberg, WSJ, Reuters and others) only the headline, a short summary and the link are kept: no article is ever downloaded.Les titres d'une douzaine d'éditeurs et de banques centrales, reliés aux actions concernées, avec les calendriers de résultats et économique. Pour les éditeurs payants (FT, Bloomberg, WSJ, Reuters et d'autres), seuls le titre, un court résumé et le lien sont conservés : aucun article n'est jamais téléchargé.

Figure 8.Figure 8. News tab: live headlines.Onglet Actualités : titres en direct.

Refresh everything with one clickTout rafraîchir en un clic

A daily run updates prices and returns in about 30 seconds thanks to incremental caches, and writes an Excel report. A weekly run downloads the fundamentals, the analyst consensus and the earnings revisions.Un run quotidien met à jour les cours et les performances en une trentaine de secondes grâce aux caches incrémentaux, et écrit un rapport Excel. Un run hebdomadaire télécharge les fondamentaux, le consensus des analystes et les révisions de bénéfices.

At startup the app shows the date of its data and offers to run what is out of date, one run after another.Au démarrage, l'application indique la date de ses données et propose de lancer ce qui n'est plus à jour, les runs s'enchaînant les uns après les autres.

Figure 9.Figure 9. Runs tab: each run, its last completion and the log.Onglet Runs : chaque run, sa dernière exécution et le journal.

More screensAutres écrans

Click a screen to enlarge it. The language and theme buttons at the top also switch the screenshots; the dark version is the app's Maison Barra theme.Cliquez sur un écran pour l'agrandir. Les boutons de langue et de thème en haut changent aussi les captures ; la version sombre est le thème Maison Barra de l'application.

How it worksFonctionnement

No server and no database: the runs download and compute, write files, and the desktop app reads them.Ni serveur ni base de données : les runs téléchargent et calculent, écrivent des fichiers, et l'application de bureau les lit.

  1. SourcesSources

    • Yahoo Finance: prices, fundamentals, consensus, newsYahoo Finance : cours, fondamentaux, consensus, actualités
    • SEC EDGAR: annual and quarterly filingsSEC EDGAR : rapports annuels et trimestriels
    • ECB, BIS, New York Fed, Bundesbank, OECD, FREDBCE, BRI, Fed de New York, Bundesbank, OCDE, FRED
    • Publishers' RSS feeds, ECB list of eligible bondsFlux RSS des éditeurs, liste BCE des obligations éligibles
  2. RunsRuns

    • Daily: prices, returns, Excel report (~30 s)Quotidien : cours, performances, rapport Excel (~30 s)
    • Weekly: fundamentals, consensus, revisions (30–45 min)Hebdomadaire : fondamentaux, consensus, révisions (30–45 min)
  3. FilesFichiers

    • Incremental Parquet caches, JSONCaches Parquet incrémentaux, JSON
    • Daily and weekly Excel reportsRapports Excel quotidien et hebdomadaire
  4. ApplicationApplication

    • 14 tabs reading the files14 onglets qui lisent les fichiers
    • Live quotes, rates, FX, filings and news in background threadsCours, taux, change, rapports et actualités en direct, en tâche de fond
    • Portfolios and alerts saved locallyPortefeuilles et alertes enregistrés en local

Figure 10.Figure 10. From the sources to the screen.Des sources à l'écran.

Design rules, kept from day oneRègles de conception, tenues depuis le premier jour

  • Network calls run in background threads, only for what is on screen, behind caches with freshness limits.Les appels réseau tournent en tâche de fond, seulement pour ce qui est à l'écran, derrière des caches à durée de fraîcheur.
  • Paywalled publishers: headline, short summary and link. Never the article.Éditeurs payants : titre, court résumé et lien. Jamais l'article.
  • The shared version contains no personal data (portfolios, transactions, notes, settings, keys), and a test checks it.La version partagée ne contient aucune donnée personnelle (portefeuilles, transactions, notes, réglages, clés), et un test le vérifie.
  • Tests run with their own settings profile and never touch real data.Les tests tournent avec leur propre profil de réglages et ne touchent jamais aux vraies données.
  • Every method cites its source, from the risk statistics to the regime signals.Chaque méthode cite sa source, des statistiques de risque aux signaux de régime.

EngineeringIngénierie

StackTechnologies

LanguageLangage
Python 3.13
InterfaceInterface
PySide6 (Qt 6), QtCharts
DataDonnées
pandas, numpy, yfinance, Parquet
Excel
openpyxl: daily and weekly reportsopenpyxl : rapports quotidien et hebdomadaire
PackagingDistribution
PyInstaller Windows executable, tested on an empty folderExécutable Windows PyInstaller, testé sur un dossier vide
TestsTests
pytest, 91 tests, including a visit of every tab in both languagespytest, 91 tests, dont une visite de chaque onglet dans les deux langues

PracticesPratiques

  • Bilingual interface: about 3,600 translated strings, and a test that fails on any untranslated label.Interface bilingue : environ 3 600 chaînes traduites, et un test qui échoue sur tout libellé non traduit.
  • Incremental caches and atomic file writes, so the runs and the app can share the same files.Caches incrémentaux et écritures atomiques, pour que les runs et l'application partagent les mêmes fichiers.
  • One code base, two builds: this public edition and a private research edition, tested side by side.Un seul code, deux versions : cette édition publique et une édition de recherche privée, testées côte à côte.
  • User guides in English and French, with screenshots regenerated from the app itself.Guides utilisateur en anglais et en français, avec des captures régénérées depuis l'application elle-même.
  • Every source that fails leaves the app usable: the last cache is kept and the tab says why.Toute source en panne laisse l'application utilisable : le dernier cache est gardé et l'onglet dit pourquoi.